1
1
use conduit:: { Handler , Method } ;
2
2
use conduit_test:: MockRequest ;
3
3
4
- use cargo_registry:: db:: RequestTransaction ;
5
4
use cargo_registry:: keyword:: { Keyword , EncodableKeyword } ;
6
5
7
6
#[ derive( RustcDecodable ) ]
@@ -14,13 +13,16 @@ struct GoodKeyword { keyword: EncodableKeyword }
14
13
#[ test]
15
14
fn index ( ) {
16
15
let ( _b, app, middle) = :: app ( ) ;
17
- let mut req = :: req ( app, Method :: Get , "/api/v1/keywords" ) ;
16
+ let mut req = :: req ( app. clone ( ) , Method :: Get , "/api/v1/keywords" ) ;
18
17
let mut response = ok_resp ! ( middle. call( & mut req) ) ;
19
18
let json: KeywordList = :: json ( & mut response) ;
20
19
assert_eq ! ( json. keywords. len( ) , 0 ) ;
21
20
assert_eq ! ( json. meta. total, 0 ) ;
22
21
23
- :: mock_keyword ( & mut req, "foo" ) ;
22
+ {
23
+ let conn = app. diesel_database . get ( ) . unwrap ( ) ;
24
+ Keyword :: find_or_create_all ( & conn, & [ "foo" ] ) . unwrap ( ) ;
25
+ }
24
26
let mut response = ok_resp ! ( middle. call( & mut req) ) ;
25
27
let json: KeywordList = :: json ( & mut response) ;
26
28
assert_eq ! ( json. keywords. len( ) , 1 ) ;
@@ -31,11 +33,14 @@ fn index() {
31
33
#[ test]
32
34
fn show ( ) {
33
35
let ( _b, app, middle) = :: app ( ) ;
34
- let mut req = :: req ( app, Method :: Get , "/api/v1/keywords/foo" ) ;
36
+ let mut req = :: req ( app. clone ( ) , Method :: Get , "/api/v1/keywords/foo" ) ;
35
37
let response = t_resp ! ( middle. call( & mut req) ) ;
36
38
assert_eq ! ( response. status. 0 , 404 ) ;
37
39
38
- :: mock_keyword ( & mut req, "foo" ) ;
40
+ {
41
+ let conn = app. diesel_database . get ( ) . unwrap ( ) ;
42
+ Keyword :: find_or_create_all ( & conn, & [ "foo" ] ) . unwrap ( ) ;
43
+ }
39
44
let mut response = ok_resp ! ( middle. call( & mut req) ) ;
40
45
let json: GoodKeyword = :: json ( & mut response) ;
41
46
assert_eq ! ( json. keyword. keyword, "foo" . to_string( ) ) ;
@@ -44,8 +49,11 @@ fn show() {
44
49
#[ test]
45
50
fn uppercase ( ) {
46
51
let ( _b, app, middle) = :: app ( ) ;
47
- let mut req = :: req ( app, Method :: Get , "/api/v1/keywords/UPPER" ) ;
48
- :: mock_keyword ( & mut req, "UPPER" ) ;
52
+ let mut req = :: req ( app. clone ( ) , Method :: Get , "/api/v1/keywords/UPPER" ) ;
53
+ {
54
+ let conn = app. diesel_database . get ( ) . unwrap ( ) ;
55
+ Keyword :: find_or_create_all ( & conn, & [ "UPPER" ] ) . unwrap ( ) ;
56
+ }
49
57
50
58
let mut res = ok_resp ! ( middle. call( & mut req) ) ;
51
59
let json: GoodKeyword = :: json ( & mut res) ;
@@ -55,40 +63,63 @@ fn uppercase() {
55
63
#[ test]
56
64
fn update_crate ( ) {
57
65
let ( _b, app, middle) = :: app ( ) ;
58
- let mut req = :: req ( app, Method :: Get , "/api/v1/keywords/foo" ) ;
66
+ let mut req = :: req ( app. clone ( ) , Method :: Get , "/api/v1/keywords/foo" ) ;
59
67
let cnt = |req : & mut MockRequest , kw : & str | {
60
68
req. with_path ( & format ! ( "/api/v1/keywords/{}" , kw) ) ;
61
69
let mut response = ok_resp ! ( middle. call( req) ) ;
62
70
:: json :: < GoodKeyword > ( & mut response) . keyword . crates_cnt as usize
63
71
} ;
64
- :: mock_user ( & mut req, :: user ( "foo" ) ) ;
65
- let ( krate, _) = :: mock_crate ( & mut req, :: krate ( "fookey" ) ) ;
66
- :: mock_keyword ( & mut req, "kw1" ) ;
67
- :: mock_keyword ( & mut req, "kw2" ) ;
68
72
69
- Keyword :: update_crate_old ( req. tx ( ) . unwrap ( ) , & krate, & [ ] ) . unwrap ( ) ;
73
+ let krate = {
74
+ let conn = app. diesel_database . get ( ) . unwrap ( ) ;
75
+ let u = :: new_user ( "foo" )
76
+ . create_or_update ( & conn)
77
+ . unwrap ( ) ;
78
+ Keyword :: find_or_create_all ( & conn, & [ "kw1" , "kw2" ] ) . unwrap ( ) ;
79
+ :: new_crate ( "fookey" )
80
+ . create_or_update ( & conn, None , u. id )
81
+ . unwrap ( )
82
+ } ;
83
+
84
+ {
85
+ let conn = app. diesel_database . get ( ) . unwrap ( ) ;
86
+ Keyword :: update_crate ( & conn, & krate, & [ ] ) . unwrap ( ) ;
87
+ }
70
88
assert_eq ! ( cnt( & mut req, "kw1" ) , 0 ) ;
71
89
assert_eq ! ( cnt( & mut req, "kw2" ) , 0 ) ;
72
90
73
- Keyword :: update_crate_old ( req. tx ( ) . unwrap ( ) , & krate, & [ "kw1" . to_string ( ) ] ) . unwrap ( ) ;
91
+ {
92
+ let conn = app. diesel_database . get ( ) . unwrap ( ) ;
93
+ Keyword :: update_crate ( & conn, & krate, & [ "kw1" ] ) . unwrap ( ) ;
94
+ }
74
95
assert_eq ! ( cnt( & mut req, "kw1" ) , 1 ) ;
75
96
assert_eq ! ( cnt( & mut req, "kw2" ) , 0 ) ;
76
97
77
- Keyword :: update_crate_old ( req. tx ( ) . unwrap ( ) , & krate, & [ "kw2" . to_string ( ) ] ) . unwrap ( ) ;
98
+ {
99
+ let conn = app. diesel_database . get ( ) . unwrap ( ) ;
100
+ Keyword :: update_crate ( & conn, & krate, & [ "kw2" ] ) . unwrap ( ) ;
101
+ }
78
102
assert_eq ! ( cnt( & mut req, "kw1" ) , 0 ) ;
79
103
assert_eq ! ( cnt( & mut req, "kw2" ) , 1 ) ;
80
104
81
- Keyword :: update_crate_old ( req. tx ( ) . unwrap ( ) , & krate, & [ ] ) . unwrap ( ) ;
105
+ {
106
+ let conn = app. diesel_database . get ( ) . unwrap ( ) ;
107
+ Keyword :: update_crate ( & conn, & krate, & [ ] ) . unwrap ( ) ;
108
+ }
82
109
assert_eq ! ( cnt( & mut req, "kw1" ) , 0 ) ;
83
110
assert_eq ! ( cnt( & mut req, "kw2" ) , 0 ) ;
84
111
85
- Keyword :: update_crate_old ( req. tx ( ) . unwrap ( ) , & krate, & [ "kw1" . to_string ( ) ,
86
- "kw2" . to_string ( ) ] ) . unwrap ( ) ;
112
+ {
113
+ let conn = app. diesel_database . get ( ) . unwrap ( ) ;
114
+ Keyword :: update_crate ( & conn, & krate, & [ "kw1" , "kw2" ] ) . unwrap ( ) ;
115
+ }
87
116
assert_eq ! ( cnt( & mut req, "kw1" ) , 1 ) ;
88
117
assert_eq ! ( cnt( & mut req, "kw2" ) , 1 ) ;
89
118
90
- Keyword :: update_crate_old ( req. tx ( ) . unwrap ( ) , & krate, & [ ] ) . unwrap ( ) ;
119
+ {
120
+ let conn = app. diesel_database . get ( ) . unwrap ( ) ;
121
+ Keyword :: update_crate ( & conn, & krate, & [ ] ) . unwrap ( ) ;
122
+ }
91
123
assert_eq ! ( cnt( & mut req, "kw1" ) , 0 ) ;
92
124
assert_eq ! ( cnt( & mut req, "kw2" ) , 0 ) ;
93
-
94
125
}
0 commit comments