feat: pr suggestions

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

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

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

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

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

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

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

Loading…
Cancel
Save