diff --git a/crates/stock_manager/src/actions/product.rs b/crates/stock_manager/src/actions/product.rs index 0a1e84d..07ad997 100644 --- a/crates/stock_manager/src/actions/product.rs +++ b/crates/stock_manager/src/actions/product.rs @@ -111,7 +111,7 @@ pub async fn update_product( ) -> update_product::Output { let mut t = begin_t!(db, Error::InternalServerError); - let res = inner_update_product(input, &mut t, Some(_config)).await; + let res = inner_update_product(input, &mut t).await; match res { Ok(res) => { @@ -138,7 +138,6 @@ pub async fn update_product( async fn inner_update_product( input: update_product::Input, t: &mut PgT<'_>, - _config: Option, ) -> update_product::Output { let dbm = crate::db::UpdateProduct { id: input.id, @@ -176,6 +175,31 @@ mod tests { impl UpdateConfig for NoOpts {} + async fn test_product_with_variant(t: &mut PgT<'_>) -> DetailedProduct { + inner_create_product( + create_product::Input { + product: create_product::ProductInput { + name: ProductName::new(format!("{}", uuid::Uuid::new_v4())), + variant_name: Some(ProductVariantName::new("variant")), + short_description: ProductShortDesc::new("desc"), + long_description: ProductLongDesc::new("long description"), + category: None, + price: Default::default(), + deliver_days_flag: Days(vec![]), + }, + stock: create_product::StockInput { + quantity: Default::default(), + quantity_unit: QuantityUnit::Gram, + }, + }, + t, + None, + ) + .await + .unwrap() + .product + } + #[tokio::test] async fn create_product() { testx::db_t_ref!(t); @@ -205,4 +229,29 @@ mod tests { res.unwrap(); } + + #[tokio::test] + async fn update_product() { + testx::db_t_ref!(t); + + let product = test_product_with_variant(&mut t).await; + + let new_name = ProductName::new(format!("{}", uuid::Uuid::new_v4())); + let res = inner_update_product( + update_product::Input { + id: product.id, + name: new_name.clone(), + category: None, + deliver_days_flag: Days(vec![]), + }, + &mut t, + ) + .await; + + testx::db_rollback!(t); + + let new_product = res.unwrap().product; + assert_eq!(new_product.id, product.id); + assert_eq!(new_product.name, new_name); + } }