From a96117ae817a6adf815d1a226cd2b9bdfa1d8a7a Mon Sep 17 00:00:00 2001 From: RuiAlonso Date: Wed, 16 Mar 2022 17:06:05 +0100 Subject: [PATCH] chore: leaderboard misspelling, doc and minor fixes --- lib/game/view/pinball_game_page.dart | 2 +- lib/game/view/widgets/game_over_dialog.dart | 9 +- lib/leaderboard/leader_board.dart | 1 - lib/leaderboard/leaderboard.dart | 1 + ..._board_page.dart => leaderboard_page.dart} | 90 +++++++++++-------- .../view/widgets/game_over_dialog_test.dart | 8 +- .../view/leader_board_page_test.dart | 36 +++----- 7 files changed, 74 insertions(+), 73 deletions(-) delete mode 100644 lib/leaderboard/leader_board.dart create mode 100644 lib/leaderboard/leaderboard.dart rename lib/leaderboard/view/{leader_board_page.dart => leaderboard_page.dart} (64%) diff --git a/lib/game/view/pinball_game_page.dart b/lib/game/view/pinball_game_page.dart index 136aaf63..579d830b 100644 --- a/lib/game/view/pinball_game_page.dart +++ b/lib/game/view/pinball_game_page.dart @@ -70,7 +70,7 @@ class _PinballGameViewState extends State { showDialog( context: context, builder: (_) { - return GameOverDialog(theme: widget.theme); + return GameOverDialog(theme: widget.theme.characterTheme); }, ); } diff --git a/lib/game/view/widgets/game_over_dialog.dart b/lib/game/view/widgets/game_over_dialog.dart index 06135fbb..d32af493 100644 --- a/lib/game/view/widgets/game_over_dialog.dart +++ b/lib/game/view/widgets/game_over_dialog.dart @@ -1,9 +1,7 @@ -// ignore_for_file: public_member_api_docs - import 'package:flutter/material.dart'; import 'package:pinball/game/game.dart'; import 'package:pinball/l10n/l10n.dart'; -import 'package:pinball/leaderboard/leader_board.dart'; +import 'package:pinball/leaderboard/leaderboard.dart'; import 'package:pinball_theme/pinball_theme.dart'; /// {@template game_over_dialog} @@ -13,7 +11,8 @@ class GameOverDialog extends StatelessWidget { /// {@macro game_over_dialog} const GameOverDialog({Key? key, required this.theme}) : super(key: key); - final PinballTheme theme; + /// Current [CharacterTheme] to customize dialog + final CharacterTheme theme; @override Widget build(BuildContext context) { @@ -30,7 +29,7 @@ class GameOverDialog extends StatelessWidget { Text(l10n.gameOver), TextButton( onPressed: () => Navigator.of(context).push( - LeaderBoardPage.route(theme: theme), + LeaderboardPage.route(theme: theme), ), child: Text(l10n.leadersBoard), ), diff --git a/lib/leaderboard/leader_board.dart b/lib/leaderboard/leader_board.dart deleted file mode 100644 index aad1d059..00000000 --- a/lib/leaderboard/leader_board.dart +++ /dev/null @@ -1 +0,0 @@ -export 'view/leader_board_page.dart'; diff --git a/lib/leaderboard/leaderboard.dart b/lib/leaderboard/leaderboard.dart new file mode 100644 index 00000000..e6324a22 --- /dev/null +++ b/lib/leaderboard/leaderboard.dart @@ -0,0 +1 @@ +export 'view/leaderboard_page.dart'; diff --git a/lib/leaderboard/view/leader_board_page.dart b/lib/leaderboard/view/leaderboard_page.dart similarity index 64% rename from lib/leaderboard/view/leader_board_page.dart rename to lib/leaderboard/view/leaderboard_page.dart index 245d7425..be4b0815 100644 --- a/lib/leaderboard/view/leader_board_page.dart +++ b/lib/leaderboard/view/leaderboard_page.dart @@ -1,34 +1,37 @@ -// ignore_for_file: public_member_api_docs - import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:pinball/l10n/l10n.dart'; import 'package:pinball/theme/theme.dart'; import 'package:pinball_theme/pinball_theme.dart'; -class LeaderBoardPage extends StatelessWidget { - const LeaderBoardPage({Key? key, required this.theme}) : super(key: key); +/// {@template leaderboard_page} +/// Shows the leaderboard of [Competitor]s. +/// {@endtemplate} +class LeaderboardPage extends StatelessWidget { + /// {@macro leaderboard_page} + const LeaderboardPage({Key? key, required this.theme}) : super(key: key); - final PinballTheme theme; + /// Current [CharacterTheme] to customize screen + final CharacterTheme theme; - static Route route({required PinballTheme theme}) { + /// + static Route route({required CharacterTheme theme}) { return MaterialPageRoute( - builder: (_) => LeaderBoardPage(theme: theme), + builder: (_) => LeaderboardPage(theme: theme), ); } @override Widget build(BuildContext context) { return BlocProvider( - create: (context) => - ThemeCubit()..characterSelected(theme.characterTheme), - child: const LeaderBoardView(), + create: (context) => ThemeCubit()..characterSelected(theme), + child: const LeaderboardView(), ); } } -class LeaderBoardView extends StatelessWidget { - const LeaderBoardView({Key? key}) : super(key: key); +class LeaderboardView extends StatelessWidget { + const LeaderboardView({Key? key}) : super(key: key); @override Widget build(BuildContext context) { @@ -46,7 +49,7 @@ class LeaderBoardView extends StatelessWidget { style: Theme.of(context).textTheme.headline3, ), const SizedBox(height: 80), - const _LeaderBoardView(), + const _LeaderboardRanking(), const SizedBox(height: 20), TextButton( onPressed: () => Navigator.of(context).push( @@ -62,8 +65,8 @@ class LeaderBoardView extends StatelessWidget { } } -class _LeaderBoardView extends StatelessWidget { - const _LeaderBoardView({Key? key}) : super(key: key); +class _LeaderboardRanking extends StatelessWidget { + const _LeaderboardRanking({Key? key}) : super(key: key); @override Widget build(BuildContext context) { @@ -72,16 +75,16 @@ class _LeaderBoardView extends StatelessWidget { child: Column( mainAxisAlignment: MainAxisAlignment.center, children: const [ - _LeaderBoardHeaders(), - _LeaderBoardList(), + _LeaderboardHeaders(), + _LeaderboardList(), ], ), ); } } -class _LeaderBoardHeaders extends StatelessWidget { - const _LeaderBoardHeaders({Key? key}) : super(key: key); +class _LeaderboardHeaders extends StatelessWidget { + const _LeaderboardHeaders({Key? key}) : super(key: key); @override Widget build(BuildContext context) { @@ -90,17 +93,17 @@ class _LeaderBoardHeaders extends StatelessWidget { return Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - _LeaderBoardHeaderItem(title: l10n.rank), - _LeaderBoardHeaderItem(title: l10n.character), - _LeaderBoardHeaderItem(title: l10n.userName), - _LeaderBoardHeaderItem(title: l10n.score), + _LeaderboardHeaderItem(title: l10n.rank), + _LeaderboardHeaderItem(title: l10n.character), + _LeaderboardHeaderItem(title: l10n.userName), + _LeaderboardHeaderItem(title: l10n.score), ], ); } } -class _LeaderBoardHeaderItem extends StatelessWidget { - const _LeaderBoardHeaderItem({Key? key, required this.title}) +class _LeaderboardHeaderItem extends StatelessWidget { + const _LeaderboardHeaderItem({Key? key, required this.title}) : super(key: key); final String title; @@ -121,8 +124,8 @@ class _LeaderBoardHeaderItem extends StatelessWidget { } } -class _LeaderBoardList extends StatelessWidget { - const _LeaderBoardList({Key? key}) : super(key: key); +class _LeaderboardList extends StatelessWidget { + const _LeaderboardList({Key? key}) : super(key: key); @override Widget build(BuildContext context) { @@ -132,7 +135,7 @@ class _LeaderBoardList extends StatelessWidget { competitor: Competitor( rank: index, characterTheme: const SparkyTheme(), - userName: 'user$index', + initials: 'user$index', score: 0, ), ), @@ -152,19 +155,19 @@ class _LeaderBoardCompetitor extends StatelessWidget { return Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - _LeaderBoardCompetitorField(text: competitor.rank.toString()), - _LeaderBoardCompetitorCharacter( + _LeaderboardCompetitorField(text: competitor.rank.toString()), + _LeaderboardCompetitorCharacter( characterTheme: competitor.characterTheme, ), - _LeaderBoardCompetitorField(text: competitor.userName), - _LeaderBoardCompetitorField(text: competitor.score.toString()), + _LeaderboardCompetitorField(text: competitor.initials), + _LeaderboardCompetitorField(text: competitor.score.toString()), ], ); } } -class _LeaderBoardCompetitorField extends StatelessWidget { - const _LeaderBoardCompetitorField({Key? key, required this.text}) +class _LeaderboardCompetitorField extends StatelessWidget { + const _LeaderboardCompetitorField({Key? key, required this.text}) : super(key: key); final String text; @@ -188,8 +191,8 @@ class _LeaderBoardCompetitorField extends StatelessWidget { } } -class _LeaderBoardCompetitorCharacter extends StatelessWidget { - const _LeaderBoardCompetitorCharacter({ +class _LeaderboardCompetitorCharacter extends StatelessWidget { + const _LeaderboardCompetitorCharacter({ Key? key, required this.characterTheme, }) : super(key: key); @@ -215,16 +218,27 @@ class _LeaderBoardCompetitorCharacter extends StatelessWidget { } } +/// {@template competitor} +/// Class for players at ranking table. +/// {@endtemplate} class Competitor { + /// {@macro competitor} Competitor({ required this.rank, required this.characterTheme, - required this.userName, + required this.initials, required this.score, }); + /// [Competitor]'s position at ranking table. final int rank; + + /// [Competitor]'s selected [CharacterTheme]. final CharacterTheme characterTheme; - final String userName; + + /// [Competitor]'s name initials. + final String initials; + + /// [Competitor]'s final score. final int score; } diff --git a/test/game/view/widgets/game_over_dialog_test.dart b/test/game/view/widgets/game_over_dialog_test.dart index fee147dd..6ebb99f9 100644 --- a/test/game/view/widgets/game_over_dialog_test.dart +++ b/test/game/view/widgets/game_over_dialog_test.dart @@ -15,9 +15,7 @@ void main() { final l10n = await AppLocalizations.delegate.load(Locale('en')); await tester.pumpApp( const GameOverDialog( - theme: PinballTheme( - characterTheme: DashTheme(), - ), + theme: DashTheme(), ), ); @@ -33,9 +31,7 @@ void main() { await tester.pumpApp( const GameOverDialog( - theme: PinballTheme( - characterTheme: DashTheme(), - ), + theme: DashTheme(), ), navigator: navigator, ); diff --git a/test/leaderboard/view/leader_board_page_test.dart b/test/leaderboard/view/leader_board_page_test.dart index 780e782c..e16af6bb 100644 --- a/test/leaderboard/view/leader_board_page_test.dart +++ b/test/leaderboard/view/leader_board_page_test.dart @@ -4,23 +4,21 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:mockingjay/mockingjay.dart'; import 'package:pinball/l10n/l10n.dart'; -import 'package:pinball/leaderboard/view/leader_board_page.dart'; +import 'package:pinball/leaderboard/view/leaderboard_page.dart'; import 'package:pinball_theme/pinball_theme.dart'; import '../../helpers/helpers.dart'; void main() { - group('LeaderBoardPage', () { - testWidgets('renders LeaderBoardView', (tester) async { + group('LeaderboardPage', () { + testWidgets('renders LeaderboardView', (tester) async { await tester.pumpApp( - LeaderBoardPage( - theme: PinballTheme( - characterTheme: DashTheme(), - ), + LeaderboardPage( + theme: DashTheme(), ), ); - expect(find.byType(LeaderBoardView), findsOneWidget); + expect(find.byType(LeaderboardView), findsOneWidget); }); testWidgets('route returns a valid navigation route', (tester) async { @@ -31,10 +29,8 @@ void main() { return ElevatedButton( onPressed: () { Navigator.of(context).push( - LeaderBoardPage.route( - theme: PinballTheme( - characterTheme: DashTheme(), - ), + LeaderboardPage.route( + theme: DashTheme(), ), ); }, @@ -48,18 +44,16 @@ void main() { await tester.tap(find.text('Tap me')); await tester.pumpAndSettle(); - expect(find.byType(LeaderBoardPage), findsOneWidget); + expect(find.byType(LeaderboardPage), findsOneWidget); }); }); - group('LeaderBoardView', () { + group('LeaderboardView', () { testWidgets('renders correctly', (tester) async { final l10n = await AppLocalizations.delegate.load(Locale('en')); await tester.pumpApp( - LeaderBoardPage( - theme: PinballTheme( - characterTheme: DashTheme(), - ), + LeaderboardPage( + theme: DashTheme(), ), ); @@ -73,10 +67,8 @@ void main() { when(() => navigator.push(any())).thenAnswer((_) async {}); await tester.pumpApp( - LeaderBoardPage( - theme: PinballTheme( - characterTheme: DashTheme(), - ), + LeaderboardPage( + theme: DashTheme(), ), navigator: navigator, );