1
- use std:: collections:: HashMap ;
1
+ extern crate diesel;
2
+
2
3
use rustc_serialize:: json:: Json ;
3
4
4
5
use conduit:: { Handler , Method } ;
5
- use semver ;
6
+ use self :: diesel :: prelude :: * ;
6
7
7
- use cargo_registry:: db :: RequestTransaction ;
8
- use cargo_registry:: version :: { EncodableVersion , Version } ;
8
+ use cargo_registry:: version :: EncodableVersion ;
9
+ use cargo_registry:: schema :: versions ;
9
10
10
11
#[ derive( RustcDecodable ) ]
11
12
struct VersionList {
@@ -16,28 +17,28 @@ struct VersionResponse {
16
17
version : EncodableVersion ,
17
18
}
18
19
19
- fn sv ( s : & str ) -> semver:: Version {
20
- semver:: Version :: parse ( s) . unwrap ( )
21
- }
22
-
23
20
#[ test]
24
21
fn index ( ) {
25
22
let ( _b, app, middle) = :: app ( ) ;
26
- let mut req = :: req ( app, Method :: Get , "/api/v1/versions" ) ;
23
+ let mut req = :: req ( app. clone ( ) , Method :: Get , "/api/v1/versions" ) ;
27
24
let mut response = ok_resp ! ( middle. call( & mut req) ) ;
28
25
let json: VersionList = :: json ( & mut response) ;
29
26
assert_eq ! ( json. versions. len( ) , 0 ) ;
30
27
31
28
let ( v1, v2) = {
32
- :: mock_user ( & mut req, :: user ( "foo" ) ) ;
33
- let ( c, _) = :: mock_crate ( & mut req, :: krate ( "foo_vers_index" ) ) ;
34
- let tx = req. tx ( ) . unwrap ( ) ;
35
- let m = HashMap :: new ( ) ;
36
- let v1 = Version :: insert ( tx, c. id , & sv ( "2.0.0" ) , & m, & [ ] ) . unwrap ( ) ;
37
- let v2 = Version :: insert ( tx, c. id , & sv ( "2.0.1" ) , & m, & [ ] ) . unwrap ( ) ;
38
- ( v1, v2)
29
+ let conn = app. diesel_database . get ( ) . unwrap ( ) ;
30
+ let u = :: new_user ( "foo" ) . create_or_update ( & conn) . unwrap ( ) ;
31
+ :: CrateBuilder :: new ( "foo_vers_index" , u. id )
32
+ . version ( "2.0.0" )
33
+ . version ( "2.0.1" )
34
+ . expect_build ( & conn) ;
35
+ let ids = versions:: table
36
+ . select ( versions:: id)
37
+ . load :: < i32 > ( & * conn)
38
+ . unwrap ( ) ;
39
+ ( ids[ 0 ] , ids[ 1 ] )
39
40
} ;
40
- req. with_query ( & format ! ( "ids[]={}&ids[]={}" , v1. id , v2. id ) ) ;
41
+ req. with_query ( & format ! ( "ids[]={}&ids[]={}" , v1, v2) ) ;
41
42
let mut response = ok_resp ! ( middle. call( & mut req) ) ;
42
43
let json: VersionList = :: json ( & mut response) ;
43
44
assert_eq ! ( json. versions. len( ) , 2 ) ;
0 commit comments