diff --git a/lib/game/bloc/game_bloc.dart b/lib/game/bloc/game_bloc.dart index bfe27db5..74685215 100644 --- a/lib/game/bloc/game_bloc.dart +++ b/lib/game/bloc/game_bloc.dart @@ -8,16 +8,12 @@ part 'game_event.dart'; part 'game_state.dart'; class GameBloc extends Bloc { - GameBloc({ - int bonusLettersLength = bonusWord.length, - }) : _bonusLettersLength = bonusLettersLength, - super(const GameState.initial()) { + GameBloc() : super(const GameState.initial()) { on(_onBallLost); on(_onScored); on(_onBonusLetterActivated); } - final int _bonusLettersLength; static const bonusWord = 'GOOGLE'; void _onBallLost(BallLost event, Emitter emit) { @@ -38,7 +34,7 @@ class GameBloc extends Bloc { event.letterIndex, ]; - if (newBonusLetters.length == _bonusLettersLength) { + if (newBonusLetters.length == bonusWord.length) { emit( state.copyWith( activatedBonusLetters: [], diff --git a/test/game/bloc/game_bloc_test.dart b/test/game/bloc/game_bloc_test.dart index ebef6293..f97140df 100644 --- a/test/game/bloc/game_bloc_test.dart +++ b/test/game/bloc/game_bloc_test.dart @@ -131,12 +131,15 @@ void main() { ); blocTest( - 'adds the bonus when the sequence is completed', - build: () => GameBloc(bonusLettersLength: 3), + 'adds the bonus when the word is completed', + build: GameBloc.new, act: (bloc) => bloc ..add(const BonusLetterActivated(0)) ..add(const BonusLetterActivated(1)) - ..add(const BonusLetterActivated(2)), + ..add(const BonusLetterActivated(2)) + ..add(const BonusLetterActivated(3)) + ..add(const BonusLetterActivated(4)) + ..add(const BonusLetterActivated(5)), expect: () => const [ GameState( score: 0, @@ -150,6 +153,24 @@ void main() { activatedBonusLetters: [0, 1], bonusHistory: [], ), + GameState( + score: 0, + balls: 3, + activatedBonusLetters: [0, 1, 2], + bonusHistory: [], + ), + GameState( + score: 0, + balls: 3, + activatedBonusLetters: [0, 1, 2, 3], + bonusHistory: [], + ), + GameState( + score: 0, + balls: 3, + activatedBonusLetters: [0, 1, 2, 3, 4], + bonusHistory: [], + ), GameState( score: 0, balls: 3,