mirror of https://github.com/flutter/pinball.git
parent
b79629725e
commit
90395a8c06
@ -0,0 +1,48 @@
|
|||||||
|
// ignore_for_file: prefer_const_constructors
|
||||||
|
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
import 'package:mockingjay/mockingjay.dart';
|
||||||
|
import 'package:pinball/game/game.dart';
|
||||||
|
import 'package:pinball/l10n/l10n.dart';
|
||||||
|
import 'package:pinball_theme/pinball_theme.dart';
|
||||||
|
|
||||||
|
import '../../../helpers/helpers.dart';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
group('GameOverDialog', () {
|
||||||
|
testWidgets('renders correctly', (tester) async {
|
||||||
|
final l10n = await AppLocalizations.delegate.load(Locale('en'));
|
||||||
|
await tester.pumpApp(
|
||||||
|
const GameOverDialog(
|
||||||
|
theme: PinballTheme(
|
||||||
|
characterTheme: DashTheme(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(find.text(l10n.gameOver), findsOneWidget);
|
||||||
|
expect(find.text(l10n.leadersBoard), findsOneWidget);
|
||||||
|
});
|
||||||
|
|
||||||
|
testWidgets('tapping on leaderboard button navigates to LeaderBoardPage',
|
||||||
|
(tester) async {
|
||||||
|
final l10n = await AppLocalizations.delegate.load(Locale('en'));
|
||||||
|
final navigator = MockNavigator();
|
||||||
|
when(() => navigator.push<void>(any())).thenAnswer((_) async {});
|
||||||
|
|
||||||
|
await tester.pumpApp(
|
||||||
|
const GameOverDialog(
|
||||||
|
theme: PinballTheme(
|
||||||
|
characterTheme: DashTheme(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
navigator: navigator,
|
||||||
|
);
|
||||||
|
|
||||||
|
await tester.tap(find.widgetWithText(TextButton, l10n.leadersBoard));
|
||||||
|
|
||||||
|
verify(() => navigator.push<void>(any())).called(1);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
@ -0,0 +1,90 @@
|
|||||||
|
// ignore_for_file: prefer_const_constructors
|
||||||
|
|
||||||
|
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_theme/pinball_theme.dart';
|
||||||
|
|
||||||
|
import '../../helpers/helpers.dart';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
group('LeaderBoardPage', () {
|
||||||
|
testWidgets('renders LeaderBoardView', (tester) async {
|
||||||
|
final l10n = await AppLocalizations.delegate.load(Locale('en'));
|
||||||
|
await tester.pumpApp(
|
||||||
|
LeaderBoardPage(
|
||||||
|
theme: PinballTheme(
|
||||||
|
characterTheme: DashTheme(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(find.byType(LeaderBoardView), findsOneWidget);
|
||||||
|
});
|
||||||
|
|
||||||
|
testWidgets('route returns a valid navigation route', (tester) async {
|
||||||
|
await tester.pumpApp(
|
||||||
|
Scaffold(
|
||||||
|
body: Builder(
|
||||||
|
builder: (context) {
|
||||||
|
return ElevatedButton(
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.of(context).push<void>(
|
||||||
|
LeaderBoardPage.route(
|
||||||
|
theme: PinballTheme(
|
||||||
|
characterTheme: DashTheme(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
child: const Text('Tap me'),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
await tester.tap(find.text('Tap me'));
|
||||||
|
await tester.pumpAndSettle();
|
||||||
|
|
||||||
|
expect(find.byType(LeaderBoardPage), findsOneWidget);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
group('LeaderBoardView', () {
|
||||||
|
testWidgets('renders correctly', (tester) async {
|
||||||
|
final l10n = await AppLocalizations.delegate.load(Locale('en'));
|
||||||
|
await tester.pumpApp(
|
||||||
|
LeaderBoardPage(
|
||||||
|
theme: PinballTheme(
|
||||||
|
characterTheme: DashTheme(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(find.text(l10n.leadersBoard), findsOneWidget);
|
||||||
|
expect(find.text(l10n.retry), findsOneWidget);
|
||||||
|
});
|
||||||
|
|
||||||
|
testWidgets('navigates to CharacterSelectionPage when retry is tapped',
|
||||||
|
(tester) async {
|
||||||
|
final navigator = MockNavigator();
|
||||||
|
when(() => navigator.push<void>(any())).thenAnswer((_) async {});
|
||||||
|
|
||||||
|
await tester.pumpApp(
|
||||||
|
LeaderBoardPage(
|
||||||
|
theme: PinballTheme(
|
||||||
|
characterTheme: DashTheme(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
navigator: navigator,
|
||||||
|
);
|
||||||
|
await tester.ensureVisible(find.byType(TextButton));
|
||||||
|
await tester.tap(find.byType(TextButton));
|
||||||
|
|
||||||
|
verify(() => navigator.push<void>(any())).called(1);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
Loading…
Reference in new issue