fix: apply code review

pull/195/head
arturplaczek 3 years ago
parent 88c8b45d81
commit 6a9c8a5557

@ -37,20 +37,14 @@ class App extends StatelessWidget {
],
child: BlocProvider(
create: (context) => ThemeCubit(),
child: MaterialApp(
child: const MaterialApp(
title: 'I/O Pinball',
theme: ThemeData(
appBarTheme: const AppBarTheme(color: Color(0xFF13B9FF)),
colorScheme: ColorScheme.fromSwatch(
accentColor: const Color(0xFF13B9FF),
),
),
localizationsDelegates: const [
localizationsDelegates: [
AppLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
],
supportedLocales: AppLocalizations.supportedLocales,
home: const PinballGamePage(),
home: PinballGamePage(),
),
),
);

@ -5,7 +5,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:pinball/game/game.dart';
import 'package:pinball/start_game/bloc/start_game_bloc.dart';
import 'package:pinball/start_game/start_game.dart';
import 'package:pinball/theme/theme.dart';
import 'package:pinball_audio/pinball_audio.dart';
@ -76,17 +76,16 @@ class PinballGameView extends StatelessWidget {
return Scaffold(
backgroundColor: Colors.blue,
body: isLoading
? const PinballGameLoadedView()
: PinballGameBody(
? const _PinballGameLoadingView()
: PinballGameLoadedView(
game: game,
),
);
}
}
@visibleForTesting
class PinballGameLoadedView extends StatelessWidget {
const PinballGameLoadedView({Key? key}) : super(key: key);
class _PinballGameLoadingView extends StatelessWidget {
const _PinballGameLoadingView({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
@ -107,8 +106,8 @@ class PinballGameLoadedView extends StatelessWidget {
}
@visibleForTesting
class PinballGameBody extends StatelessWidget {
const PinballGameBody({
class PinballGameLoadedView extends StatelessWidget {
const PinballGameLoadedView({
Key? key,
required this.game,
}) : super(key: key);

@ -34,7 +34,7 @@ class PlayButtonOverlay extends StatelessWidget {
child: SizedBox(
height: height,
width: width,
child: const CharacterSelectionPage(),
child: const CharacterSelectionDialog(),
),
);
},

@ -69,7 +69,7 @@ class LeaderboardView extends StatelessWidget {
const SizedBox(height: 20),
TextButton(
onPressed: () => Navigator.of(context).push<void>(
CharacterSelectionPage.route(),
CharacterSelectionDialog.route(),
),
child: Text(l10n.retry),
),

@ -7,12 +7,12 @@ import 'package:pinball/start_game/start_game.dart';
import 'package:pinball/theme/theme.dart';
import 'package:pinball_theme/pinball_theme.dart';
class CharacterSelectionPage extends StatelessWidget {
const CharacterSelectionPage({Key? key}) : super(key: key);
class CharacterSelectionDialog extends StatelessWidget {
const CharacterSelectionDialog({Key? key}) : super(key: key);
static Route route() {
return MaterialPageRoute<void>(
builder: (_) => const CharacterSelectionPage(),
builder: (_) => const CharacterSelectionDialog(),
);
}

@ -72,22 +72,37 @@ void main() {
),
findsOneWidget,
);
},
);
final loadedAssetsState = AssetsManagerState(
loadables: [Future<void>.value()],
loaded: [Future<void>.value()],
);
whenListen(
assetsManagerCubit,
Stream.value(loadedAssetsState),
initialState: loadedAssetsState,
);
testWidgets(
'renders PinballGameLoadedView after resources have been loaded',
(tester) async {
final assetsManagerCubit = MockAssetsManagerCubit();
final loadedAssetsState = AssetsManagerState(
loadables: [Future<void>.value()],
loaded: [Future<void>.value()],
);
whenListen(
assetsManagerCubit,
Stream.value(loadedAssetsState),
initialState: loadedAssetsState,
);
await tester.pumpApp(
PinballGameView(
game: game,
),
assetsManagerCubit: assetsManagerCubit,
themeCubit: themeCubit,
gameBloc: gameBloc,
);
await tester.pump();
await tester.pump();
expect(find.byType(PinballGameBody), findsOneWidget);
},
);
expect(find.byType(PinballGameLoadedView), findsOneWidget);
});
group('route', () {
Future<void> pumpRoute({

@ -33,14 +33,14 @@ void main() {
verify(gameFlowController.start).called(1);
});
testWidgets('is showing CharacterSelectionPage dialog when taped',
testWidgets('is showing CharacterSelectionPage dialog when tapped',
(tester) async {
await tester.pumpApp(PlayButtonOverlay(game: game));
await tester.tap(find.text('Play'));
await tester.pump();
expect(find.byType(CharacterSelectionPage), findsOneWidget);
expect(find.byType(CharacterSelectionDialog), findsOneWidget);
});
});
}

@ -25,7 +25,7 @@ void main() {
group('CharacterSelectionPage', () {
testWidgets('renders CharacterSelectionView', (tester) async {
await tester.pumpApp(
CharacterSelectionPage(),
CharacterSelectionDialog(),
themeCubit: themeCubit,
);
expect(find.byType(CharacterSelectionView), findsOneWidget);
@ -39,7 +39,7 @@ void main() {
return ElevatedButton(
onPressed: () {
Navigator.of(context)
.push<void>(CharacterSelectionPage.route());
.push<void>(CharacterSelectionDialog.route());
},
child: Text('Tap me'),
);
@ -52,7 +52,7 @@ void main() {
await tester.tap(find.text('Tap me'));
await tester.pumpAndSettle();
expect(find.byType(CharacterSelectionPage), findsOneWidget);
expect(find.byType(CharacterSelectionDialog), findsOneWidget);
});
});

Loading…
Cancel
Save