From 13dd936044ea8e3060de3320decc928eae6489f1 Mon Sep 17 00:00:00 2001 From: 2ndbeam <2ndbeam@disroot.org> Date: Sat, 7 Mar 2026 19:47:21 +0300 Subject: [PATCH] tests: Added more tests - Added 2 more tests related to item moving - Refactored inventory tests internals --- src/tests.rs | 75 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 29 deletions(-) diff --git a/src/tests.rs b/src/tests.rs index 5760339..19c7b0a 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -113,10 +113,10 @@ mod inventory { } #[derive(Resource)] - struct Items(Vec, usize); + struct Items(Vec, usize, bool); #[derive(Component)] - struct MovableItem(UVec2); + struct MovableItem(UVec2, bool); fn insert_item( mut commands: Commands, @@ -129,27 +129,11 @@ mod inventory { let q_pos = item.position.unwrap(); let (entity, inventory, children) = inventory_query.single().unwrap(); if let Some(children) = children { - println!("{q_size} {q_pos}"); - assert!(inventory.can_fit(item_query, children, q_size, q_pos)); - } - let item_entity = commands.spawn(item.clone()).id(); - commands.entity(entity).add_child(item_entity); - items.1 += 1; - } - - fn failed_insert_item( - mut commands: Commands, - mut items: ResMut, - item_query: Query<&Item>, - inventory_query: Query<(Entity, &Inventory, Option<&Children>)> - ) { - let item = &items.0[items.1]; - let q_size = item.size; - let q_pos = item.position.unwrap(); - let (entity, inventory, children) = inventory_query.single().unwrap(); - if let Some(children) = children { - println!("{q_size} {q_pos}"); - assert!(!inventory.can_fit(item_query, children, q_size, q_pos)); + if items.2 { + assert!(inventory.can_fit(item_query, children, q_size, q_pos)); + } else { + assert!(!inventory.can_fit(item_query, children, q_size, q_pos)); + } } let item_entity = commands.spawn(item.clone()).id(); commands.entity(entity).add_child(item_entity); @@ -162,8 +146,12 @@ mod inventory { movable_item: Query<(Entity, &MovableItem)>, ) { let (inventory, children) = inventory_query.single().unwrap(); - let (movable_item, MovableItem(query_pos)) = movable_item.single().unwrap(); - assert!(inventory.can_move(item_query, children, movable_item, *query_pos)); + let (movable_item, MovableItem(query_pos, assertion)) = movable_item.single().unwrap(); + if *assertion { + assert!(inventory.can_move(item_query, children, movable_item, *query_pos)); + } else { + assert!(!inventory.can_move(item_query, children, movable_item, *query_pos)); + } } #[test] @@ -172,7 +160,7 @@ mod inventory { let system = world.register_system(insert_item); - world.insert_resource(Items(vec![item_a(), item_b(), item_c(), item_d()], 0)); + world.insert_resource(Items(vec![item_a(), item_b(), item_c(), item_d()], 0, true)); world.spawn(inventory()); @@ -185,9 +173,9 @@ mod inventory { fn items_e_f_g_do_not_fit() { let mut world = World::new(); - let system = world.register_system(failed_insert_item); + let system = world.register_system(insert_item); - world.insert_resource(Items(vec![item_e(), item_f(), item_g()], 0)); + world.insert_resource(Items(vec![item_e(), item_f(), item_g()], 0, false)); world.spawn(inventory()) .with_child(item_a()) @@ -207,10 +195,39 @@ mod inventory { let system = world.register_system(try_to_move); world.spawn(inventory()) - .with_child((item_a(), MovableItem(UVec2::new(3, 2)))) + .with_child((item_a(), MovableItem(UVec2::new(3, 2), true))) .with_child(item_b()) .with_child(item_c()); world.run_system(system).expect("Error on running system"); } + + #[test] + fn cannot_move_item() { + let mut world = World::new(); + + let system = world.register_system(try_to_move); + + world.spawn(inventory()) + .with_child((item_a(), MovableItem(UVec2::new(3, 2), false))) + .with_child(item_b()) + .with_child(item_c()) + .with_child(item_d()); + + world.run_system(system).expect("Error on running system"); + } + + #[test] + fn move_item_slightly() { + let mut world = World::new(); + + let system = world.register_system(try_to_move); + + world.spawn(inventory()) + .with_child((item_a(), MovableItem(UVec2::new(0, 1), true))) + .with_child(item_c()) + .with_child(item_d()); + + world.run_system(system).expect("Error on running system"); + } }