From 983104a1734da79fee3db153152172b47980f318 Mon Sep 17 00:00:00 2001 From: irrlicht Date: Sat, 13 Jun 2026 21:05:07 +0200 Subject: [PATCH] Initial Mode set to Menu --- src/session.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/session.rs b/src/session.rs index fb14bc1..515421f 100644 --- a/src/session.rs +++ b/src/session.rs @@ -60,7 +60,7 @@ impl ExecResult { impl Session { pub fn new(signals_path: String) -> Self { let game = Game::new(signals::load_signals(&signals_path)); - Self { game, mode: Mode::Free, signals_path } + Self { game, mode: Mode::Menu, signals_path } } /// Reserviertes `[init]`-Signal feuern (KV-Defaults, bevor etwas läuft). @@ -212,9 +212,15 @@ mod tests { use super::*; // Fehlender Pfad → leere Signal-Table (load_signals schluckt den Fehler), - // also keine Asset-Abhängigkeit für diese Tests. + // also keine Asset-Abhängigkeit für diese Tests. Der Konstruktor startet + // im Menü (Titelbildschirm); Tests des Befehlspfads setzen vorab `Free`. fn empty_session() -> Session { Session::new("/nonexistent/signals.toml".into()) } + #[test] + fn starts_in_menu() { + assert!(matches!(empty_session().mode, Mode::Menu)); + } + #[test] fn quit_sets_flag() { let mut s = empty_session(); @@ -224,6 +230,7 @@ mod tests { #[test] fn builtin_command_mutates_kv_and_stays_free() { let mut s = empty_session(); + s.mode = Mode::Free; // Unbekanntes Signal fällt auf den Builtin-Pfad durch → `set`. let r = s.exec("signal set has_key true"); assert!(!r.quit); @@ -234,7 +241,7 @@ mod tests { #[test] fn menu_command_toggles_free_and_menu() { let mut s = empty_session(); - assert!(matches!(s.mode, Mode::Free)); + s.mode = Mode::Free; s.exec("menu"); assert!(matches!(s.mode, Mode::Menu)); s.exec("menu"); @@ -248,6 +255,7 @@ mod tests { #[test] fn unknown_command_reports_and_stays_free() { let mut s = empty_session(); + s.mode = Mode::Free; let r = s.exec("frobnicate"); assert_eq!(r.output.len(), 1); assert!(matches!(s.mode, Mode::Free));