Skip to content

Commit 7512175

Browse files
authored
Merge pull request #11357 from Turbo87/token-tests
Use API endpoint that actually supports token auth for token tests
2 parents dab7125 + c778663 commit 7512175

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

src/tests/authentication.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use crate::tests::TestApp;
2-
use crate::tests::util::{MockRequestExt, RequestHelper, Response};
2+
use crate::tests::util::{MockRequestExt, MockTokenUser, RequestHelper, Response};
33

4+
use crate::tests::builders::PublishBuilder;
45
use crate::tests::util::encode_session_header;
56
use http::{Method, StatusCode, header};
67
use insta::assert_snapshot;
@@ -18,11 +19,11 @@ async fn anonymous_user_unauthorized() {
1819

1920
#[tokio::test(flavor = "multi_thread")]
2021
async fn token_auth_cannot_find_token() {
21-
let (_, anon) = TestApp::init().empty().await;
22-
let mut request = anon.request_builder(Method::GET, URL);
23-
request.header(header::AUTHORIZATION, "cio1tkfake-token");
24-
let response: Response<()> = anon.run(request).await;
22+
let (app, _anon) = TestApp::full().empty().await;
2523

24+
let client = MockTokenUser::with_auth_header("cio1tkfake-token".to_string(), app.clone());
25+
let pb = PublishBuilder::new("foo", "1.0.0");
26+
let response = client.publish_crate(pb).await;
2627
assert_snapshot!(response.status(), @"403 Forbidden");
2728
assert_snapshot!(response.text(), @r#"{"errors":[{"detail":"authentication failed"}]}"#);
2829
}

src/tests/token.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
use crate::tests::util::MockRequestExt;
1+
use crate::tests::builders::PublishBuilder;
2+
use crate::tests::util::MockTokenUser;
23
use crate::tests::{RequestHelper, TestApp};
34
use crate::{models::ApiToken, views::EncodableMe};
45
use diesel::prelude::*;
56
use diesel_async::RunQueryDsl;
6-
use http::header;
77
use insta::assert_snapshot;
88

99
#[tokio::test(flavor = "multi_thread")]
@@ -35,12 +35,11 @@ async fn using_token_updates_last_used_at() {
3535

3636
#[tokio::test(flavor = "multi_thread")]
3737
async fn old_tokens_give_specific_error_message() {
38-
let url = "/api/v1/me";
39-
let (_, anon) = TestApp::init().empty().await;
38+
let (app, _anon) = TestApp::full().empty().await;
4039

41-
let mut request = anon.get_request(url);
42-
request.header(header::AUTHORIZATION, "oldtoken");
43-
let response = anon.run::<()>(request).await;
40+
let client = MockTokenUser::with_auth_header("oldtoken".to_string(), app.clone());
41+
let pb = PublishBuilder::new("foo", "1.0.0");
42+
let response = client.publish_crate(pb).await;
4443
assert_snapshot!(response.status(), @"401 Unauthorized");
4544
assert_snapshot!(response.text(), @r#"{"errors":[{"detail":"The given API token does not match the format used by crates.io. Tokens generated before 2020-07-14 were generated with an insecure random number generator, and have been revoked. You can generate a new token at https://crates.io/me. For more information please see https://blog.rust-lang.org/2020/07/14/crates-io-security-advisory.html. We apologize for any inconvenience."}]}"#);
4645
}

0 commit comments

Comments
 (0)