@@ -10,3 +10,50 @@ pub async fn find_all() -> Result<HttpResponse> {
1010 Err ( err) => Ok ( err. response ( ) ) ,
1111 }
1212}
13+
14+ #[ cfg( test) ]
15+ mod tests {
16+ use crate :: { App , config} ;
17+ use actix_cors:: Cors ;
18+ use actix_service:: Service ;
19+ use actix_web:: { test, http, http:: StatusCode } ;
20+ use futures:: FutureExt ;
21+ use http:: header;
22+
23+
24+ #[ actix_rt:: test]
25+ async fn test_list_ok ( ) {
26+ let mut app = test:: init_service (
27+ App :: new ( )
28+ . wrap ( Cors :: new ( )
29+ . send_wildcard ( )
30+ . allowed_methods ( vec ! [ "GET" , "POST" , "PUT" , "DELETE" ] )
31+ . allowed_header ( http:: header:: CONTENT_TYPE )
32+ . max_age ( 3600 )
33+ . finish ( ) )
34+ . data ( config:: db:: migrate_and_config_db ( ":memory:" ) )
35+ . wrap ( actix_web:: middleware:: Logger :: default ( ) )
36+ . wrap ( crate :: middleware:: authen_middleware:: Authentication )
37+ . wrap_fn ( |req, srv| {
38+ srv. call ( req) . map ( |res| res)
39+ } )
40+ . configure ( crate :: config:: app:: config_services)
41+ ) . await ;
42+
43+ let resp = test:: TestRequest :: post ( )
44+ . uri ( "/api/auth/login" )
45+ . set ( header:: ContentType :: json ( ) )
46+ . set_payload ( r#"{"username_or_email":"admin","password":"password"}"# . as_bytes ( ) )
47+ . send_request ( & mut app)
48+ . await ;
49+
50+ assert_eq ! ( resp. status( ) , StatusCode :: OK ) ;
51+
52+ let resp = test:: TestRequest :: post ( )
53+ . uri ( "/api/services" )
54+ . set ( header:: ContentType :: json ( ) )
55+ // .set(header::ContentType::json()) // here we need to set bearer token
56+ . send_request ( & mut app)
57+ . await ;
58+ }
59+ }
0 commit comments