refactor: used `descendants` to retrieve tested subject (#94)

* refactor: used descendants to retrieve the subject

* fix: included game.ready in tests
pull/104/head
Alejandro Santiago 3 years ago committed by GitHub
parent 2d647f9630
commit ce8917e17d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -196,15 +196,6 @@ void main() {
final gameBloc = MockGameBloc(); final gameBloc = MockGameBloc();
final tester = flameBlocTester(gameBloc: () => gameBloc); final tester = flameBlocTester(gameBloc: () => gameBloc);
BonusLetter _getBonusLetter(PinballGame game) {
return game.children
.whereType<BonusWord>()
.first
.children
.whereType<BonusLetter>()
.first;
}
setUp(() { setUp(() {
whenListen( whenListen(
gameBloc, gameBloc,
@ -217,11 +208,11 @@ void main() {
'adds BonusLetterActivated to GameBloc when not activated', 'adds BonusLetterActivated to GameBloc when not activated',
(game, tester) async { (game, tester) async {
await game.ready(); await game.ready();
final bonusLetter = game.descendants().whereType<BonusLetter>().first;
_getBonusLetter(game).activate(); bonusLetter.activate();
await game.ready();
await tester.pump(); await tester.pump();
verify(() => gameBloc.add(const BonusLetterActivated(0))).called(1); verify(() => gameBloc.add(const BonusLetterActivated(0))).called(1);
}, },
); );
@ -241,10 +232,11 @@ void main() {
Stream.value(state), Stream.value(state),
initialState: state, initialState: state,
); );
await game.ready();
_getBonusLetter(game).activate(); await game.ready();
await game.ready(); // Making sure that all additions are done final bonusLetter = game.descendants().whereType<BonusLetter>().first;
bonusLetter.activate();
await game.ready();
verifyNever(() => gameBloc.add(const BonusLetterActivated(0))); verifyNever(() => gameBloc.add(const BonusLetterActivated(0)));
}, },
@ -253,8 +245,6 @@ void main() {
tester.widgetTest( tester.widgetTest(
'adds a ColorEffect', 'adds a ColorEffect',
(game, tester) async { (game, tester) async {
await game.ready();
const state = GameState( const state = GameState(
score: 0, score: 0,
balls: 2, balls: 2,
@ -263,7 +253,9 @@ void main() {
bonusHistory: [], bonusHistory: [],
); );
final bonusLetter = _getBonusLetter(game); await game.ready();
final bonusLetter = game.descendants().whereType<BonusLetter>().first;
bonusLetter.activate();
bonusLetter.onNewState(state); bonusLetter.onNewState(state);
await tester.pump(); await tester.pump();
@ -278,8 +270,6 @@ void main() {
tester.widgetTest( tester.widgetTest(
'only listens when there is a change on the letter status', 'only listens when there is a change on the letter status',
(game, tester) async { (game, tester) async {
await game.ready();
const state = GameState( const state = GameState(
score: 0, score: 0,
balls: 2, balls: 2,
@ -288,7 +278,9 @@ void main() {
bonusHistory: [], bonusHistory: [],
); );
final bonusLetter = _getBonusLetter(game); await game.ready();
final bonusLetter = game.descendants().whereType<BonusLetter>().first;
bonusLetter.activate();
expect( expect(
bonusLetter.listenWhen(const GameState.initial(), state), bonusLetter.listenWhen(const GameState.initial(), state),

Loading…
Cancel
Save