afStateTestMain function

void afStateTestMain(
  1. AFCommandOutput output,
  2. AFTestStats stats,
  3. AFDartParams paramsD
)

The main function which executes the store test defined in your initStateTests function.

Implementation

void afStateTestMain(AFCommandOutput output, AFTestStats stats, AFDartParams paramsD) {
  if(!AFConfigEntries.testsEnabled.isAreaEnabled(AFibD.config, AFConfigEntryEnabledTests.stateTests)) {
    return;
  }

  final tests = AFibF.g.stateTests;
  final contexts = <AFStateTestContext>[];
  const testKind = "State";
  final localStats = AFTestStats();

  final store = AFibF.g.internalOnlyActiveStore;

  for(final test in tests.tests) {
    if(AFConfigEntries.testsEnabled.isTestEnabled(AFibD.config, test.id)) {
      if(localStats.isEmpty) {
        printTestKind(output, testKind);
      }
      printPrototypeStart(output, test.id);
      final context = AFStateTestContextForState(test,  AFConceptualStore.appStore, isTrueTestContext: true);

      context.store.dispatch(AFResetToInitialStateAction());
      context.store.dispatch(AFResetToInitialRouteAction());
      test.execute(context);
      contexts.add(context);

      output.indent();
      printTestResult(output, testKind, context, localStats);
      output.outdent();
      context.finishAndUpdateStats(localStats);

      AFibF.g.internalOnlyActiveStore.dispatch(AFShutdownOngoingQueriesAction());

    }
  }

  store.dispatch(AFNavigateExitTestAction());
  AFStateTestContext.currentTest = null;


  final baseContexts = List<AFBaseTestExecute>.of(contexts);
  printTestTotal(output, baseContexts, localStats);
  stats.mergeIn(localStats);

}