Skip to content

Commit 5c394bd

Browse files
committed
tests/routes/crates/owners/add: Use add_named_owner() helper fn
1 parent f2318db commit 5c394bd

File tree

1 file changed

+14
-47
lines changed
  • src/tests/routes/crates/owners

1 file changed

+14
-47
lines changed

src/tests/routes/crates/owners/add.rs

Lines changed: 14 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ use crate::models::token::{CrateScope, EndpointScope};
22
use crate::tests::builders::CrateBuilder;
33
use crate::tests::owners::expire_invitation;
44
use crate::tests::util::{RequestHelper, TestApp};
5-
use crate::tests::OwnerResp;
65
use http::StatusCode;
76
use insta::assert_snapshot;
87

@@ -17,16 +16,8 @@ async fn test_cargo_invite_owners() {
1716
let new_user = app.db_new_user("cilantro");
1817
CrateBuilder::new("guacamole", owner.as_model().id).expect_build(&mut conn);
1918

20-
#[derive(Serialize)]
21-
struct OwnerReq {
22-
owners: Option<Vec<String>>,
23-
}
24-
25-
let body = serde_json::to_string(&OwnerReq {
26-
owners: Some(vec![new_user.as_model().gh_login.clone()]),
27-
});
28-
let json: OwnerResp = owner
29-
.put("/api/v1/crates/guacamole/owners", body.unwrap())
19+
let json = owner
20+
.add_named_owner("guacamole", &new_user.as_model().gh_login)
3021
.await
3122
.good();
3223

@@ -52,10 +43,7 @@ async fn owner_change_via_cookie() {
5243

5344
let krate = CrateBuilder::new("foo_crate", cookie.as_model().id).expect_build(&mut conn);
5445

55-
let url = format!("/api/v1/crates/{}/owners", krate.name);
56-
let body = json!({ "owners": [user2.gh_login] });
57-
let body = serde_json::to_vec(&body).unwrap();
58-
let response = cookie.put::<()>(&url, body).await;
46+
let response = cookie.add_named_owner(&krate.name, &user2.gh_login).await;
5947
assert_eq!(response.status(), StatusCode::OK);
6048
assert_snapshot!(response.text(), @r#"{"msg":"user user-2 has been invited to be an owner of crate foo_crate","ok":true}"#);
6149
}
@@ -70,10 +58,7 @@ async fn owner_change_via_token() {
7058

7159
let krate = CrateBuilder::new("foo_crate", token.as_model().user_id).expect_build(&mut conn);
7260

73-
let url = format!("/api/v1/crates/{}/owners", krate.name);
74-
let body = json!({ "owners": [user2.gh_login] });
75-
let body = serde_json::to_vec(&body).unwrap();
76-
let response = token.put::<()>(&url, body).await;
61+
let response = token.add_named_owner(&krate.name, &user2.gh_login).await;
7762
assert_eq!(response.status(), StatusCode::OK);
7863
assert_snapshot!(response.text(), @r#"{"msg":"user user-2 has been invited to be an owner of crate foo_crate","ok":true}"#);
7964
}
@@ -90,10 +75,7 @@ async fn owner_change_via_change_owner_token() {
9075

9176
let krate = CrateBuilder::new("foo_crate", token.as_model().user_id).expect_build(&mut conn);
9277

93-
let url = format!("/api/v1/crates/{}/owners", krate.name);
94-
let body = json!({ "owners": [user2.gh_login] });
95-
let body = serde_json::to_vec(&body).unwrap();
96-
let response = token.put::<()>(&url, body).await;
78+
let response = token.add_named_owner(&krate.name, &user2.gh_login).await;
9779
assert_eq!(response.status(), StatusCode::OK);
9880
assert_snapshot!(response.text(), @r#"{"msg":"user user-2 has been invited to be an owner of crate foo_crate","ok":true}"#);
9981
}
@@ -110,10 +92,7 @@ async fn owner_change_via_change_owner_token_with_matching_crate_scope() {
11092

11193
let krate = CrateBuilder::new("foo_crate", token.as_model().user_id).expect_build(&mut conn);
11294

113-
let url = format!("/api/v1/crates/{}/owners", krate.name);
114-
let body = json!({ "owners": [user2.gh_login] });
115-
let body = serde_json::to_vec(&body).unwrap();
116-
let response = token.put::<()>(&url, body).await;
95+
let response = token.add_named_owner(&krate.name, &user2.gh_login).await;
11796
assert_eq!(response.status(), StatusCode::OK);
11897
assert_snapshot!(response.text(), @r#"{"msg":"user user-2 has been invited to be an owner of crate foo_crate","ok":true}"#);
11998
}
@@ -130,10 +109,7 @@ async fn owner_change_via_change_owner_token_with_wrong_crate_scope() {
130109

131110
let krate = CrateBuilder::new("foo_crate", token.as_model().user_id).expect_build(&mut conn);
132111

133-
let url = format!("/api/v1/crates/{}/owners", krate.name);
134-
let body = json!({ "owners": [user2.gh_login] });
135-
let body = serde_json::to_vec(&body).unwrap();
136-
let response = token.put::<()>(&url, body).await;
112+
let response = token.add_named_owner(&krate.name, &user2.gh_login).await;
137113
assert_eq!(response.status(), StatusCode::FORBIDDEN);
138114
assert_snapshot!(response.text(), @r#"{"errors":[{"detail":"this token does not have the required permissions to perform this action"}]}"#);
139115
}
@@ -150,10 +126,7 @@ async fn owner_change_via_publish_token() {
150126

151127
let krate = CrateBuilder::new("foo_crate", token.as_model().user_id).expect_build(&mut conn);
152128

153-
let url = format!("/api/v1/crates/{}/owners", krate.name);
154-
let body = json!({ "owners": [user2.gh_login] });
155-
let body = serde_json::to_vec(&body).unwrap();
156-
let response = token.put::<()>(&url, body).await;
129+
let response = token.add_named_owner(&krate.name, &user2.gh_login).await;
157130
assert_eq!(response.status(), StatusCode::FORBIDDEN);
158131
assert_snapshot!(response.text(), @r#"{"errors":[{"detail":"this token does not have the required permissions to perform this action"}]}"#);
159132
}
@@ -168,10 +141,7 @@ async fn owner_change_without_auth() {
168141

169142
let krate = CrateBuilder::new("foo_crate", cookie.as_model().id).expect_build(&mut conn);
170143

171-
let url = format!("/api/v1/crates/{}/owners", krate.name);
172-
let body = json!({ "owners": [user2.gh_login] });
173-
let body = serde_json::to_vec(&body).unwrap();
174-
let response = anon.put::<()>(&url, body).await;
144+
let response = anon.add_named_owner(&krate.name, &user2.gh_login).await;
175145
assert_eq!(response.status(), StatusCode::FORBIDDEN);
176146
assert_snapshot!(response.text(), @r#"{"errors":[{"detail":"this action requires authentication"}]}"#);
177147
}
@@ -289,10 +259,7 @@ async fn test_unknown_crate() {
289259
let (app, _, user) = TestApp::full().with_user();
290260
app.db_new_user("bar");
291261

292-
let body = json!({ "owners": ["bar"] });
293-
let body = serde_json::to_vec(&body).unwrap();
294-
295-
let response = user.put::<()>("/api/v1/crates/unknown/owners", body).await;
262+
let response = user.add_named_owner("unknown", "bar").await;
296263
assert_eq!(response.status(), StatusCode::NOT_FOUND);
297264
assert_snapshot!(response.text(), @r#"{"errors":[{"detail":"crate `unknown` does not exist"}]}"#);
298265
}
@@ -304,8 +271,7 @@ async fn test_unknown_user() {
304271

305272
CrateBuilder::new("foo", cookie.as_model().id).expect_build(&mut conn);
306273

307-
let body = serde_json::to_vec(&json!({ "owners": ["unknown"] })).unwrap();
308-
let response = cookie.put::<()>("/api/v1/crates/foo/owners", body).await;
274+
let response = cookie.add_named_owner("foo", "unknown").await;
309275
assert_eq!(response.status(), StatusCode::BAD_REQUEST);
310276
assert_snapshot!(response.text(), @r#"{"errors":[{"detail":"could not find user with login `unknown`"}]}"#);
311277
}
@@ -317,8 +283,9 @@ async fn test_unknown_team() {
317283

318284
CrateBuilder::new("foo", cookie.as_model().id).expect_build(&mut conn);
319285

320-
let body = serde_json::to_vec(&json!({ "owners": ["github:unknown:unknown"] })).unwrap();
321-
let response = cookie.put::<()>("/api/v1/crates/foo/owners", body).await;
286+
let response = cookie
287+
.add_named_owner("foo", "github:unknown:unknown")
288+
.await;
322289
assert_eq!(response.status(), StatusCode::BAD_REQUEST);
323290
assert_snapshot!(response.text(), @r#"{"errors":[{"detail":"could not find the github team unknown/unknown. Make sure that you have the right permissions in GitHub. See https://doc.rust-lang.org/cargo/reference/publishing.html#github-permissions"}]}"#);
324291
}

0 commit comments

Comments
 (0)