feat: pr suggestions

pull/23/head
Erick Zanardo 3 years ago
parent de25974f8c
commit e4cd4342c0

@ -27,8 +27,8 @@ class GameBloc extends Bloc<GameEvent, GameState> {
void _onBonusLetterActivated(BonusLetterActivated event, Emitter emit) { void _onBonusLetterActivated(BonusLetterActivated event, Emitter emit) {
emit( emit(
state.copyWith( state.copyWith(
bonusLetter: [ bonusLetters: [
...state.bonusLetter, ...state.bonusLetters,
event.letter, event.letter,
], ],
), ),

@ -8,14 +8,14 @@ class GameState extends Equatable {
const GameState({ const GameState({
required this.score, required this.score,
required this.balls, required this.balls,
required this.bonusLetter, required this.bonusLetters,
}) : assert(score >= 0, "Score can't be negative"), }) : assert(score >= 0, "Score can't be negative"),
assert(balls >= 0, "Number of balls can't be negative"); assert(balls >= 0, "Number of balls can't be negative");
const GameState.initial() const GameState.initial()
: score = 0, : score = 0,
balls = 3, balls = 3,
bonusLetter = const []; bonusLetters = const [];
/// The current score of the game. /// The current score of the game.
final int score; final int score;
@ -26,7 +26,7 @@ class GameState extends Equatable {
final int balls; final int balls;
/// Active bonus letters. /// Active bonus letters.
final List<String> bonusLetter; final List<String> bonusLetters;
/// Determines when the game is over. /// Determines when the game is over.
bool get isGameOver => balls == 0; bool get isGameOver => balls == 0;
@ -37,7 +37,7 @@ class GameState extends Equatable {
GameState copyWith({ GameState copyWith({
int? score, int? score,
int? balls, int? balls,
List<String>? bonusLetter, List<String>? bonusLetters,
}) { }) {
assert( assert(
score == null || score >= this.score, score == null || score >= this.score,
@ -47,7 +47,7 @@ class GameState extends Equatable {
return GameState( return GameState(
score: score ?? this.score, score: score ?? this.score,
balls: balls ?? this.balls, balls: balls ?? this.balls,
bonusLetter: bonusLetter ?? this.bonusLetter, bonusLetters: bonusLetters ?? this.bonusLetters,
); );
} }
@ -55,6 +55,6 @@ class GameState extends Equatable {
List<Object?> get props => [ List<Object?> get props => [
score, score,
balls, balls,
bonusLetter, bonusLetters,
]; ];
} }

@ -21,9 +21,9 @@ void main() {
} }
}, },
expect: () => [ expect: () => [
const GameState(score: 0, balls: 2, bonusLetter: []), const GameState(score: 0, balls: 2, bonusLetters: []),
const GameState(score: 0, balls: 1, bonusLetter: []), const GameState(score: 0, balls: 1, bonusLetters: []),
const GameState(score: 0, balls: 0, bonusLetter: []), const GameState(score: 0, balls: 0, bonusLetters: []),
], ],
); );
}); });
@ -37,8 +37,8 @@ void main() {
..add(const Scored(points: 2)) ..add(const Scored(points: 2))
..add(const Scored(points: 3)), ..add(const Scored(points: 3)),
expect: () => [ expect: () => [
const GameState(score: 2, balls: 3, bonusLetter: []), const GameState(score: 2, balls: 3, bonusLetters: []),
const GameState(score: 5, balls: 3, bonusLetter: []), const GameState(score: 5, balls: 3, bonusLetters: []),
], ],
); );
@ -53,9 +53,9 @@ void main() {
bloc.add(const Scored(points: 2)); bloc.add(const Scored(points: 2));
}, },
expect: () => [ expect: () => [
const GameState(score: 0, balls: 2, bonusLetter: []), const GameState(score: 0, balls: 2, bonusLetters: []),
const GameState(score: 0, balls: 1, bonusLetter: []), const GameState(score: 0, balls: 1, bonusLetters: []),
const GameState(score: 0, balls: 0, bonusLetter: []), const GameState(score: 0, balls: 0, bonusLetters: []),
], ],
); );
}); });
@ -75,32 +75,32 @@ void main() {
const GameState( const GameState(
score: 0, score: 0,
balls: 3, balls: 3,
bonusLetter: ['G'], bonusLetters: ['G'],
), ),
const GameState( const GameState(
score: 0, score: 0,
balls: 3, balls: 3,
bonusLetter: ['G', 'O'], bonusLetters: ['G', 'O'],
), ),
const GameState( const GameState(
score: 0, score: 0,
balls: 3, balls: 3,
bonusLetter: ['G', 'O', 'O'], bonusLetters: ['G', 'O', 'O'],
), ),
const GameState( const GameState(
score: 0, score: 0,
balls: 3, balls: 3,
bonusLetter: ['G', 'O', 'O', 'G'], bonusLetters: ['G', 'O', 'O', 'G'],
), ),
const GameState( const GameState(
score: 0, score: 0,
balls: 3, balls: 3,
bonusLetter: ['G', 'O', 'O', 'G', 'L'], bonusLetters: ['G', 'O', 'O', 'G', 'L'],
), ),
const GameState( const GameState(
score: 0, score: 0,
balls: 3, balls: 3,
bonusLetter: ['G', 'O', 'O', 'G', 'L', 'E'], bonusLetters: ['G', 'O', 'O', 'G', 'L', 'E'],
), ),
], ],
); );

@ -10,13 +10,13 @@ void main() {
GameState( GameState(
score: 0, score: 0,
balls: 0, balls: 0,
bonusLetter: const [], bonusLetters: const [],
), ),
equals( equals(
const GameState( const GameState(
score: 0, score: 0,
balls: 0, balls: 0,
bonusLetter: [], bonusLetters: [],
), ),
), ),
); );
@ -24,7 +24,10 @@ void main() {
group('constructor', () { group('constructor', () {
test('can be instantiated', () { test('can be instantiated', () {
expect(const GameState(score: 0, balls: 0, bonusLetter: []), isNotNull); expect(
const GameState(score: 0, balls: 0, bonusLetters: []),
isNotNull,
);
}); });
}); });
@ -33,7 +36,7 @@ void main() {
'when balls are negative', 'when balls are negative',
() { () {
expect( expect(
() => GameState(balls: -1, score: 0, bonusLetter: const []), () => GameState(balls: -1, score: 0, bonusLetters: const []),
throwsAssertionError, throwsAssertionError,
); );
}, },
@ -44,7 +47,7 @@ void main() {
'when score is negative', 'when score is negative',
() { () {
expect( expect(
() => GameState(balls: 0, score: -1, bonusLetter: const []), () => GameState(balls: 0, score: -1, bonusLetters: const []),
throwsAssertionError, throwsAssertionError,
); );
}, },
@ -57,7 +60,7 @@ void main() {
const gameState = GameState( const gameState = GameState(
balls: 0, balls: 0,
score: 0, score: 0,
bonusLetter: [], bonusLetters: [],
); );
expect(gameState.isGameOver, isTrue); expect(gameState.isGameOver, isTrue);
}); });
@ -68,7 +71,7 @@ void main() {
const gameState = GameState( const gameState = GameState(
balls: 1, balls: 1,
score: 0, score: 0,
bonusLetter: [], bonusLetters: [],
); );
expect(gameState.isGameOver, isFalse); expect(gameState.isGameOver, isFalse);
}); });
@ -82,7 +85,7 @@ void main() {
const gameState = GameState( const gameState = GameState(
balls: 1, balls: 1,
score: 0, score: 0,
bonusLetter: [], bonusLetters: [],
); );
expect(gameState.isLastBall, isTrue); expect(gameState.isLastBall, isTrue);
}, },
@ -95,7 +98,7 @@ void main() {
const gameState = GameState( const gameState = GameState(
balls: 2, balls: 2,
score: 0, score: 0,
bonusLetter: [], bonusLetters: [],
); );
expect(gameState.isLastBall, isFalse); expect(gameState.isLastBall, isFalse);
}, },
@ -110,7 +113,7 @@ void main() {
const gameState = GameState( const gameState = GameState(
balls: 0, balls: 0,
score: 2, score: 2,
bonusLetter: [], bonusLetters: [],
); );
expect( expect(
() => gameState.copyWith(score: gameState.score - 1), () => gameState.copyWith(score: gameState.score - 1),
@ -126,7 +129,7 @@ void main() {
const gameState = GameState( const gameState = GameState(
balls: 0, balls: 0,
score: 2, score: 2,
bonusLetter: [], bonusLetters: [],
); );
expect( expect(
gameState.copyWith(), gameState.copyWith(),
@ -142,12 +145,12 @@ void main() {
const gameState = GameState( const gameState = GameState(
score: 2, score: 2,
balls: 0, balls: 0,
bonusLetter: [], bonusLetters: [],
); );
final otherGameState = GameState( final otherGameState = GameState(
score: gameState.score + 1, score: gameState.score + 1,
balls: gameState.balls + 1, balls: gameState.balls + 1,
bonusLetter: const ['A'], bonusLetters: const ['A'],
); );
expect(gameState, isNot(equals(otherGameState))); expect(gameState, isNot(equals(otherGameState)));
@ -155,7 +158,7 @@ void main() {
gameState.copyWith( gameState.copyWith(
score: otherGameState.score, score: otherGameState.score,
balls: otherGameState.balls, balls: otherGameState.balls,
bonusLetter: otherGameState.bonusLetter, bonusLetters: otherGameState.bonusLetters,
), ),
equals(otherGameState), equals(otherGameState),
); );

@ -135,7 +135,11 @@ void main() {
whenListen( whenListen(
gameBloc, gameBloc,
const Stream<GameState>.empty(), const Stream<GameState>.empty(),
initialState: const GameState(score: 10, balls: 1, bonusLetter: []), initialState: const GameState(
score: 10,
balls: 1,
bonusLetters: [],
),
); );
await game.ready(); await game.ready();

@ -67,7 +67,7 @@ void main() {
'renders a game over dialog when the user has lost', 'renders a game over dialog when the user has lost',
(tester) async { (tester) async {
final gameBloc = MockGameBloc(); final gameBloc = MockGameBloc();
const state = GameState(score: 0, balls: 0, bonusLetter: []); const state = GameState(score: 0, balls: 0, bonusLetters: []);
whenListen( whenListen(
gameBloc, gameBloc,
Stream.value(state), Stream.value(state),

Loading…
Cancel
Save