use actix_web::{web, Error, HttpResponse}; use crate::common::{Part, Product}; pub async fn get_products( query: web::Query>, ) -> Result { Ok(HttpResponse::Ok().finish()) } pub async fn add_product( new_product: web::Json, ) -> Result { Ok(HttpResponse::Ok().finish()) } pub async fn get_product_detail(id: web::Path) -> Result { Ok(HttpResponse::Ok().finish()) } pub async fn remove_product(id: web::Path) -> Result { Ok(HttpResponse::Ok().finish()) } #[cfg(test)] mod tests { use crate::appconfig::config_app; use actix_service::Service; use actix_web::{ http::{header, StatusCode}, test, App, }; #[actix_rt::test] async fn test_add_product() { let mut app = test::init_service(App::new().configure(config_app)).await; let payload = r#"{"id":12345,"product_type":"fancy","name":"test"}"#.as_bytes(); let req = test::TestRequest::post() .uri("/products") .header(header::CONTENT_TYPE, "application/json") .set_payload(payload) .to_request(); let resp = app.call(req).await.unwrap(); assert_eq!(resp.status(), StatusCode::OK); } }