// rocie - An enterprise grocery management system // // Copyright (C) 2026 Benedikt Peetz // SPDX-License-Identifier: GPL-3.0-or-later // // This file is part of Rocie. // // You should have received a copy of the License along with this program. // If not, see . use rocie_client::{ apis::{ api_get_auth_product_api::product_by_id, api_set_auth_product_api::register_product, api_set_auth_product_parent_api::register_product_parent, api_set_auth_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!()).await; 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)); } }