From 3c97b96cf109c713f4d906bdafe10b49ce15b75b Mon Sep 17 00:00:00 2001 From: Nick Bland Date: Mon, 4 Sep 2023 21:47:49 +1000 Subject: [PATCH] Chapter 3.9 + Update tests to incorporate new structure. + Adjust tests to connect to database --- .gitignore | 1 + src/configuration.rs | 8 ++++---- src/lib.rs | 2 +- src/main.rs | 4 ++-- src/routes/mod.rs | 2 +- src/routes/subscriptions.rs | 4 ++-- src/startup.rs | 14 +++++++------- tests/health_check.rs | 8 ++++---- 8 files changed, 22 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index 5f43cb1..258fe46 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ .vscode #.env .gitlab-ci-local +.DS_Store # Added by cargo # diff --git a/src/configuration.rs b/src/configuration.rs index 800d752..6ef033e 100644 --- a/src/configuration.rs +++ b/src/configuration.rs @@ -1,4 +1,3 @@ - #[derive(serde::Deserialize)] pub struct Settings { pub database: DatabaseSettings, @@ -17,9 +16,10 @@ pub struct DatabaseSettings { pub fn get_configuration() -> Result { // initialise config reader let settings = config::Config::builder() - .add_source( - config::File::new("configuration.yaml", config::FileFormat::Yaml) - ) + .add_source(config::File::new( + "configuration.yaml", + config::FileFormat::Yaml, + )) .build()?; settings.try_deserialize::() } diff --git a/src/lib.rs b/src/lib.rs index 16870f5..5d1dce7 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,3 @@ pub mod configuration; pub mod routes; -pub mod startup; \ No newline at end of file +pub mod startup; diff --git a/src/main.rs b/src/main.rs index 840e4ce..b49cef4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,6 @@ -use std::net::TcpListener; -use mail_app::startup::run; use mail_app::configuration::get_configuration; +use mail_app::startup::run; +use std::net::TcpListener; #[tokio::main] async fn main() -> Result<(), std::io::Error> { diff --git a/src/routes/mod.rs b/src/routes/mod.rs index 1a267f9..90ffeed 100644 --- a/src/routes/mod.rs +++ b/src/routes/mod.rs @@ -2,4 +2,4 @@ mod health_check; mod subscriptions; pub use health_check::*; -pub use subscriptions::*; \ No newline at end of file +pub use subscriptions::*; diff --git a/src/routes/subscriptions.rs b/src/routes/subscriptions.rs index 2793a6e..3d68f6c 100644 --- a/src/routes/subscriptions.rs +++ b/src/routes/subscriptions.rs @@ -2,8 +2,8 @@ use actix_web::{web, HttpResponse}; #[derive(serde::Deserialize)] pub struct FormData { - email: String, - name: String, + // email: String, + // name: String, } pub async fn subscribe(_form: web::Form) -> HttpResponse { diff --git a/src/startup.rs b/src/startup.rs index 67991ef..8d743a3 100644 --- a/src/startup.rs +++ b/src/startup.rs @@ -1,15 +1,15 @@ -use actix_web::{web, App, HttpServer}; -use actix_web::dev::Server; -use std::net::TcpListener; use crate::routes::{health_check, subscribe}; +use actix_web::dev::Server; +use actix_web::{web, App, HttpServer}; +use std::net::TcpListener; pub fn run(listener: TcpListener) -> Result { let server = HttpServer::new(|| { App::new() .route("/health_check", web::get().to(health_check)) .route("/subscriptions", web::post().to(subscribe)) - }) - .listen(listener)? - .run(); + }) + .listen(listener)? + .run(); Ok(server) -} \ No newline at end of file +} diff --git a/tests/health_check.rs b/tests/health_check.rs index 1018bed..dbc7d16 100644 --- a/tests/health_check.rs +++ b/tests/health_check.rs @@ -1,7 +1,7 @@ -use std::net::TcpListener; -use sqlx::{PgConnection, Connection}; -use mail_app::startup::run; use mail_app::configuration::get_configuration; +use mail_app::startup::run; +use sqlx::{Connection, PgConnection}; +use std::net::TcpListener; fn spawn_app() -> String { let listener = TcpListener::bind("127.0.0.1:0").expect("Failed to bind to random port."); @@ -59,7 +59,7 @@ async fn subscribe_returns_a_200_for_valid_form_data() { .fetch_one(&mut connection) .await .expect("Failed to fetch saved subscription."); - + assert_eq!(saved.email, "ursula_le_guin@gmail.com"); assert_eq!(saved.name, "le guin"); }