test: add happy case for email client
This commit is contained in:
parent
506c632342
commit
c3fce4a441
1 changed files with 32 additions and 1 deletions
|
|
@ -72,8 +72,9 @@ mod tests {
|
||||||
use fake::faker::lorem::en::{Paragraph, Sentence};
|
use fake::faker::lorem::en::{Paragraph, Sentence};
|
||||||
use fake::{Fake, Faker};
|
use fake::{Fake, Faker};
|
||||||
use secrecy::Secret;
|
use secrecy::Secret;
|
||||||
use wiremock::matchers::{header, header_exists, method, path};
|
use wiremock::matchers::{any, header, header_exists, method, path};
|
||||||
use wiremock::{Mock, MockServer, Request, ResponseTemplate};
|
use wiremock::{Mock, MockServer, Request, ResponseTemplate};
|
||||||
|
use claims::assert_ok;
|
||||||
|
|
||||||
struct SendEmailBodyMatcher;
|
struct SendEmailBodyMatcher;
|
||||||
|
|
||||||
|
|
@ -97,6 +98,36 @@ mod tests {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn send_email_succeeds_if_the_server_returns_200() {
|
||||||
|
// Arrange
|
||||||
|
let mock_server = MockServer::start().await;
|
||||||
|
let sender = SubscriberEmail::parse(SafeEmail().fake()).unwrap();
|
||||||
|
let email_client = EmailClient::new(
|
||||||
|
mock_server.uri(),
|
||||||
|
sender,
|
||||||
|
Secret::new(Faker.fake())
|
||||||
|
);
|
||||||
|
|
||||||
|
let subscriber_email = SubscriberEmail::parse(SafeEmail().fake()).unwrap();
|
||||||
|
let subject: String = Sentence(1..2).fake();
|
||||||
|
let content: String = Paragraph(1..10).fake();
|
||||||
|
|
||||||
|
Mock::given(any())
|
||||||
|
.respond_with(ResponseTemplate::new(200))
|
||||||
|
.expect(1)
|
||||||
|
.mount(&mock_server)
|
||||||
|
.await;
|
||||||
|
|
||||||
|
// Act
|
||||||
|
let outcome = email_client
|
||||||
|
.send_email(subscriber_email, &subject, &content, &content)
|
||||||
|
.await;
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
assert_ok!(outcome);
|
||||||
|
}
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn send_email_sends_the_expected_request() {
|
async fn send_email_sends_the_expected_request() {
|
||||||
// Arrange
|
// Arrange
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue