Flash messages using axum-messages
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
use crate::helpers::{ConfirmationLinks, TestApp};
|
||||
use uuid::Uuid;
|
||||
use wiremock::{
|
||||
Mock, ResponseTemplate,
|
||||
matchers::{any, method, path},
|
||||
@@ -21,6 +22,87 @@ async fn newsletters_are_not_delivered_to_unconfirmed_subscribers() {
|
||||
assert_eq!(response.status().as_u16(), 200);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn request_missing_authorization_are_rejected() {
|
||||
let app = TestApp::spawn().await;
|
||||
|
||||
let newsletter_request_body = serde_json::json!({
|
||||
"title": "Newsletter title",
|
||||
"content": {
|
||||
"text": "Newsletter body as plain text",
|
||||
"html": "<p>Newsletter body as HTML</p>"
|
||||
}
|
||||
});
|
||||
let response = reqwest::Client::new()
|
||||
.post(format!("{}/newsletters", &app.address))
|
||||
.json(&newsletter_request_body)
|
||||
.send()
|
||||
.await
|
||||
.expect("Failed to execute request");
|
||||
|
||||
assert_eq!(response.status().as_u16(), 401);
|
||||
assert_eq!(
|
||||
response.headers()["WWW-Authenticate"],
|
||||
r#"Basic realm="publish""#
|
||||
);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn non_existing_user_is_rejected() {
|
||||
let app = TestApp::spawn().await;
|
||||
|
||||
let newsletter_request_body = serde_json::json!({
|
||||
"title": "Newsletter title",
|
||||
"content": {
|
||||
"text": "Newsletter body as plain text",
|
||||
"html": "<p>Newsletter body as HTML</p>"
|
||||
}
|
||||
});
|
||||
let username = Uuid::new_v4().to_string();
|
||||
let password = Uuid::new_v4().to_string();
|
||||
let response = reqwest::Client::new()
|
||||
.post(format!("{}/newsletters", &app.address))
|
||||
.json(&newsletter_request_body)
|
||||
.basic_auth(username, Some(password))
|
||||
.send()
|
||||
.await
|
||||
.expect("Failed to execute request");
|
||||
|
||||
assert_eq!(response.status().as_u16(), 401);
|
||||
assert_eq!(
|
||||
response.headers()["WWW-Authenticate"],
|
||||
r#"Basic realm="publish""#
|
||||
);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn invalid_password_is_rejected() {
|
||||
let app = TestApp::spawn().await;
|
||||
|
||||
let newsletter_request_body = serde_json::json!({
|
||||
"title": "Newsletter title",
|
||||
"content": {
|
||||
"text": "Newsletter body as plain text",
|
||||
"html": "<p>Newsletter body as HTML</p>"
|
||||
}
|
||||
});
|
||||
let username = app.test_user.username;
|
||||
let password = Uuid::new_v4().to_string();
|
||||
let response = reqwest::Client::new()
|
||||
.post(format!("{}/newsletters", &app.address))
|
||||
.json(&newsletter_request_body)
|
||||
.basic_auth(username, Some(password))
|
||||
.send()
|
||||
.await
|
||||
.expect("Failed to execute request");
|
||||
|
||||
assert_eq!(response.status().as_u16(), 401);
|
||||
assert_eq!(
|
||||
response.headers()["WWW-Authenticate"],
|
||||
r#"Basic realm="publish""#
|
||||
);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn newsletters_are_delivered_to_confirmed_subscribers() {
|
||||
let app = TestApp::spawn().await;
|
||||
|
||||
Reference in New Issue
Block a user