@@ -135,28 +135,30 @@ fn owners_can_remove_self() {
135135 . db ( |conn| CrateBuilder :: new ( "owners_selfremove" , user. as_model ( ) . id ) . expect_build ( conn) ) ;
136136
137137 // Deleting yourself when you're the only owner isn't allowed.
138- let json = token
139- . remove_named_owner ( "owners_selfremove" , username )
140- . bad_with_status ( StatusCode :: OK ) ;
141- assert ! ( json . errors [ 0 ]
142- . detail
143- . contains ( "cannot remove all individual owners of a crate" ) ) ;
138+ let response = token. remove_named_owner ( "owners_selfremove" , username ) ;
139+ response . assert_status ( StatusCode :: OK ) ;
140+ assert_eq ! (
141+ response . json ( ) ,
142+ json! ( { "errors" : [ { " detail" : "cannot remove all individual owners of a crate. Team member don't have permission to modify owners, so at least one individual owner is required." } ] } )
143+ ) ;
144144
145145 create_and_add_owner ( & app, & token, "secondowner" , & krate) ;
146146
147147 // Deleting yourself when there are other owners is allowed.
148- let json = token
149- . remove_named_owner ( "owners_selfremove" , username)
150- . good ( ) ;
151- assert ! ( json. ok) ;
148+ let response = token. remove_named_owner ( "owners_selfremove" , username) ;
149+ response. assert_status ( StatusCode :: OK ) ;
150+ assert_eq ! (
151+ response. json( ) ,
152+ json!( { "msg" : "owners successfully removed" , "ok" : true } )
153+ ) ;
152154
153155 // After you delete yourself, you no longer have permisions to manage the crate.
154- let json = token
155- . remove_named_owner ( "owners_selfremove" , username )
156- . bad_with_status ( StatusCode :: OK ) ;
157- assert ! ( json . errors [ 0 ]
158- . detail
159- . contains ( "only owners have permission to modify owners" , ) ) ;
156+ let response = token. remove_named_owner ( "owners_selfremove" , username ) ;
157+ response . assert_status ( StatusCode :: OK ) ;
158+ assert_eq ! (
159+ response . json ( ) ,
160+ json! ( { "errors" : [ { " detail" : "only owners have permission to modify owners" } ] } )
161+ ) ;
160162}
161163
162164// Verify consistency when adidng or removing multiple owners in a single request.
@@ -172,35 +174,46 @@ fn modify_multiple_owners() {
172174 let user3 = create_and_add_owner ( & app, & token, "user3" , & krate) ;
173175
174176 // Deleting all owners is not allowed.
175- let json = token
176- . remove_named_owners ( "owners_multiple" , & [ username , "user2" , "user3" ] )
177- . bad_with_status ( StatusCode :: OK ) ;
178- assert ! ( & json . errors [ 0 ]
179- . detail
180- . contains ( "cannot remove all individual owners of a crate" ) ) ;
177+ let response = token. remove_named_owners ( "owners_multiple" , & [ username , "user2" , "user3" ] ) ;
178+ response . assert_status ( StatusCode :: OK ) ;
179+ assert_eq ! (
180+ response . json ( ) ,
181+ json! ( { "errors" : [ { " detail" : "cannot remove all individual owners of a crate. Team member don't have permission to modify owners, so at least one individual owner is required." } ] } )
182+ ) ;
181183 assert_eq ! ( app. db( |conn| krate. owners( & conn) . unwrap( ) ) . len( ) , 3 ) ;
182184
183185 // Deleting two owners at once is allowed.
184- let json = token
185- . remove_named_owners ( "owners_multiple" , & [ "user2" , "user3" ] )
186- . good ( ) ;
187- assert ! ( json. ok) ;
186+ let response = token. remove_named_owners ( "owners_multiple" , & [ "user2" , "user3" ] ) ;
187+ response. assert_status ( StatusCode :: OK ) ;
188+ assert_eq ! (
189+ response. json( ) ,
190+ json!( { "msg" : "owners successfully removed" , "ok" : true } )
191+ ) ;
188192 assert_eq ! ( app. db( |conn| krate. owners( & conn) . unwrap( ) ) . len( ) , 1 ) ;
189193
190194 // Adding multiple users fails if one of them already is an owner.
191- let json = token
192- . add_named_owners ( "owners_multiple" , & [ "user2" , username] )
193- . bad_with_status ( StatusCode :: OK ) ;
194- assert ! ( & json. errors[ 0 ] . detail. contains( "is already an owner" ) ) ;
195+ let response = token. add_named_owners ( "owners_multiple" , & [ "user2" , username] ) ;
196+ response. assert_status ( StatusCode :: OK ) ;
197+ assert_eq ! (
198+ response. json( ) ,
199+ json!( { "errors" : [ { "detail" : "`foo` is already an owner" } ] } )
200+ ) ;
195201 assert_eq ! ( app. db( |conn| krate. owners( & conn) . unwrap( ) ) . len( ) , 1 ) ;
196202
197203 // Adding multiple users at once succeeds.
198- let json = token
199- . add_named_owners ( "owners_multiple" , & [ "user2" , "user3" ] )
200- . good ( ) ;
201- assert ! ( json. ok) ;
204+ let response = token. add_named_owners ( "owners_multiple" , & [ "user2" , "user3" ] ) ;
205+ response. assert_status ( StatusCode :: OK ) ;
206+ assert_eq ! (
207+ response. json( ) ,
208+ json!( {
209+ "msg" : "user user2 has been invited to be an owner of crate owners_multiple,user user3 has been invited to be an owner of crate owners_multiple" ,
210+ "ok" : true ,
211+ } )
212+ ) ;
213+
202214 user2. accept_ownership_invitation ( & krate. name , krate. id ) ;
203215 user3. accept_ownership_invitation ( & krate. name , krate. id ) ;
216+
204217 assert_eq ! ( app. db( |conn| krate. owners( & conn) . unwrap( ) ) . len( ) , 3 ) ;
205218}
206219
0 commit comments