diff options
| author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-11-28 16:30:02 +0100 |
|---|---|---|
| committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-11-28 16:30:02 +0100 |
| commit | a62ab5c6dacaddb67931d7ac160bc7faaa707737 (patch) | |
| tree | a35fa3540fbb89f575ab1ea72f9b23ace399e01c /crates/rocie-server/tests/product_parents/register.rs | |
| parent | chore(crates/rocie-client): Re-generate (diff) | |
| download | server-a62ab5c6dacaddb67931d7ac160bc7faaa707737.zip | |
feat(crates/rocie-server): Get closer to feature parity between rocie and grocy
Diffstat (limited to 'crates/rocie-server/tests/product_parents/register.rs')
| -rw-r--r-- | crates/rocie-server/tests/product_parents/register.rs | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/crates/rocie-server/tests/product_parents/register.rs b/crates/rocie-server/tests/product_parents/register.rs new file mode 100644 index 0000000..c84ffea --- /dev/null +++ b/crates/rocie-server/tests/product_parents/register.rs @@ -0,0 +1,84 @@ +use rocie_client::{ + apis::{ + api_get_product_api::product_by_id, api_set_product_api::register_product, + api_set_product_parent_api::register_product_parent, + api_set_unit_property_api::register_unit_property, + }, + models::{ProductParentStub, ProductStub, UnitPropertyStub}, +}; + +use crate::{ + _testenv::init::function_name, + testenv::{TestEnv, log::request}, +}; + +#[tokio::test] +async fn test_product_parent_register_roundtrip() { + let env = TestEnv::new(function_name!()); + + let parent_dairy = request!( + env, + register_product_parent(ProductParentStub { + description: Some("Dairy replacment products".to_owned()), + name: "Dairy replacements".to_owned(), + parent: None, + }) + ); + let parent_dairy_milk = request!( + env, + register_product_parent(ProductParentStub { + description: Some("Milk replacment products".to_owned()), + name: "Milk replacements".to_owned(), + parent: Some(parent_dairy), + }) + ); + + let unit_property = request!( + env, + register_unit_property(UnitPropertyStub { + description: Some("The total volume of a product".to_owned()), + name: "Volume".to_owned() + }) + ); + + let product_soy_milk = request!( + env, + register_product(ProductStub { + description: Some("A soy based alternative to milk".to_owned()), + name: "Soy drink".to_owned(), + parent: Some(parent_dairy_milk), + unit_property, + }) + ); + let product_oat_milk = request!( + env, + register_product(ProductStub { + description: Some("A oat based alternative to milk".to_owned()), + name: "Oat drink".to_owned(), + parent: Some(parent_dairy_milk), + unit_property, + }) + ); + + let product_vegan_cheese = request!( + env, + register_product(ProductStub { + description: None, + name: "Vegan cheese".to_owned(), + parent: Some(parent_dairy), + unit_property, + }) + ); + + for product in [product_soy_milk, product_oat_milk] { + let product = request!(env, product_by_id(product)); + + assert_eq!(product.parent, Some(parent_dairy_milk)); + } + + { + let product = request!(env, product_by_id(product_vegan_cheese)); + + assert_eq!(product.parent, Some(parent_dairy)); + } +} |
