// Copyright (C) 2025 Emilis Bliūdžius // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . #[allow(unused)] use pretty_assertions::{assert_eq, assert_ne, assert_str_eq}; use crate::{ game::{Game, GameSettings, SetupRole}, game_test::{ActionResultExt, GameExt, SettingsExt, gen_players}, message::night::ActionPromptTitle, }; #[test] fn no_dead_doesnt_prompt() { let players = gen_players(1..10); let mortician_player_id = players[0].player_id; let wolf_player_id = players[1].player_id; let mut settings = GameSettings::empty(); settings.add_and_assign(SetupRole::Mortician, mortician_player_id); settings.add_and_assign(SetupRole::Werewolf, wolf_player_id); settings.fill_remaining_slots_with_villagers(9); let mut game = Game::new(&players, settings).unwrap(); game.r#continue().r#continue(); assert_eq!(game.next().title(), ActionPromptTitle::WolvesIntro); game.r#continue().sleep(); game.next_expect_day(); assert_eq!(game.execute().title(), ActionPromptTitle::WolfPackKill); game.mark(game.living_villager().character_id()); game.r#continue().sleep(); game.next_expect_day(); }