@@ -63,9 +63,9 @@ void main() {
6363 expect (fixture.calls, 0 );
6464 await fixture.drawFrame ();
6565 expect (fixture.calls, 1 );
66- await fixture. drawFrame ();
67- await fixture .drawFrame ();
68- await fixture. drawFrame ( );
66+ await fixture
67+ .drawFrame ()
68+ . timeout ( const Duration (milliseconds : 200 ), onTimeout : () => null );
6969 expect (fixture.calls, 1 );
7070
7171 guard.complete ();
@@ -77,7 +77,7 @@ void main() {
7777class _Fixture {
7878 var calls = 0 ;
7979 late final Scheduler sut;
80- FrameCallback ? registeredCallback;
80+ var registeredCallback = Completer < FrameCallback >() ;
8181 var _frames = 0 ;
8282
8383 _Fixture ([SchedulerCallback ? callback]) {
@@ -93,17 +93,18 @@ class _Fixture {
9393
9494 void _addPostFrameCallbackMock (FrameCallback callback,
9595 {String debugLabel = 'callback' }) {
96- registeredCallback = callback;
96+ if (! registeredCallback.isCompleted) {
97+ registeredCallback.complete (callback);
98+ }
9799 }
98100
99101 factory _Fixture .started () {
100102 return _Fixture ()..sut.start ();
101103 }
102104
103- Future <void > drawFrame () async {
104- await Future .delayed (const Duration (milliseconds: 8 ), () {});
105- _frames++ ;
106- registeredCallback? .call (Duration (milliseconds: _frames));
107- registeredCallback = null ;
105+ Future <void > drawFrame () {
106+ registeredCallback = Completer <FrameCallback >();
107+ return registeredCallback.future
108+ .then ((fn) => fn (Duration (milliseconds: ++ _frames)));
108109 }
109110}
0 commit comments