startScreen method

  1. @override
void startScreen(
  1. AFDispatcher dispatcher,
  2. BuildContext? flutterContext,
  3. AFDefineTestDataContext registry, {
  4. AFRouteParam? routeParam,
  5. List<Object>? stateView,
})
override

Implementation

@override
void startScreen(AFDispatcher dispatcher, BuildContext? flutterContext, AFDefineTestDataContext registry, { AFRouteParam? routeParam, List<Object>? stateView }) {
  final ms = stateView ?? this.stateView;
  final rvp = routeParam ?? this.createNavigatePush().param;
  final actualModels = registry.resolveStateViewModels(ms);
  final rp = registry.find(rvp);


  if(timeHandling == AFTestTimeHandling.running) {
    final baseTime = actualModels["AFTimeState"] as AFTimeState?;
    if(baseTime == null) {
      throw AFException("If you specify runTine for a screen or widget test, you must include an AFTimeState instance in your models.");
    }
    dispatcher.dispatch(AFTimeUpdateListenerQuery(baseTime: baseTime));
  }

  final navigate = this.createNavigatePush();
  dispatcher.dispatch(AFStartPrototypeScreenTestAction(
    this,
    navigate: navigate,
    models: actualModels,
  ));
  dispatcher.dispatch(AFNavigatePushAction(
    launchParam: rp,
    children: navigate.children,
    createDefaultChildParam: navigate.createDefaultChildParam,
  ));

}