fix: add coverage for BonusAnimation

pull/206/head
arturplaczek 3 years ago
parent 1e894a5639
commit 8a9c6eb59a

@ -1,4 +1,4 @@
import 'dart:async'; // ignore_for_file: invalid_use_of_protected_member
import 'dart:ui' as ui; import 'dart:ui' as ui;
@ -15,6 +15,10 @@ class MockImages extends Mock implements Images {}
class MockImage extends Mock implements ui.Image {} class MockImage extends Mock implements ui.Image {}
class MockCallback extends Mock {
void call();
}
void main() { void main() {
TestWidgetsFlutterBinding.ensureInitialized(); TestWidgetsFlutterBinding.ensureInitialized();
@ -74,14 +78,14 @@ void main() {
// https://github.com/flame-engine/flame/issues/1543 // https://github.com/flame-engine/flame/issues/1543
testWidgets('called onCompleted callback at the end of animation ', testWidgets('called onCompleted callback at the end of animation ',
(tester) async { (tester) async {
final completer = Completer<void>(); final callback = MockCallback();
await tester.runAsync(() async { await tester.runAsync(() async {
await tester.pumpWidget( await tester.pumpWidget(
MaterialApp( MaterialApp(
home: Scaffold( home: Scaffold(
body: BonusAnimation.dashNest( body: BonusAnimation.dashNest(
onCompleted: completer.complete, onCompleted: callback.call,
), ),
), ),
), ),
@ -93,7 +97,63 @@ void main() {
await tester.pump(); await tester.pump();
expect(completer.isCompleted, isTrue); verify(callback.call).called(1);
});
});
testWidgets('called onCompleted callback at the end of animation ',
(tester) async {
final callback = MockCallback();
await tester.runAsync(() async {
await tester.pumpWidget(
MaterialApp(
home: Scaffold(
body: BonusAnimation.dashNest(
onCompleted: callback.call,
),
),
),
);
await tester.pump();
await Future<void>.delayed(const Duration(seconds: 4));
await tester.pump();
verify(callback.call).called(1);
});
});
testWidgets('called onCompleted once when animation changed', (tester) async {
final callback = MockCallback();
final secondAnimation = BonusAnimation.sparkyTurboCharge(
onCompleted: callback.call,
);
await tester.runAsync(() async {
await tester.pumpWidget(
MaterialApp(
home: Scaffold(
body: BonusAnimation.dashNest(
onCompleted: callback.call,
),
),
),
);
await tester.pump();
tester
.state(find.byType(BonusAnimation))
.didUpdateWidget(secondAnimation);
await Future<void>.delayed(const Duration(seconds: 4));
await tester.pump();
verify(callback.call).called(1);
}); });
}); });
} }

Loading…
Cancel
Save