From aa705983160512d9c4500bb8301c5d398732cbc6 Mon Sep 17 00:00:00 2001 From: demenik Date: Thu, 11 Dec 2025 18:47:42 +0100 Subject: [PATCH] test: Fix achievement integration test setup and system visibility (#42) --- src/features/achievement/mod.rs | 2 +- tests/achievement.rs | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/features/achievement/mod.rs b/src/features/achievement/mod.rs index eaff214..df4d7a5 100644 --- a/src/features/achievement/mod.rs +++ b/src/features/achievement/mod.rs @@ -18,7 +18,7 @@ impl Plugin for AchievementPlugin { } } -fn check_achievements( +pub fn check_achievements( tracker: Res, mut progress: ResMut, mut notifications: ResMut, diff --git a/tests/achievement.rs b/tests/achievement.rs index 8f9001c..ee5aae6 100644 --- a/tests/achievement.rs +++ b/tests/achievement.rs @@ -1,5 +1,6 @@ use pomomon_garden::features::achievement::AchievementPlugin; use pomomon_garden::features::achievement::components::{AchievementId, AchievementProgress}; +use pomomon_garden::features::core::states::AppState; use pomomon_garden::features::notification::components::Notifications; use pomomon_garden::features::phase::components::SessionTracker; use pomomon_garden::prelude::*; @@ -9,8 +10,18 @@ use strum::IntoEnumIterator; fn test_achievement_unlock_logic() { let mut app = App::new(); app.add_plugins(MinimalPlugins); + app.add_plugins(bevy::state::app::StatesPlugin); app.add_plugins(AchievementPlugin); - app.insert_resource(Notifications::default()); // Needs to be present because check_achievements uses it + app.init_state::(); + + app.insert_resource(Notifications::default()); + app.insert_resource(SessionTracker::default()); + + { + let mut next_state = app.world_mut().resource_mut::>(); + next_state.set(AppState::GameScreen); + } + app.update(); // Helper to run systems and get progress let mut run_check = |completed_focus: u32, total_berries: u32, total_withered: u32| {