File tree Expand file tree Collapse file tree 2 files changed +22
-16
lines changed
Expand file tree Collapse file tree 2 files changed +22
-16
lines changed Original file line number Diff line number Diff line change @@ -13,3 +13,6 @@ name = "coduck-backend"
1313[dependencies ]
1414axum = " 0.8.4"
1515tokio = { version = " 1.45.1" , features = [" full" ] }
16+
17+ [dev-dependencies ]
18+ reqwest = { version = " 0.12.19" , features = [" json" , " rustls-tls" ] }
Original file line number Diff line number Diff line change 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}
You can’t perform that action at this time.
0 commit comments