EnsembleTestContext.fromTestCase constructor

EnsembleTestContext.fromTestCase(
  1. EnsembleTestCase testCase, {
  2. EnsembleTestConfig config = const EnsembleTestConfig(),
})

Implementation

factory EnsembleTestContext.fromTestCase(
  EnsembleTestCase testCase, {
  EnsembleTestConfig config = const EnsembleTestConfig(),
}) {
  final logger = TestLogger();
  final apiOverlay = TestApiProviderOverlay(
    mocks: Map<String, MockAPIResponse>.from(testCase.mocks.apis),
  );

  final storage = testCase.initialState['storage'];
  final keychain = testCase.initialState['keychain'];
  final env = testCase.initialState['env'];

  final envMap =
      env is Map ? Map<String, dynamic>.from(env) : <String, dynamic>{};

  final setup = EnsembleTestSetup(
    envOverrides: envMap.isEmpty ? null : envMap,
    initialPublicStorage:
        storage is Map ? Map<String, dynamic>.from(storage) : null,
    initialKeychain:
        keychain is Map ? Map<String, dynamic>.from(keychain) : null,
  );

  final ctx = EnsembleTestContext(
    testCase: testCase,
    config: config,
    apiOverlay: apiOverlay,
    logger: logger,
    setup: setup,
  );
  apiOverlay.stepIndexProvider = () => ctx.runtime.currentStepIndex;
  ctx.envOverrides.addAll(envMap);
  ctx.runtime.locale = _localeFromEnv(envMap['APP_LOCALE']);
  return ctx;
}