From fd3cf2d65729b92520db9fa9bcbb947e4b60ffe2 Mon Sep 17 00:00:00 2001 From: RuiAlonso Date: Tue, 22 Mar 2022 10:23:43 +0100 Subject: [PATCH] refactor: leaderboard state initial method --- lib/leaderboard/bloc/leaderboard_bloc.dart | 2 +- lib/leaderboard/bloc/leaderboard_state.dart | 17 +++++++++++------ .../leaderboard/bloc/leaderboard_bloc_test.dart | 14 +++++++------- .../bloc/leaderboard_state_test.dart | 10 +++++----- 4 files changed, 24 insertions(+), 19 deletions(-) diff --git a/lib/leaderboard/bloc/leaderboard_bloc.dart b/lib/leaderboard/bloc/leaderboard_bloc.dart index 1f5e969e..6542548d 100644 --- a/lib/leaderboard/bloc/leaderboard_bloc.dart +++ b/lib/leaderboard/bloc/leaderboard_bloc.dart @@ -15,7 +15,7 @@ part 'leaderboard_state.dart'; class LeaderboardBloc extends Bloc { /// {@macro leaderboard_bloc} LeaderboardBloc(this._leaderboardRepository) - : super(const LeaderboardState()) { + : super(const LeaderboardState.initial()) { on(_onTop10Fetched); on(_onLeaderboardEntryAdded); } diff --git a/lib/leaderboard/bloc/leaderboard_state.dart b/lib/leaderboard/bloc/leaderboard_state.dart index 01430d2a..20d68f0d 100644 --- a/lib/leaderboard/bloc/leaderboard_state.dart +++ b/lib/leaderboard/bloc/leaderboard_state.dart @@ -20,14 +20,19 @@ enum LeaderboardStatus { class LeaderboardState extends Equatable { /// {@macro leaderboard_state} const LeaderboardState({ - this.status = LeaderboardStatus.loading, - this.ranking = const LeaderboardRanking( - ranking: 0, - outOf: 0, - ), - this.leaderboard = const [], + required this.status, + required this.ranking, + required this.leaderboard, }); + const LeaderboardState.initial() + : status = LeaderboardStatus.loading, + ranking = const LeaderboardRanking( + ranking: 0, + outOf: 0, + ), + leaderboard = const []; + /// The current [LeaderboardStatus] of the state. final LeaderboardStatus status; diff --git a/test/leaderboard/bloc/leaderboard_bloc_test.dart b/test/leaderboard/bloc/leaderboard_bloc_test.dart index f41a3308..c44f7d3a 100644 --- a/test/leaderboard/bloc/leaderboard_bloc_test.dart +++ b/test/leaderboard/bloc/leaderboard_bloc_test.dart @@ -26,7 +26,7 @@ void main() { }); group('Top10Fetched', () { - final top10Scores = [ + const top10Scores = [ 2500, 2200, 2200, @@ -61,7 +61,7 @@ void main() { build: () => LeaderboardBloc(leaderboardRepository), act: (bloc) => bloc.add(Top10Fetched()), expect: () => [ - const LeaderboardState(), + LeaderboardState.initial(), isA() ..having( (element) => element.status, @@ -90,8 +90,8 @@ void main() { build: () => LeaderboardBloc(leaderboardRepository), act: (bloc) => bloc.add(Top10Fetched()), expect: () => [ - const LeaderboardState(), - const LeaderboardState(status: LeaderboardStatus.error), + LeaderboardState.initial(), + LeaderboardState.initial().copyWith(status: LeaderboardStatus.error), ], verify: (_) => verify(() => leaderboardRepository.fetchTop10Leaderboard()) @@ -122,7 +122,7 @@ void main() { build: () => LeaderboardBloc(leaderboardRepository), act: (bloc) => bloc.add(LeaderboardEntryAdded(entry: leaderboardEntry)), expect: () => [ - const LeaderboardState(), + LeaderboardState.initial(), isA() ..having( (element) => element.status, @@ -153,8 +153,8 @@ void main() { build: () => LeaderboardBloc(leaderboardRepository), act: (bloc) => bloc.add(LeaderboardEntryAdded(entry: leaderboardEntry)), expect: () => [ - const LeaderboardState(), - const LeaderboardState(status: LeaderboardStatus.error), + LeaderboardState.initial(), + LeaderboardState.initial().copyWith(status: LeaderboardStatus.error), ], verify: (_) => verify( () => leaderboardRepository.addLeaderboardEntry(leaderboardEntry), diff --git a/test/leaderboard/bloc/leaderboard_state_test.dart b/test/leaderboard/bloc/leaderboard_state_test.dart index dd7427ac..6ff5df13 100644 --- a/test/leaderboard/bloc/leaderboard_state_test.dart +++ b/test/leaderboard/bloc/leaderboard_state_test.dart @@ -8,9 +8,9 @@ void main() { group('LeaderboardState', () { test('supports value equality', () { expect( - LeaderboardState(), + LeaderboardState.initial(), equals( - LeaderboardState(), + LeaderboardState.initial(), ), ); }); @@ -18,7 +18,7 @@ void main() { group('constructor', () { test('can be instantiated', () { expect( - LeaderboardState(), + LeaderboardState.initial(), isNotNull, ); }); @@ -35,7 +35,7 @@ void main() { 'copies correctly ' 'when no argument specified', () { - const leaderboardState = LeaderboardState(); + const leaderboardState = LeaderboardState.initial(); expect( leaderboardState.copyWith(), equals(leaderboardState), @@ -47,7 +47,7 @@ void main() { 'copies correctly ' 'when all arguments specified', () { - const leaderboardState = LeaderboardState(); + const leaderboardState = LeaderboardState.initial(); final otherLeaderboardState = LeaderboardState( status: LeaderboardStatus.success, ranking: LeaderboardRanking(ranking: 0, outOf: 0),