Skip to content

Commit df20fe5

Browse files
committed
tests/routes/me/get: Use snapshots in me() test
1 parent 917171d commit df20fe5

File tree

3 files changed

+52
-9
lines changed

3 files changed

+52
-9
lines changed

src/tests/routes/me/get.rs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
use crate::builders::CrateBuilder;
22
use crate::util::{RequestHelper, TestApp};
33
use crates_io::views::{EncodablePrivateUser, OwnedCrate};
4+
use http::StatusCode;
5+
use insta::{assert_display_snapshot, assert_json_snapshot};
46

57
impl crate::util::MockCookieUser {
68
pub fn show_me(&self) -> UserShowPrivateResponse {
@@ -17,22 +19,23 @@ pub struct UserShowPrivateResponse {
1719

1820
#[test]
1921
fn me() {
20-
let url = "/api/v1/me";
21-
let (app, anon) = TestApp::init().empty();
22-
anon.get(url).assert_forbidden();
22+
let (app, anon, user) = TestApp::init().with_user();
2323

24-
let user = app.db_new_user("foo");
25-
let json = user.show_me();
24+
let response = anon.get::<()>("/api/v1/me");
25+
assert_eq!(response.status(), StatusCode::FORBIDDEN);
26+
assert_display_snapshot!(response.into_text(), @r###"{"errors":[{"detail":"must be logged in to perform that action"}]}"###);
2627

27-
assert_eq!(json.owned_crates.len(), 0);
28+
let response = user.get::<()>("/api/v1/me");
29+
assert_eq!(response.status(), StatusCode::OK);
30+
assert_json_snapshot!(response.into_json());
2831

2932
app.db(|conn| {
3033
CrateBuilder::new("foo_my_packages", user.as_model().id).expect_build(conn);
31-
assert_eq!(json.user.email, user.as_model().email(conn).unwrap());
3234
});
33-
let updated_json = user.show_me();
3435

35-
assert_eq!(updated_json.owned_crates.len(), 1);
36+
let response = user.get::<()>("/api/v1/me");
37+
assert_eq!(response.status(), StatusCode::OK);
38+
assert_json_snapshot!(response.into_json());
3639
}
3740

3841
#[test]
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
source: src/tests/routes/me/get.rs
3+
expression: response.into_json()
4+
---
5+
{
6+
"owned_crates": [],
7+
"user": {
8+
"avatar": null,
9+
"email": "something@example.com",
10+
"email_verification_sent": true,
11+
"email_verified": true,
12+
"id": 1,
13+
"login": "foo",
14+
"name": null,
15+
"url": "https://github.com/foo"
16+
}
17+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
source: src/tests/routes/me/get.rs
3+
expression: response.into_json()
4+
---
5+
{
6+
"owned_crates": [
7+
{
8+
"email_notifications": true,
9+
"id": 1,
10+
"name": "foo_my_packages"
11+
}
12+
],
13+
"user": {
14+
"avatar": null,
15+
"email": "something@example.com",
16+
"email_verification_sent": true,
17+
"email_verified": true,
18+
"id": 1,
19+
"login": "foo",
20+
"name": null,
21+
"url": "https://github.com/foo"
22+
}
23+
}

0 commit comments

Comments
 (0)