afScreenTestMain function

Future<void> afScreenTestMain(
  1. AFCommandOutput output,
  2. AFTestStats stats,
  3. AFDartParams paramsD1,
  4. WidgetTester tester,
)

Implementation

Future<void> afScreenTestMain(AFCommandOutput output, AFTestStats stats, AFDartParams paramsD1, WidgetTester tester) async {
  final isWidget = AFConfigEntries.testsEnabled.isAreaEnabled(AFibD.config, AFConfigEntryEnabledTests.widgetTests);
  final isSingle = AFConfigEntries.testsEnabled.isAreaEnabled(AFibD.config, AFConfigEntryEnabledTests.screenTests);
  final isMulti  = AFConfigEntries.testsEnabled.isAreaEnabled(AFibD.config, AFConfigEntryEnabledTests.workflowTests);
  final isDialog = AFConfigEntries.testsEnabled.isAreaEnabled(AFibD.config, AFConfigEntryEnabledTests.dialogTests);
  final isDrawer = AFConfigEntries.testsEnabled.isAreaEnabled(AFibD.config, AFConfigEntryEnabledTests.drawerTests);
  final isBottomSheet = AFConfigEntries.testsEnabled.isAreaEnabled(AFibD.config, AFConfigEntryEnabledTests.bottomSheetTests);
  if(!isSingle && !isMulti && !isWidget && !isDialog && !isBottomSheet && !isDrawer) {
    return;
  }

  AFibD.config.setValue(AFConfigEntries.widgetTesterContextKey, true);
  final app = AFibF.g.createApp!();
  await tester.pumpWidget(app);


  AFBaseTestExecute.writeSeparatorLine(output);
  final formFactor = AFibD.config.formFactorWithOrientation;
  output.writeLine("Running at size ${formFactor.summaryText()}");

  final locales = AFibF.g.testEnabledLocales(AFibD.config);

  for(final locale in locales) {
    AFBaseTestExecute.writeSeparatorLine(output);
    output.writeLine("Running in locale $locale");
    AFibF.g.internalOnlyActiveDispatcher.dispatch(AFOverrideThemeValueAction(
      id: AFUIThemeID.locale,
      value: locale,
    ));

    if(isWidget) {
      await _afWidgetTestMain(output, stats, tester, app);
    }

    if(isDialog) {
      await _afDialogTestMain(output, stats, tester, app);
    }

    if(isBottomSheet) {
      await _afBottomSheetTestMain(output, stats, tester, app);
    }

    if(isDrawer) {
      await _afDrawerTestMain(output, stats, tester, app);
    }

    if(isSingle) {
      await _afSingleScreenTestMain(output, stats, tester, app);
    }

    if(isMulti) {
      await _afWorkflowTestMain(output, stats, tester, app);
    }
  }
}