@@ -47,12 +47,12 @@ fn index() {
47
47
}
48
48
49
49
#[ test]
50
- fn show ( ) {
50
+ fn show_by_id ( ) {
51
51
let ( app, anon, user) = TestApp :: init ( ) . with_user ( ) ;
52
52
let user = user. as_model ( ) ;
53
53
54
54
let v = app. db ( |conn| {
55
- let krate = CrateBuilder :: new ( "foo_vers_show " , user. id ) . expect_build ( conn) ;
55
+ let krate = CrateBuilder :: new ( "foo_vers_show_id " , user. id ) . expect_build ( conn) ;
56
56
VersionBuilder :: new ( "2.0.0" )
57
57
. size ( 1234 )
58
58
. expect_build ( krate. id , user. id , conn)
@@ -64,6 +64,47 @@ fn show() {
64
64
assert_eq ! ( json. version. crate_size, Some ( 1234 ) ) ;
65
65
}
66
66
67
+ #[ test]
68
+ fn show_by_crate_name_and_semver_with_published_by ( ) {
69
+ let ( app, anon, user) = TestApp :: init ( ) . with_user ( ) ;
70
+ let user = user. as_model ( ) ;
71
+
72
+ let v = app. db ( |conn| {
73
+ let krate = CrateBuilder :: new ( "foo_vers_show" , user. id ) . expect_build ( conn) ;
74
+ VersionBuilder :: new ( "2.0.0" )
75
+ . size ( 1234 )
76
+ . expect_build ( krate. id , user. id , conn)
77
+ } ) ;
78
+
79
+ let json: VersionResponse = anon. show_version ( "foo_vers_show" , "2.0.0" ) ;
80
+ assert_eq ! ( json. version. id, v. id) ;
81
+ assert_eq ! ( json. version. crate_size, Some ( 1234 ) ) ;
82
+ assert_eq ! ( json. version. published_by. unwrap( ) . login, user. gh_login) ;
83
+ }
84
+
85
+ #[ test]
86
+ fn show_by_crate_name_and_semver_no_published_by ( ) {
87
+ use diesel:: update;
88
+
89
+ let ( app, anon, user) = TestApp :: init ( ) . with_user ( ) ;
90
+ let user = user. as_model ( ) ;
91
+
92
+ app. db ( |conn| {
93
+ CrateBuilder :: new ( "foo_vers_show_no_pb" , user. id )
94
+ . version ( "1.0.0" )
95
+ . expect_build ( conn) ;
96
+ // Mimic a version published before we started recording who published versions
97
+ let none: Option < i32 > = None ;
98
+ update ( versions:: table)
99
+ . set ( versions:: published_by. eq ( none) )
100
+ . execute ( conn)
101
+ . unwrap ( ) ;
102
+ } ) ;
103
+
104
+ let json: VersionResponse = anon. show_version ( "foo_vers_show_no_pb" , "1.0.0" ) ;
105
+ assert ! ( json. version. published_by. is_none( ) ) ;
106
+ }
107
+
67
108
#[ test]
68
109
fn authors ( ) {
69
110
let ( app, anon, user) = TestApp :: init ( ) . with_user ( ) ;
0 commit comments