diff --git a/src/handlers/hello.rs b/src/handlers/hello.rs index 35c8068..be8949b 100644 --- a/src/handlers/hello.rs +++ b/src/handlers/hello.rs @@ -1,15 +1,6 @@ -use actix_web::{get, post, HttpResponse, Responder}; +use actix_web::{get, HttpResponse, Responder}; #[get("/")] pub async fn say_hello() -> impl Responder { HttpResponse::Ok().body("Hello world!") -} - -#[post("/echo")] -pub async fn echo(req_body: String) -> impl Responder { - HttpResponse::Ok().body(req_body) -} - -pub async fn manual_hello() -> impl Responder { - HttpResponse::Ok().body("Hey there!") } \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index a22697d..b5625b9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -24,11 +24,12 @@ async fn main() -> std::io::Result<()> { App::new() // Inject the search engine into the application state .app_data(app_state.clone()) + // enable logger .wrap(Logger::default()) + .service(hello::say_hello) - .service(hello::echo) - .route("/hey", web::get().to(hello::manual_hello)) + // Search Routes .route( "/search/index/document", diff --git a/tests/search_handler_tests.rs b/tests/search_handler_tests.rs index 381b538..ddea09f 100644 --- a/tests/search_handler_tests.rs +++ b/tests/search_handler_tests.rs @@ -34,4 +34,51 @@ mod tests { let resp = test::call_service(&app, req).await; assert!(resp.status() == 201); } + + #[actix_web::test] + async fn test_get_number_of_documents() { + let mut search_engine = SearchEngine::new(1.5, 0.75); + search_engine.index("https://example.com", "This is an example document"); + + let app_state = web::Data::new(AppStateWithSearchEngine { + search_engine: Mutex::new(search_engine.clone()), + }); + + let app = test::init_service(App::new() + .app_data(app_state.clone()) + .route( + "/search/index/number_of_documents", + web::get().to(search::get_number_of_documents), + ) + ).await; + + let req = test::TestRequest::get() + .uri("/search/index/number_of_documents") + .to_request(); + + let resp = test::call_service(&app, req).await; + assert!(resp.status() == 200); + } + + #[actix_web::test] + async fn test_search() { + let mut search_engine = SearchEngine::new(1.5, 0.75); + search_engine.index("https://example.com", "This is an example document"); + + let app_state = web::Data::new(AppStateWithSearchEngine { + search_engine: Mutex::new(search_engine.clone()), + }); + + let app = test::init_service(App::new() + .app_data(app_state.clone()) + .route("/search", web::get().to(search::search)) + ).await; + + let req = test::TestRequest::get() + .uri("/search?query=example") + .to_request(); + + let resp = test::call_service(&app, req).await; + assert!(resp.status() == 200); + } } \ No newline at end of file