Skip to content

Commit 37383f7

Browse files
committed
feat: Update unit test by replacing 'rocket' with' axum'
1 parent 9b4bf08 commit 37383f7

File tree

2 files changed

+22
-16
lines changed

2 files changed

+22
-16
lines changed

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,6 @@ name = "coduck-backend"
1313
[dependencies]
1414
axum = "0.8.4"
1515
tokio = { version = "1.45.1", features = ["full"] }
16+
17+
[dev-dependencies]
18+
reqwest = { version = "0.12.19", features = ["json", "rustls-tls"] }

tests/health_check.rs

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,23 @@
1-
#[macro_use]
2-
extern crate rocket;
1+
#[tokio::test]
2+
async fn health_check_works() {
3+
let listener = tokio::net::TcpListener::bind("127.0.0.1:0").await.unwrap();
4+
let port = listener.local_addr().unwrap().port();
35

4-
use rocket::http::Status;
5-
use rocket::local::blocking::Client;
6-
use rocket::{Build, Rocket};
7-
use std::io::Read;
6+
tokio::spawn(async move {
7+
let app = coduck_backend::build_router();
8+
axum::serve(listener, app)
9+
.await
10+
.expect("Server failed to start");
11+
});
812

9-
fn spawn_app() -> Rocket<Build> {
10-
coduck_backend::run()
11-
}
12-
13-
#[test]
14-
fn health_check_works() {
15-
let client = Client::tracked(spawn_app()).expect("Failed to create client");
16-
let response = client.get(uri!("/health_check")).dispatch();
13+
let client = reqwest::Client::new();
14+
let response = client
15+
.get(&format!("http://127.0.0.1:{port}/health"))
16+
.send()
17+
.await
18+
.unwrap();
1719

18-
assert_eq!(response.status(), Status::Ok);
19-
assert_eq!(response.bytes().count(), 0);
20+
assert_eq!(response.status(), reqwest::StatusCode::OK);
21+
let body = response.text().await.unwrap();
22+
assert_eq!(body, "OK");
2023
}

0 commit comments

Comments
 (0)