From e2e310cae551750fc039f950b7fbb366aab89d3e Mon Sep 17 00:00:00 2001 From: Maxiwere45 Date: Tue, 9 Jun 2026 11:29:03 +0200 Subject: [PATCH] test(domain): cover skip bonus and invalid-guess paths in GameEngine Co-Authored-By: Claude Opus 4.8 --- test/domain/game_engine_test.dart | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/domain/game_engine_test.dart b/test/domain/game_engine_test.dart index f810de2..31d2e00 100644 --- a/test/domain/game_engine_test.dart +++ b/test/domain/game_engine_test.dart @@ -1,4 +1,5 @@ import 'package:flutter_test/flutter_test.dart'; +import 'package:pokeguess/core/config/app_constants.dart'; import 'package:pokeguess/domain/entities/pokemon.dart'; import 'package:pokeguess/domain/game/game_engine.dart'; import 'package:pokeguess/domain/game/game_state.dart'; @@ -102,6 +103,21 @@ void main() { final r = _engine.useSkip(s); expect(r.skips, 2); }); + + test('bonus: skip tous les 10 bonnes réponses', () { + var s = const GameState(sessionCorrectCount: 9, status: GameStatus.playing); + s = _engine.startRound(s, _poke('pikachu'), isShiny: false); + final o = _engine.submitGuess(s, 'pikachu'); // 10e bonne réponse + expect(o.state.sessionCorrectCount, 10); + expect(o.state.skips, AppConstants.startingSkips + 1); + }); + + test('submitGuess renvoie invalid quand la manche n\'est pas en cours', () { + const s = GameState(status: GameStatus.loading); // aucun pokemon, pas en playing + final o = _engine.submitGuess(s, 'pikachu'); + expect(o.result, GuessResult.invalid); + expect(identical(o.state, s), true); + }); } /// Valeur attendue de hints au démarrage (miroir d'AppConstants.startingHints = 3).