@autometa/jest-executor 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +1,15 @@
1
1
 
2
- > @autometa/jest-executor@0.1.3 test /Users/ben.aherne/Documents/GitHub/autometa/packages/jest-executor
2
+ > @autometa/jest-executor@0.1.5 test /Users/ben.aherne/Documents/GitHub/autometa/packages/jest-executor
3
3
  > vitest run --passWithNoTests
4
4
 
5
5
 
6
6
  RUN v0.29.8 /Users/ben.aherne/Documents/GitHub/autometa/packages/jest-executor
7
7
 
8
- ✓ src/timeout-selector.spec.ts (2 tests) 2ms
9
- ✓ src/executor.spec.ts (15 tests) 42ms
8
+ ✓ src/timeout-selector.spec.ts (2 tests) 45ms
9
+ ✓ src/executor.spec.ts (15 tests) 17ms
10
10
 
11
11
  Test Files 2 passed (2)
12
12
  Tests 17 passed (17)
13
- Start at 15:45:56
14
- Duration 2.02s (transform 375ms, setup 0ms, collect 1.87s, tests 44ms)
13
+ Start at 17:37:06
14
+ Duration 1.04s (transform 223ms, setup 0ms, collect 988ms, tests 62ms)
15
15
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @autometa/jest-executor
2
2
 
3
+ ## 0.1.6
4
+
5
+ ### Patch Changes
6
+
7
+ - 29ed7239: fix(test-builder): onStepStart event not firing
8
+ - Updated dependencies [29ed7239]
9
+ - @autometa/test-builder@0.1.6
10
+ - @autometa/gherkin@0.4.3
11
+ - @autometa/events@0.1.3
12
+ - @autometa/scopes@0.2.6
13
+
14
+ ## 0.1.5
15
+
16
+ ### Patch Changes
17
+
18
+ - 4a16497d: fix(scopes): hooks not executing without tag expressions
19
+ - Updated dependencies [4a16497d]
20
+ - @autometa/scopes@0.2.5
21
+ - @autometa/app@0.1.4
22
+ - @autometa/test-builder@0.1.5
23
+ - @autometa/config@0.1.4
24
+
3
25
  ## 0.1.4
4
26
 
5
27
  ### Patch Changes
package/dist/esm/index.js CHANGED
@@ -144,11 +144,21 @@ function bootstrapBackground(root, bridge, localApp, events, [config, timeout])
144
144
  const steps = background.steps;
145
145
  try {
146
146
  for (const step of steps) {
147
+ events.step.emitStart({
148
+ title: step.data.scope.title,
149
+ args: step.args,
150
+ expression: step.data.scope.expression.source
151
+ });
147
152
  await step.data.scope.execute(
148
153
  background.data.gherkin,
149
154
  step.data.gherkin,
150
155
  localApp()
151
156
  );
157
+ events.step.emitEnd({
158
+ expression: step.data.scope.expression.source,
159
+ text: step.data.scope.title,
160
+ args: step.args
161
+ });
152
162
  }
153
163
  events.before.emitEnd({
154
164
  title,
@@ -197,33 +207,45 @@ function bootstrapScenario(bridge, localApp, events, [config, timeout]) {
197
207
  scenarioName,
198
208
  async () => {
199
209
  events.scenario.emitStart({
200
- title: scenarioName,
201
- tags: [...data.gherkin.tags]
210
+ title: bridge.title,
211
+ tags: bridge.tags
202
212
  });
203
213
  try {
204
214
  for (const step of bridge.steps) {
215
+ events.step.emitStart({
216
+ title: step.data.scope.title,
217
+ args: step.args,
218
+ expression: step.expressionText
219
+ });
205
220
  await step.data.scope.execute(
206
221
  bridge.data.gherkin,
207
222
  step.data.gherkin,
208
223
  localApp()
209
224
  );
225
+ events.step.emitEnd({
226
+ expression: step.expressionText,
227
+ text: step.data.scope.title,
228
+ args: step.args
229
+ });
210
230
  }
211
231
  bridge.report = { passed: true };
212
232
  events.scenario.emitEnd({
213
- title: scenarioName,
214
- tags: [...data.gherkin.tags],
233
+ title: bridge.title,
234
+ tags: bridge.tags,
215
235
  status: "PASSED"
216
236
  });
217
237
  } catch (e) {
238
+ const error = e;
239
+ bridge.report = { passed: false, error: e };
218
240
  events.scenario.emitEnd({
219
- title: scenarioName,
220
- tags: [...data.gherkin.tags],
241
+ title: bridge.title,
242
+ tags: bridge.tags,
221
243
  status: "FAILED",
222
- error: e
244
+ error
223
245
  });
224
- bridge.report = { passed: false, error: e };
225
- const message = `${scenarioName} failed to execute.`;
226
- throw new AutomationError(message, { cause: e });
246
+ const message = `${bridge.title} failed because an error was encountered while executing a step`;
247
+ const meta = { cause: error };
248
+ throw new AutomationError(message, meta);
227
249
  }
228
250
  },
229
251
  chosenTimeout.milliseconds
@@ -394,7 +416,8 @@ function bootstrapSetupHooks(bridge, staticApp, events, [config, timeout]) {
394
416
  timeout,
395
417
  bridge.data.scope.timeout
396
418
  ).getTimeout(config).milliseconds;
397
- bridge.data.scope.hooks.setup.forEach((hook) => {
419
+ const setups = bridge.data.scope.hooks.setup;
420
+ setups.forEach((hook) => {
398
421
  const hookTimeout = chooseTimeout(
399
422
  Timeout2.from(chosenTimeout),
400
423
  hook.timeout
@@ -437,7 +460,7 @@ function bootstrapAfterHooks(root, bridge, localApp, events, [config, timeout])
437
460
  const scenarioBridge = find(root, testName);
438
461
  if (!scenarioBridge) {
439
462
  throw new AutomationError(
440
- `No matching scenario bridge was found matching the test name: ${testName}`
463
+ `No scenario was found matching the test path: ${testName}`
441
464
  );
442
465
  }
443
466
  if (!hook.canExecute(...bridge.data.gherkin.tags)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/executor.ts","../../src/timeout-selector.ts","../../src/index.ts"],"sourcesContent":["import {\n ExamplesBridge,\n FeatureBridge,\n RuleBridge,\n ScenarioBridge,\n ScenarioOutlineBridge,\n find,\n GlobalBridge\n} from \"@autometa/test-builder\";\nimport {\n describe,\n it,\n expect,\n beforeEach,\n afterEach,\n afterAll,\n beforeAll\n} from \"@jest/globals\";\nimport { type App, AutometaApp, AutometaWorld, getApp } from \"@autometa/app\";\nimport { Class } from \"@autometa/types\";\nimport { AutomationError } from \"@autometa/errors\";\nimport { TestEventEmitter } from \"@autometa/events\";\nimport { Query } from \"@autometa/test-builder\";\nimport { Config } from \"@autometa/config\";\nimport { chooseTimeout } from \"./timeout-selector\";\nimport { GlobalScope, NullTimeout, Timeout } from \"@autometa/scopes\";\nexport function execute(\n { app, world }: { app: Class<AutometaApp>; world: Class<AutometaWorld> },\n global: GlobalScope,\n bridge: FeatureBridge,\n events: TestEventEmitter,\n config: Config\n) {\n const globalBridge = new GlobalBridge(global);\n const featureTitle = bridge.data.scope.title(bridge.data.gherkin);\n const [group, modifier] = getGroupOrModifier(bridge);\n const chosenTimeout = chooseTimeout(\n new NullTimeout(),\n bridge.data.scope.timeout\n ).getTimeout(config);\n beforeAll(() => {\n events.feature.emitStart({\n title: featureTitle,\n path: bridge.data.scope.path,\n modifier,\n tags: [...bridge.data.gherkin.tags]\n });\n }, chosenTimeout.milliseconds);\n group(featureTitle, () => {\n let localApp: App;\n const staticApp: App = getApp(app, world);\n beforeEach(() => {\n localApp = getApp(app, world);\n });\n\n bootstrapSetupHooks(globalBridge, staticApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapSetupHooks(bridge, staticApp, events, [config, chosenTimeout]);\n bootstrapBeforeHooks(bridge, globalBridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapBeforeHooks(bridge, bridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapBackground(bridge, bridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapScenarios(bridge, bridge, () => localApp, staticApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapRules(bridge, () => localApp, staticApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapAfterHooks(bridge, bridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapAfterHooks(bridge, globalBridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapTeardownHooks(globalBridge, staticApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapTeardownHooks(bridge, staticApp, events, [config, chosenTimeout]);\n });\n afterAll(() => {\n const failures = Query.find.failed(bridge);\n const status =\n modifier === \"skip\"\n ? \"SKIPPED\"\n : failures.length === 0\n ? \"PASSED\"\n : \"FAILED\";\n events.feature.emitEnd({\n title: featureTitle,\n modifier,\n tags: [...bridge.data.gherkin.tags],\n status: status\n });\n });\n}\n\nexport function bootstrapBackground(\n root: FeatureBridge,\n bridge: FeatureBridge | RuleBridge,\n localApp: () => App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const background = bridge.background;\n if (!background) return;\n\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config).milliseconds;\n\n const tags = bridge?.data?.gherkin?.tags ?? [];\n if (tags.has(\"@skip\") || tags.has(\"@skipped\")) return;\n beforeEach(async () => {\n const testName = expect.getState().currentTestName;\n if (!testName) throw new AutomationError(\"A Scenario must have a title\");\n const scenarioBridge = find(root, testName);\n if (!scenarioBridge) {\n throw new AutomationError(\n `No matching scenario bridge was found matching the test name: ${testName}`\n );\n }\n const title = background.data.scope.title(background.data.gherkin);\n events.before.emitStart({\n title: title,\n tags: [...tags]\n });\n const steps = background.steps;\n try {\n for (const step of steps) {\n await step.data.scope.execute(\n background.data.gherkin,\n step.data.gherkin,\n localApp()\n );\n }\n events.before.emitEnd({\n title: title,\n tags: [...tags],\n status: \"PASSED\"\n });\n } catch (e) {\n events.before.emitEnd({\n title: title,\n tags: [...tags],\n status: \"FAILED\",\n error: e as Error\n });\n const message = `${title} failed to execute.\nTest: ${testName}`;\n throw new AutomationError(message, { cause: e as Error });\n }\n }, chosenTimeout);\n}\nexport function bootstrapScenarios(\n root: FeatureBridge,\n bridge: FeatureBridge | RuleBridge | ExamplesBridge,\n localApp: () => App,\n staticApp: App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const { scenarios } = bridge;\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n scenarios.forEach((scenario) => {\n if (isOutline(scenario)) {\n bootstrapScenarioOutline(root, scenario, localApp, staticApp, events, [\n config,\n chosenTimeout\n ]);\n return;\n }\n bootstrapScenario(scenario, localApp, events, [config, chosenTimeout]);\n });\n}\n\nexport function bootstrapScenario(\n bridge: ScenarioBridge,\n localApp: () => App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const { data } = bridge;\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n const scenarioName = data.scope.title(data.gherkin);\n const test = getTestOrModifier(bridge);\n test(\n scenarioName,\n async () => {\n events.scenario.emitStart({\n title: scenarioName,\n tags: [...data.gherkin.tags]\n });\n try {\n for (const step of bridge.steps) {\n await step.data.scope.execute(\n bridge.data.gherkin,\n step.data.gherkin,\n localApp()\n );\n }\n bridge.report = { passed: true };\n events.scenario.emitEnd({\n title: scenarioName,\n tags: [...data.gherkin.tags],\n status: \"PASSED\"\n });\n } catch (e) {\n events.scenario.emitEnd({\n title: scenarioName,\n tags: [...data.gherkin.tags],\n status: \"FAILED\",\n error: e as Error\n });\n bridge.report = { passed: false, error: e as Error };\n const message = `${scenarioName} failed to execute.`;\n throw new AutomationError(message, { cause: e as Error });\n }\n },\n chosenTimeout.milliseconds\n );\n}\n\nfunction isOutline(\n data: ScenarioBridge | ScenarioOutlineBridge\n): data is ScenarioOutlineBridge {\n return data instanceof ScenarioOutlineBridge;\n}\n\nexport function bootstrapScenarioOutline(\n root: FeatureBridge,\n bridge: ScenarioOutlineBridge,\n localApp: () => App,\n staticApp: App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const {\n data: { scope, gherkin },\n examples\n } = bridge;\n const title = scope.title(gherkin);\n const [group, modifier] = getGroupOrModifier(bridge);\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config).milliseconds;\n group(title, () => {\n beforeAll(() => {\n events.scenarioOutline.emitStart({\n title,\n modifier,\n tags: [...gherkin.tags]\n });\n });\n bootstrapSetupHooks(bridge, staticApp, events, [config, timeout]);\n bootstrapBeforeHooks(root, bridge, localApp, events, [config, timeout]);\n examples.forEach((example) => {\n bootstrapExamples(root, example, localApp, staticApp, events, [\n config,\n timeout\n ]);\n });\n bootstrapAfterHooks(root, bridge, localApp, events, [config, timeout]);\n bootstrapTeardownHooks(bridge, staticApp, events, [config, timeout]);\n afterAll(() => {\n const failures = Query.find.failed(bridge);\n const status =\n modifier === \"skip\"\n ? \"SKIPPED\"\n : failures.length === 0\n ? \"PASSED\"\n : \"FAILED\";\n events.scenarioOutline.emitEnd({\n title,\n modifier,\n tags: [...gherkin.tags],\n status: status\n });\n }, chosenTimeout);\n });\n}\nexport function bootstrapExamples(\n root: FeatureBridge,\n example: ExamplesBridge,\n localApp: () => App,\n staticApp: App,\n events: TestEventEmitter,\n timeout: [Config, Timeout]\n) {\n const title = example.data.scope.title(example.data.gherkin);\n const [group] = getGroupOrModifier(example);\n group(title, () => {\n bootstrapScenarios(root, example, localApp, staticApp, events, timeout);\n });\n}\n\nexport function bootstrapRules(\n bridge: FeatureBridge,\n localApp: () => App,\n staticApp: App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n bridge.rules.forEach((rule) => {\n const ruleTimeout = chooseTimeout(\n chosenTimeout,\n rule.data.scope.timeout\n ).getTimeout(config);\n const transferTimeout: [Config, Timeout] = [config, ruleTimeout];\n const { data } = rule;\n const ruleName = data.scope.title(data.gherkin);\n const [group, modifier] = getGroupOrModifier(bridge);\n\n group(ruleName, () => {\n beforeAll(() => {\n events.rule.emitStart({\n title: ruleName,\n modifier,\n tags: [...data.gherkin.tags]\n });\n });\n bootstrapSetupHooks(rule, staticApp, events, transferTimeout);\n bootstrapBeforeHooks(bridge, rule, localApp, events, transferTimeout);\n bootstrapBackground(bridge, rule, localApp, events, transferTimeout);\n bootstrapScenarios(\n bridge,\n rule,\n localApp,\n staticApp,\n events,\n transferTimeout\n );\n bootstrapAfterHooks(bridge, rule, localApp, events, transferTimeout);\n bootstrapTeardownHooks(rule, staticApp, events, transferTimeout);\n\n afterAll(() => {\n const failures = Query.find.failed(rule);\n const status =\n modifier === \"skip\"\n ? \"SKIPPED\"\n : failures.length === 0\n ? \"PASSED\"\n : \"FAILED\";\n events.rule.emitEnd({\n title: ruleName,\n modifier,\n tags: [...data.gherkin.tags],\n status: status\n });\n }, ruleTimeout.milliseconds);\n });\n });\n}\n\nfunction getGroupOrModifier({\n data\n}: RuleBridge | FeatureBridge | ScenarioOutlineBridge | ExamplesBridge) {\n if (data.gherkin.tags?.has(\"@skip\") || data.gherkin.tags?.has(\"@skipped\")) {\n return [describe.skip, \"skip\"] as const;\n }\n if (data.gherkin.tags?.has(\"@only\")) {\n return [describe.only, \"only\"] as const;\n }\n return [describe, undefined] as const;\n}\n\nfunction getTestOrModifier({ data }: ScenarioBridge) {\n if (data.gherkin.tags?.has(\"@skip\") || data.gherkin.tags?.has(\"@skipped\")) {\n return it.skip;\n }\n if (data.gherkin.tags?.has(\"@only\")) {\n return it.only;\n }\n return it;\n}\n\nexport function bootstrapBeforeHooks(\n root: FeatureBridge,\n bridge: GlobalBridge | FeatureBridge | RuleBridge | ScenarioOutlineBridge,\n localApp: () => App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n\n bridge.data.scope.hooks.before.forEach((hook) => {\n const hookTimeout = chooseTimeout(chosenTimeout, hook.timeout).getTimeout(\n config\n ).milliseconds;\n\n beforeEach(async () => {\n const testName = expect.getState().currentTestName;\n if (!testName) throw new AutomationError(\"A Scenario must have a title\");\n const scenarioBridge = find(root, testName);\n if (!scenarioBridge) {\n throw new AutomationError(\n `No matching scenario was found matching the test name: ${testName}`\n );\n }\n if (!hook.canExecute(...bridge.data.gherkin.tags)) {\n return;\n }\n const tags = scenarioBridge?.data?.gherkin?.tags ?? [];\n events.before.emitStart({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags]\n });\n const report = await hook.execute(localApp(), ...tags);\n events.before.emitEnd({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags],\n status: report.status,\n error: report.error\n });\n if (report.error) {\n const message = `${hook.name}: ${hook.description} failed to execute.`;\n throw new AutomationError(message, { cause: report.error });\n }\n }, hookTimeout);\n });\n}\nexport function bootstrapSetupHooks(\n bridge: GlobalBridge | FeatureBridge | RuleBridge | ScenarioOutlineBridge,\n staticApp: App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config).milliseconds;\n\n bridge.data.scope.hooks.setup.forEach((hook) => {\n const hookTimeout = chooseTimeout(\n Timeout.from(chosenTimeout),\n hook.timeout\n ).getTimeout(config).milliseconds;\n const tags = bridge.data.gherkin.tags ?? [];\n\n beforeAll(async () => {\n if (!hook.canExecute(...tags)) {\n return;\n }\n events.setup.emitStart({\n title: `${hook.name}: ${hook.description}`\n });\n const report = await hook.execute(staticApp, ...tags);\n\n events.setup.emitEnd({\n title: `${hook.name}: ${hook.description}`,\n status: report.status,\n error: report.error\n });\n\n if (report.error) {\n const message = `${hook.name}: ${hook.description} failed to execute.`;\n throw new AutomationError(message, { cause: report.error });\n }\n }, hookTimeout);\n });\n}\n\nexport function bootstrapAfterHooks(\n root: FeatureBridge,\n bridge: GlobalBridge | FeatureBridge | RuleBridge | ScenarioOutlineBridge,\n localApp: () => App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config).milliseconds;\n bridge.data.scope.hooks.after.forEach((hook) => {\n const hookTimeout = chooseTimeout(\n Timeout.from(chosenTimeout),\n hook.timeout\n ).getTimeout(config).milliseconds;\n afterEach(async () => {\n const testName = expect.getState().currentTestName;\n if (!testName) throw new AutomationError(\"A Scenario must have a title\");\n const scenarioBridge = find(root, testName);\n if (!scenarioBridge) {\n throw new AutomationError(\n `No matching scenario bridge was found matching the test name: ${testName}`\n );\n }\n if (!hook.canExecute(...bridge.data.gherkin.tags)) {\n return;\n }\n const tags = scenarioBridge?.data?.gherkin?.tags ?? [];\n events.after.emitStart({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags]\n });\n\n const report = await hook.execute(localApp(), ...tags);\n events.after.emitEnd({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags],\n status: report.status,\n error: report.error\n });\n if (report.error) {\n const message = `${hook.name}: ${hook.description} failed to execute.`;\n throw new AutomationError(message, { cause: report.error });\n }\n }, hookTimeout);\n });\n}\n\nexport function bootstrapTeardownHooks(\n bridge: GlobalBridge | FeatureBridge | RuleBridge | ScenarioOutlineBridge,\n staticApp: App,\n event: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const tags = bridge.data.gherkin.tags ?? [];\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n bridge.data.scope.hooks.teardown.forEach((hook) => {\n const hookTimeout = chooseTimeout(chosenTimeout, hook.timeout).getTimeout(\n config\n ).milliseconds;\n afterAll(async () => {\n if(!hook.canExecute(...tags)) {\n return;\n }\n event.teardown.emitStart({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags]\n });\n const report = await hook.execute(staticApp, ...tags);\n event.teardown.emitEnd({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags],\n status: report.status,\n error: report.error\n });\n\n if (report.error) {\n const message = `${hook.name}: ${hook.description} failed to execute.`;\n throw new AutomationError(message, { cause: report.error });\n }\n }, hookTimeout);\n });\n}\n","import { NullTimeout, Timeout } from \"@autometa/scopes\";\nimport { Config } from \"@autometa/config\";\nexport function getTimeout(target: Timeout | undefined, config: Config) {\n if (target && !(target instanceof NullTimeout)) {\n return target;\n }\n return Timeout.from(config?.current?.test?.timeout);\n}\n\nexport function chooseTimeout(\n timeout1: Timeout | undefined,\n timeout2: Timeout | undefined\n) {\n if (timeout2 instanceof Timeout && !(timeout2 instanceof NullTimeout)) {\n return {\n getTimeout: getTimeout.bind(null, timeout2)\n };\n }\n if (timeout1 instanceof Timeout && !(timeout1 instanceof NullTimeout)) {\n return {\n getTimeout: getTimeout.bind(null, timeout1)\n };\n }\n return {\n getTimeout: getTimeout.bind(null, Timeout.from(0))\n };\n}\n","import { execute } from \"./executor\";\nexport { execute } from \"./executor\";\nexport { getTimeout } from \"./timeout-selector\";\nexport default execute;\n"],"mappings":"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","names":["NullTimeout","Timeout"]}
1
+ {"version":3,"sources":["../../src/executor.ts","../../src/timeout-selector.ts","../../src/index.ts"],"sourcesContent":["import {\n ExamplesBridge,\n FeatureBridge,\n RuleBridge,\n ScenarioBridge,\n ScenarioOutlineBridge,\n find,\n GlobalBridge\n} from \"@autometa/test-builder\";\nimport {\n describe,\n it,\n expect,\n beforeEach,\n afterEach,\n afterAll,\n beforeAll\n} from \"@jest/globals\";\nimport { type App, AutometaApp, AutometaWorld, getApp } from \"@autometa/app\";\nimport { Class } from \"@autometa/types\";\nimport { AutomationError } from \"@autometa/errors\";\nimport { TestEventEmitter } from \"@autometa/events\";\nimport { Query } from \"@autometa/test-builder\";\nimport { Config } from \"@autometa/config\";\nimport { chooseTimeout } from \"./timeout-selector\";\nimport { GlobalScope, NullTimeout, Timeout } from \"@autometa/scopes\";\nexport function execute(\n { app, world }: { app: Class<AutometaApp>; world: Class<AutometaWorld> },\n global: GlobalScope,\n bridge: FeatureBridge,\n events: TestEventEmitter,\n config: Config\n) {\n const globalBridge = new GlobalBridge(global);\n const featureTitle = bridge.data.scope.title(bridge.data.gherkin);\n const [group, modifier] = getGroupOrModifier(bridge);\n const chosenTimeout = chooseTimeout(\n new NullTimeout(),\n bridge.data.scope.timeout\n ).getTimeout(config);\n beforeAll(() => {\n events.feature.emitStart({\n title: featureTitle,\n path: bridge.data.scope.path,\n modifier,\n tags: [...bridge.data.gherkin.tags]\n });\n }, chosenTimeout.milliseconds);\n group(featureTitle, () => {\n let localApp: App;\n const staticApp: App = getApp(app, world);\n beforeEach(() => {\n localApp = getApp(app, world);\n });\n\n bootstrapSetupHooks(globalBridge, staticApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapSetupHooks(bridge, staticApp, events, [config, chosenTimeout]);\n bootstrapBeforeHooks(bridge, globalBridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapBeforeHooks(bridge, bridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapBackground(bridge, bridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapScenarios(bridge, bridge, () => localApp, staticApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapRules(bridge, () => localApp, staticApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapAfterHooks(bridge, bridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapAfterHooks(bridge, globalBridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapTeardownHooks(globalBridge, staticApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapTeardownHooks(bridge, staticApp, events, [config, chosenTimeout]);\n });\n afterAll(() => {\n const failures = Query.find.failed(bridge);\n const status =\n modifier === \"skip\"\n ? \"SKIPPED\"\n : failures.length === 0\n ? \"PASSED\"\n : \"FAILED\";\n events.feature.emitEnd({\n title: featureTitle,\n modifier,\n tags: [...bridge.data.gherkin.tags],\n status: status\n });\n });\n}\n\nexport function bootstrapBackground(\n root: FeatureBridge,\n bridge: FeatureBridge | RuleBridge,\n localApp: () => App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const background = bridge.background;\n if (!background) return;\n\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config).milliseconds;\n\n const tags = bridge?.data?.gherkin?.tags ?? [];\n if (tags.has(\"@skip\") || tags.has(\"@skipped\")) return;\n beforeEach(async () => {\n const testName = expect.getState().currentTestName;\n if (!testName) throw new AutomationError(\"A Scenario must have a title\");\n const scenarioBridge = find(root, testName);\n if (!scenarioBridge) {\n throw new AutomationError(\n `No matching scenario bridge was found matching the test name: ${testName}`\n );\n }\n const title = background.data.scope.title(background.data.gherkin);\n events.before.emitStart({\n title: title,\n tags: [...tags]\n });\n const steps = background.steps;\n try {\n for (const step of steps) {\n events.step.emitStart({\n title: step.data.scope.title,\n args: step.args,\n expression: step.data.scope.expression.source\n });\n await step.data.scope.execute(\n background.data.gherkin,\n step.data.gherkin,\n localApp()\n );\n events.step.emitEnd({\n expression: step.data.scope.expression.source,\n text: step.data.scope.title,\n args: step.args\n });\n }\n events.before.emitEnd({\n title: title,\n tags: [...tags],\n status: \"PASSED\"\n });\n } catch (e) {\n events.before.emitEnd({\n title: title,\n tags: [...tags],\n status: \"FAILED\",\n error: e as Error\n });\n const message = `${title} failed to execute.\nTest: ${testName}`;\n throw new AutomationError(message, { cause: e as Error });\n }\n }, chosenTimeout);\n}\nexport function bootstrapScenarios(\n root: FeatureBridge,\n bridge: FeatureBridge | RuleBridge | ExamplesBridge,\n localApp: () => App,\n staticApp: App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const { scenarios } = bridge;\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n scenarios.forEach((scenario) => {\n if (isOutline(scenario)) {\n bootstrapScenarioOutline(root, scenario, localApp, staticApp, events, [\n config,\n chosenTimeout\n ]);\n return;\n }\n bootstrapScenario(scenario, localApp, events, [config, chosenTimeout]);\n });\n}\n\nexport function bootstrapScenario(\n bridge: ScenarioBridge,\n localApp: () => App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const { data } = bridge;\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n const scenarioName = data.scope.title(data.gherkin);\n const test = getTestOrModifier(bridge);\n test(\n scenarioName,\n async () => {\n events.scenario.emitStart({\n title: bridge.title,\n tags: bridge.tags\n });\n try {\n for (const step of bridge.steps) {\n events.step.emitStart({\n title: step.data.scope.title,\n args: step.args,\n expression: step.expressionText\n });\n await step.data.scope.execute(\n bridge.data.gherkin,\n step.data.gherkin,\n localApp()\n );\n events.step.emitEnd({\n expression: step.expressionText,\n text: step.data.scope.title,\n args: step.args\n });\n }\n bridge.report = { passed: true };\n events.scenario.emitEnd({\n title: bridge.title,\n tags: bridge.tags,\n status: \"PASSED\"\n });\n } catch (e) {\n const error = e as Error;\n bridge.report = { passed: false, error: e as Error };\n events.scenario.emitEnd({\n title: bridge.title,\n tags: bridge.tags,\n status: \"FAILED\",\n error: error\n });\n const message = `${bridge.title} failed because an error was encountered while executing a step`;\n const meta = { cause: error };\n throw new AutomationError(message, meta);\n }\n },\n chosenTimeout.milliseconds\n );\n}\n\nfunction isOutline(\n data: ScenarioBridge | ScenarioOutlineBridge\n): data is ScenarioOutlineBridge {\n return data instanceof ScenarioOutlineBridge;\n}\n\nexport function bootstrapScenarioOutline(\n root: FeatureBridge,\n bridge: ScenarioOutlineBridge,\n localApp: () => App,\n staticApp: App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const {\n data: { scope, gherkin },\n examples\n } = bridge;\n const title = scope.title(gherkin);\n const [group, modifier] = getGroupOrModifier(bridge);\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config).milliseconds;\n group(title, () => {\n beforeAll(() => {\n events.scenarioOutline.emitStart({\n title,\n modifier,\n tags: [...gherkin.tags]\n });\n });\n bootstrapSetupHooks(bridge, staticApp, events, [config, timeout]);\n bootstrapBeforeHooks(root, bridge, localApp, events, [config, timeout]);\n examples.forEach((example) => {\n bootstrapExamples(root, example, localApp, staticApp, events, [\n config,\n timeout\n ]);\n });\n bootstrapAfterHooks(root, bridge, localApp, events, [config, timeout]);\n bootstrapTeardownHooks(bridge, staticApp, events, [config, timeout]);\n afterAll(() => {\n const failures = Query.find.failed(bridge);\n const status =\n modifier === \"skip\"\n ? \"SKIPPED\"\n : failures.length === 0\n ? \"PASSED\"\n : \"FAILED\";\n events.scenarioOutline.emitEnd({\n title,\n modifier,\n tags: [...gherkin.tags],\n status: status\n });\n }, chosenTimeout);\n });\n}\nexport function bootstrapExamples(\n root: FeatureBridge,\n example: ExamplesBridge,\n localApp: () => App,\n staticApp: App,\n events: TestEventEmitter,\n timeout: [Config, Timeout]\n) {\n const title = example.data.scope.title(example.data.gherkin);\n const [group] = getGroupOrModifier(example);\n group(title, () => {\n bootstrapScenarios(root, example, localApp, staticApp, events, timeout);\n });\n}\n\nexport function bootstrapRules(\n bridge: FeatureBridge,\n localApp: () => App,\n staticApp: App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n bridge.rules.forEach((rule) => {\n const ruleTimeout = chooseTimeout(\n chosenTimeout,\n rule.data.scope.timeout\n ).getTimeout(config);\n const transferTimeout: [Config, Timeout] = [config, ruleTimeout];\n const { data } = rule;\n const ruleName = data.scope.title(data.gherkin);\n const [group, modifier] = getGroupOrModifier(bridge);\n\n group(ruleName, () => {\n beforeAll(() => {\n events.rule.emitStart({\n title: ruleName,\n modifier,\n tags: [...data.gherkin.tags]\n });\n });\n bootstrapSetupHooks(rule, staticApp, events, transferTimeout);\n bootstrapBeforeHooks(bridge, rule, localApp, events, transferTimeout);\n bootstrapBackground(bridge, rule, localApp, events, transferTimeout);\n bootstrapScenarios(\n bridge,\n rule,\n localApp,\n staticApp,\n events,\n transferTimeout\n );\n bootstrapAfterHooks(bridge, rule, localApp, events, transferTimeout);\n bootstrapTeardownHooks(rule, staticApp, events, transferTimeout);\n\n afterAll(() => {\n const failures = Query.find.failed(rule);\n const status =\n modifier === \"skip\"\n ? \"SKIPPED\"\n : failures.length === 0\n ? \"PASSED\"\n : \"FAILED\";\n events.rule.emitEnd({\n title: ruleName,\n modifier,\n tags: [...data.gherkin.tags],\n status: status\n });\n }, ruleTimeout.milliseconds);\n });\n });\n}\n\nfunction getGroupOrModifier({\n data\n}: RuleBridge | FeatureBridge | ScenarioOutlineBridge | ExamplesBridge) {\n if (data.gherkin.tags?.has(\"@skip\") || data.gherkin.tags?.has(\"@skipped\")) {\n return [describe.skip, \"skip\"] as const;\n }\n if (data.gherkin.tags?.has(\"@only\")) {\n return [describe.only, \"only\"] as const;\n }\n return [describe, undefined] as const;\n}\n\nfunction getTestOrModifier({ data }: ScenarioBridge) {\n if (data.gherkin.tags?.has(\"@skip\") || data.gherkin.tags?.has(\"@skipped\")) {\n return it.skip;\n }\n if (data.gherkin.tags?.has(\"@only\")) {\n return it.only;\n }\n return it;\n}\n\nexport function bootstrapBeforeHooks(\n root: FeatureBridge,\n bridge: GlobalBridge | FeatureBridge | RuleBridge | ScenarioOutlineBridge,\n localApp: () => App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n\n bridge.data.scope.hooks.before.forEach((hook) => {\n const hookTimeout = chooseTimeout(chosenTimeout, hook.timeout).getTimeout(\n config\n ).milliseconds;\n\n beforeEach(async () => {\n const testName = expect.getState().currentTestName;\n if (!testName) throw new AutomationError(\"A Scenario must have a title\");\n const scenarioBridge = find(root, testName);\n if (!scenarioBridge) {\n throw new AutomationError(\n `No matching scenario was found matching the test name: ${testName}`\n );\n }\n if (!hook.canExecute(...bridge.data.gherkin.tags)) {\n return;\n }\n const tags = scenarioBridge?.data?.gherkin?.tags ?? [];\n events.before.emitStart({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags]\n });\n const report = await hook.execute(localApp(), ...tags);\n events.before.emitEnd({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags],\n status: report.status,\n error: report.error\n });\n if (report.error) {\n const message = `${hook.name}: ${hook.description} failed to execute.`;\n throw new AutomationError(message, { cause: report.error });\n }\n }, hookTimeout);\n });\n}\nexport function bootstrapSetupHooks(\n bridge: GlobalBridge | FeatureBridge | RuleBridge | ScenarioOutlineBridge,\n staticApp: App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config).milliseconds;\n const setups = bridge.data.scope.hooks.setup;\n setups.forEach((hook) => {\n const hookTimeout = chooseTimeout(\n Timeout.from(chosenTimeout),\n hook.timeout\n ).getTimeout(config).milliseconds;\n const tags = bridge.data.gherkin.tags ?? [];\n\n beforeAll(async () => {\n if (!hook.canExecute(...tags)) {\n return;\n }\n events.setup.emitStart({\n title: `${hook.name}: ${hook.description}`\n });\n const report = await hook.execute(staticApp, ...tags);\n\n events.setup.emitEnd({\n title: `${hook.name}: ${hook.description}`,\n status: report.status,\n error: report.error\n });\n\n if (report.error) {\n const message = `${hook.name}: ${hook.description} failed to execute.`;\n throw new AutomationError(message, { cause: report.error });\n }\n }, hookTimeout);\n });\n}\n\nexport function bootstrapAfterHooks(\n root: FeatureBridge,\n bridge: GlobalBridge | FeatureBridge | RuleBridge | ScenarioOutlineBridge,\n localApp: () => App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config).milliseconds;\n bridge.data.scope.hooks.after.forEach((hook) => {\n const hookTimeout = chooseTimeout(\n Timeout.from(chosenTimeout),\n hook.timeout\n ).getTimeout(config).milliseconds;\n afterEach(async () => {\n const testName = expect.getState().currentTestName;\n if (!testName) throw new AutomationError(\"A Scenario must have a title\");\n const scenarioBridge = find(root, testName);\n if (!scenarioBridge) {\n throw new AutomationError(\n `No scenario was found matching the test path: ${testName}`\n );\n }\n if (!hook.canExecute(...bridge.data.gherkin.tags)) {\n return;\n }\n const tags = scenarioBridge?.data?.gherkin?.tags ?? [];\n events.after.emitStart({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags]\n });\n\n const report = await hook.execute(localApp(), ...tags);\n events.after.emitEnd({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags],\n status: report.status,\n error: report.error\n });\n if (report.error) {\n const message = `${hook.name}: ${hook.description} failed to execute.`;\n throw new AutomationError(message, { cause: report.error });\n }\n }, hookTimeout);\n });\n}\n\nexport function bootstrapTeardownHooks(\n bridge: GlobalBridge | FeatureBridge | RuleBridge | ScenarioOutlineBridge,\n staticApp: App,\n event: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const tags = bridge.data.gherkin.tags ?? [];\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n bridge.data.scope.hooks.teardown.forEach((hook) => {\n const hookTimeout = chooseTimeout(chosenTimeout, hook.timeout).getTimeout(\n config\n ).milliseconds;\n afterAll(async () => {\n if (!hook.canExecute(...tags)) {\n return;\n }\n event.teardown.emitStart({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags]\n });\n const report = await hook.execute(staticApp, ...tags);\n event.teardown.emitEnd({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags],\n status: report.status,\n error: report.error\n });\n\n if (report.error) {\n const message = `${hook.name}: ${hook.description} failed to execute.`;\n throw new AutomationError(message, { cause: report.error });\n }\n }, hookTimeout);\n });\n}\n","import { NullTimeout, Timeout } from \"@autometa/scopes\";\nimport { Config } from \"@autometa/config\";\nexport function getTimeout(target: Timeout | undefined, config: Config) {\n if (target && !(target instanceof NullTimeout)) {\n return target;\n }\n return Timeout.from(config?.current?.test?.timeout);\n}\n\nexport function chooseTimeout(\n timeout1: Timeout | undefined,\n timeout2: Timeout | undefined\n) {\n if (timeout2 instanceof Timeout && !(timeout2 instanceof NullTimeout)) {\n return {\n getTimeout: getTimeout.bind(null, timeout2)\n };\n }\n if (timeout1 instanceof Timeout && !(timeout1 instanceof NullTimeout)) {\n return {\n getTimeout: getTimeout.bind(null, timeout1)\n };\n }\n return {\n getTimeout: getTimeout.bind(null, Timeout.from(0))\n };\n}\n","import { execute } from \"./executor\";\nexport { execute } from \"./executor\";\nexport { getTimeout } from \"./timeout-selector\";\nexport default execute;\n"],"mappings":"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","names":["NullTimeout","Timeout"]}
package/dist/index.js CHANGED
@@ -160,11 +160,21 @@ function bootstrapBackground(root, bridge, localApp, events, [config, timeout])
160
160
  const steps = background.steps;
161
161
  try {
162
162
  for (const step of steps) {
163
+ events.step.emitStart({
164
+ title: step.data.scope.title,
165
+ args: step.args,
166
+ expression: step.data.scope.expression.source
167
+ });
163
168
  await step.data.scope.execute(
164
169
  background.data.gherkin,
165
170
  step.data.gherkin,
166
171
  localApp()
167
172
  );
173
+ events.step.emitEnd({
174
+ expression: step.data.scope.expression.source,
175
+ text: step.data.scope.title,
176
+ args: step.args
177
+ });
168
178
  }
169
179
  events.before.emitEnd({
170
180
  title,
@@ -213,33 +223,45 @@ function bootstrapScenario(bridge, localApp, events, [config, timeout]) {
213
223
  scenarioName,
214
224
  async () => {
215
225
  events.scenario.emitStart({
216
- title: scenarioName,
217
- tags: [...data.gherkin.tags]
226
+ title: bridge.title,
227
+ tags: bridge.tags
218
228
  });
219
229
  try {
220
230
  for (const step of bridge.steps) {
231
+ events.step.emitStart({
232
+ title: step.data.scope.title,
233
+ args: step.args,
234
+ expression: step.expressionText
235
+ });
221
236
  await step.data.scope.execute(
222
237
  bridge.data.gherkin,
223
238
  step.data.gherkin,
224
239
  localApp()
225
240
  );
241
+ events.step.emitEnd({
242
+ expression: step.expressionText,
243
+ text: step.data.scope.title,
244
+ args: step.args
245
+ });
226
246
  }
227
247
  bridge.report = { passed: true };
228
248
  events.scenario.emitEnd({
229
- title: scenarioName,
230
- tags: [...data.gherkin.tags],
249
+ title: bridge.title,
250
+ tags: bridge.tags,
231
251
  status: "PASSED"
232
252
  });
233
253
  } catch (e) {
254
+ const error = e;
255
+ bridge.report = { passed: false, error: e };
234
256
  events.scenario.emitEnd({
235
- title: scenarioName,
236
- tags: [...data.gherkin.tags],
257
+ title: bridge.title,
258
+ tags: bridge.tags,
237
259
  status: "FAILED",
238
- error: e
260
+ error
239
261
  });
240
- bridge.report = { passed: false, error: e };
241
- const message = `${scenarioName} failed to execute.`;
242
- throw new import_errors.AutomationError(message, { cause: e });
262
+ const message = `${bridge.title} failed because an error was encountered while executing a step`;
263
+ const meta = { cause: error };
264
+ throw new import_errors.AutomationError(message, meta);
243
265
  }
244
266
  },
245
267
  chosenTimeout.milliseconds
@@ -410,7 +432,8 @@ function bootstrapSetupHooks(bridge, staticApp, events, [config, timeout]) {
410
432
  timeout,
411
433
  bridge.data.scope.timeout
412
434
  ).getTimeout(config).milliseconds;
413
- bridge.data.scope.hooks.setup.forEach((hook) => {
435
+ const setups = bridge.data.scope.hooks.setup;
436
+ setups.forEach((hook) => {
414
437
  const hookTimeout = chooseTimeout(
415
438
  import_scopes2.Timeout.from(chosenTimeout),
416
439
  hook.timeout
@@ -453,7 +476,7 @@ function bootstrapAfterHooks(root, bridge, localApp, events, [config, timeout])
453
476
  const scenarioBridge = (0, import_test_builder.find)(root, testName);
454
477
  if (!scenarioBridge) {
455
478
  throw new import_errors.AutomationError(
456
- `No matching scenario bridge was found matching the test name: ${testName}`
479
+ `No scenario was found matching the test path: ${testName}`
457
480
  );
458
481
  }
459
482
  if (!hook.canExecute(...bridge.data.gherkin.tags)) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/executor.ts","../src/timeout-selector.ts"],"sourcesContent":["import { execute } from \"./executor\";\nexport { execute } from \"./executor\";\nexport { getTimeout } from \"./timeout-selector\";\nexport default execute;\n","import {\n ExamplesBridge,\n FeatureBridge,\n RuleBridge,\n ScenarioBridge,\n ScenarioOutlineBridge,\n find,\n GlobalBridge\n} from \"@autometa/test-builder\";\nimport {\n describe,\n it,\n expect,\n beforeEach,\n afterEach,\n afterAll,\n beforeAll\n} from \"@jest/globals\";\nimport { type App, AutometaApp, AutometaWorld, getApp } from \"@autometa/app\";\nimport { Class } from \"@autometa/types\";\nimport { AutomationError } from \"@autometa/errors\";\nimport { TestEventEmitter } from \"@autometa/events\";\nimport { Query } from \"@autometa/test-builder\";\nimport { Config } from \"@autometa/config\";\nimport { chooseTimeout } from \"./timeout-selector\";\nimport { GlobalScope, NullTimeout, Timeout } from \"@autometa/scopes\";\nexport function execute(\n { app, world }: { app: Class<AutometaApp>; world: Class<AutometaWorld> },\n global: GlobalScope,\n bridge: FeatureBridge,\n events: TestEventEmitter,\n config: Config\n) {\n const globalBridge = new GlobalBridge(global);\n const featureTitle = bridge.data.scope.title(bridge.data.gherkin);\n const [group, modifier] = getGroupOrModifier(bridge);\n const chosenTimeout = chooseTimeout(\n new NullTimeout(),\n bridge.data.scope.timeout\n ).getTimeout(config);\n beforeAll(() => {\n events.feature.emitStart({\n title: featureTitle,\n path: bridge.data.scope.path,\n modifier,\n tags: [...bridge.data.gherkin.tags]\n });\n }, chosenTimeout.milliseconds);\n group(featureTitle, () => {\n let localApp: App;\n const staticApp: App = getApp(app, world);\n beforeEach(() => {\n localApp = getApp(app, world);\n });\n\n bootstrapSetupHooks(globalBridge, staticApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapSetupHooks(bridge, staticApp, events, [config, chosenTimeout]);\n bootstrapBeforeHooks(bridge, globalBridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapBeforeHooks(bridge, bridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapBackground(bridge, bridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapScenarios(bridge, bridge, () => localApp, staticApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapRules(bridge, () => localApp, staticApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapAfterHooks(bridge, bridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapAfterHooks(bridge, globalBridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapTeardownHooks(globalBridge, staticApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapTeardownHooks(bridge, staticApp, events, [config, chosenTimeout]);\n });\n afterAll(() => {\n const failures = Query.find.failed(bridge);\n const status =\n modifier === \"skip\"\n ? \"SKIPPED\"\n : failures.length === 0\n ? \"PASSED\"\n : \"FAILED\";\n events.feature.emitEnd({\n title: featureTitle,\n modifier,\n tags: [...bridge.data.gherkin.tags],\n status: status\n });\n });\n}\n\nexport function bootstrapBackground(\n root: FeatureBridge,\n bridge: FeatureBridge | RuleBridge,\n localApp: () => App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const background = bridge.background;\n if (!background) return;\n\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config).milliseconds;\n\n const tags = bridge?.data?.gherkin?.tags ?? [];\n if (tags.has(\"@skip\") || tags.has(\"@skipped\")) return;\n beforeEach(async () => {\n const testName = expect.getState().currentTestName;\n if (!testName) throw new AutomationError(\"A Scenario must have a title\");\n const scenarioBridge = find(root, testName);\n if (!scenarioBridge) {\n throw new AutomationError(\n `No matching scenario bridge was found matching the test name: ${testName}`\n );\n }\n const title = background.data.scope.title(background.data.gherkin);\n events.before.emitStart({\n title: title,\n tags: [...tags]\n });\n const steps = background.steps;\n try {\n for (const step of steps) {\n await step.data.scope.execute(\n background.data.gherkin,\n step.data.gherkin,\n localApp()\n );\n }\n events.before.emitEnd({\n title: title,\n tags: [...tags],\n status: \"PASSED\"\n });\n } catch (e) {\n events.before.emitEnd({\n title: title,\n tags: [...tags],\n status: \"FAILED\",\n error: e as Error\n });\n const message = `${title} failed to execute.\nTest: ${testName}`;\n throw new AutomationError(message, { cause: e as Error });\n }\n }, chosenTimeout);\n}\nexport function bootstrapScenarios(\n root: FeatureBridge,\n bridge: FeatureBridge | RuleBridge | ExamplesBridge,\n localApp: () => App,\n staticApp: App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const { scenarios } = bridge;\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n scenarios.forEach((scenario) => {\n if (isOutline(scenario)) {\n bootstrapScenarioOutline(root, scenario, localApp, staticApp, events, [\n config,\n chosenTimeout\n ]);\n return;\n }\n bootstrapScenario(scenario, localApp, events, [config, chosenTimeout]);\n });\n}\n\nexport function bootstrapScenario(\n bridge: ScenarioBridge,\n localApp: () => App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const { data } = bridge;\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n const scenarioName = data.scope.title(data.gherkin);\n const test = getTestOrModifier(bridge);\n test(\n scenarioName,\n async () => {\n events.scenario.emitStart({\n title: scenarioName,\n tags: [...data.gherkin.tags]\n });\n try {\n for (const step of bridge.steps) {\n await step.data.scope.execute(\n bridge.data.gherkin,\n step.data.gherkin,\n localApp()\n );\n }\n bridge.report = { passed: true };\n events.scenario.emitEnd({\n title: scenarioName,\n tags: [...data.gherkin.tags],\n status: \"PASSED\"\n });\n } catch (e) {\n events.scenario.emitEnd({\n title: scenarioName,\n tags: [...data.gherkin.tags],\n status: \"FAILED\",\n error: e as Error\n });\n bridge.report = { passed: false, error: e as Error };\n const message = `${scenarioName} failed to execute.`;\n throw new AutomationError(message, { cause: e as Error });\n }\n },\n chosenTimeout.milliseconds\n );\n}\n\nfunction isOutline(\n data: ScenarioBridge | ScenarioOutlineBridge\n): data is ScenarioOutlineBridge {\n return data instanceof ScenarioOutlineBridge;\n}\n\nexport function bootstrapScenarioOutline(\n root: FeatureBridge,\n bridge: ScenarioOutlineBridge,\n localApp: () => App,\n staticApp: App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const {\n data: { scope, gherkin },\n examples\n } = bridge;\n const title = scope.title(gherkin);\n const [group, modifier] = getGroupOrModifier(bridge);\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config).milliseconds;\n group(title, () => {\n beforeAll(() => {\n events.scenarioOutline.emitStart({\n title,\n modifier,\n tags: [...gherkin.tags]\n });\n });\n bootstrapSetupHooks(bridge, staticApp, events, [config, timeout]);\n bootstrapBeforeHooks(root, bridge, localApp, events, [config, timeout]);\n examples.forEach((example) => {\n bootstrapExamples(root, example, localApp, staticApp, events, [\n config,\n timeout\n ]);\n });\n bootstrapAfterHooks(root, bridge, localApp, events, [config, timeout]);\n bootstrapTeardownHooks(bridge, staticApp, events, [config, timeout]);\n afterAll(() => {\n const failures = Query.find.failed(bridge);\n const status =\n modifier === \"skip\"\n ? \"SKIPPED\"\n : failures.length === 0\n ? \"PASSED\"\n : \"FAILED\";\n events.scenarioOutline.emitEnd({\n title,\n modifier,\n tags: [...gherkin.tags],\n status: status\n });\n }, chosenTimeout);\n });\n}\nexport function bootstrapExamples(\n root: FeatureBridge,\n example: ExamplesBridge,\n localApp: () => App,\n staticApp: App,\n events: TestEventEmitter,\n timeout: [Config, Timeout]\n) {\n const title = example.data.scope.title(example.data.gherkin);\n const [group] = getGroupOrModifier(example);\n group(title, () => {\n bootstrapScenarios(root, example, localApp, staticApp, events, timeout);\n });\n}\n\nexport function bootstrapRules(\n bridge: FeatureBridge,\n localApp: () => App,\n staticApp: App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n bridge.rules.forEach((rule) => {\n const ruleTimeout = chooseTimeout(\n chosenTimeout,\n rule.data.scope.timeout\n ).getTimeout(config);\n const transferTimeout: [Config, Timeout] = [config, ruleTimeout];\n const { data } = rule;\n const ruleName = data.scope.title(data.gherkin);\n const [group, modifier] = getGroupOrModifier(bridge);\n\n group(ruleName, () => {\n beforeAll(() => {\n events.rule.emitStart({\n title: ruleName,\n modifier,\n tags: [...data.gherkin.tags]\n });\n });\n bootstrapSetupHooks(rule, staticApp, events, transferTimeout);\n bootstrapBeforeHooks(bridge, rule, localApp, events, transferTimeout);\n bootstrapBackground(bridge, rule, localApp, events, transferTimeout);\n bootstrapScenarios(\n bridge,\n rule,\n localApp,\n staticApp,\n events,\n transferTimeout\n );\n bootstrapAfterHooks(bridge, rule, localApp, events, transferTimeout);\n bootstrapTeardownHooks(rule, staticApp, events, transferTimeout);\n\n afterAll(() => {\n const failures = Query.find.failed(rule);\n const status =\n modifier === \"skip\"\n ? \"SKIPPED\"\n : failures.length === 0\n ? \"PASSED\"\n : \"FAILED\";\n events.rule.emitEnd({\n title: ruleName,\n modifier,\n tags: [...data.gherkin.tags],\n status: status\n });\n }, ruleTimeout.milliseconds);\n });\n });\n}\n\nfunction getGroupOrModifier({\n data\n}: RuleBridge | FeatureBridge | ScenarioOutlineBridge | ExamplesBridge) {\n if (data.gherkin.tags?.has(\"@skip\") || data.gherkin.tags?.has(\"@skipped\")) {\n return [describe.skip, \"skip\"] as const;\n }\n if (data.gherkin.tags?.has(\"@only\")) {\n return [describe.only, \"only\"] as const;\n }\n return [describe, undefined] as const;\n}\n\nfunction getTestOrModifier({ data }: ScenarioBridge) {\n if (data.gherkin.tags?.has(\"@skip\") || data.gherkin.tags?.has(\"@skipped\")) {\n return it.skip;\n }\n if (data.gherkin.tags?.has(\"@only\")) {\n return it.only;\n }\n return it;\n}\n\nexport function bootstrapBeforeHooks(\n root: FeatureBridge,\n bridge: GlobalBridge | FeatureBridge | RuleBridge | ScenarioOutlineBridge,\n localApp: () => App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n\n bridge.data.scope.hooks.before.forEach((hook) => {\n const hookTimeout = chooseTimeout(chosenTimeout, hook.timeout).getTimeout(\n config\n ).milliseconds;\n\n beforeEach(async () => {\n const testName = expect.getState().currentTestName;\n if (!testName) throw new AutomationError(\"A Scenario must have a title\");\n const scenarioBridge = find(root, testName);\n if (!scenarioBridge) {\n throw new AutomationError(\n `No matching scenario was found matching the test name: ${testName}`\n );\n }\n if (!hook.canExecute(...bridge.data.gherkin.tags)) {\n return;\n }\n const tags = scenarioBridge?.data?.gherkin?.tags ?? [];\n events.before.emitStart({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags]\n });\n const report = await hook.execute(localApp(), ...tags);\n events.before.emitEnd({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags],\n status: report.status,\n error: report.error\n });\n if (report.error) {\n const message = `${hook.name}: ${hook.description} failed to execute.`;\n throw new AutomationError(message, { cause: report.error });\n }\n }, hookTimeout);\n });\n}\nexport function bootstrapSetupHooks(\n bridge: GlobalBridge | FeatureBridge | RuleBridge | ScenarioOutlineBridge,\n staticApp: App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config).milliseconds;\n\n bridge.data.scope.hooks.setup.forEach((hook) => {\n const hookTimeout = chooseTimeout(\n Timeout.from(chosenTimeout),\n hook.timeout\n ).getTimeout(config).milliseconds;\n const tags = bridge.data.gherkin.tags ?? [];\n\n beforeAll(async () => {\n if (!hook.canExecute(...tags)) {\n return;\n }\n events.setup.emitStart({\n title: `${hook.name}: ${hook.description}`\n });\n const report = await hook.execute(staticApp, ...tags);\n\n events.setup.emitEnd({\n title: `${hook.name}: ${hook.description}`,\n status: report.status,\n error: report.error\n });\n\n if (report.error) {\n const message = `${hook.name}: ${hook.description} failed to execute.`;\n throw new AutomationError(message, { cause: report.error });\n }\n }, hookTimeout);\n });\n}\n\nexport function bootstrapAfterHooks(\n root: FeatureBridge,\n bridge: GlobalBridge | FeatureBridge | RuleBridge | ScenarioOutlineBridge,\n localApp: () => App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config).milliseconds;\n bridge.data.scope.hooks.after.forEach((hook) => {\n const hookTimeout = chooseTimeout(\n Timeout.from(chosenTimeout),\n hook.timeout\n ).getTimeout(config).milliseconds;\n afterEach(async () => {\n const testName = expect.getState().currentTestName;\n if (!testName) throw new AutomationError(\"A Scenario must have a title\");\n const scenarioBridge = find(root, testName);\n if (!scenarioBridge) {\n throw new AutomationError(\n `No matching scenario bridge was found matching the test name: ${testName}`\n );\n }\n if (!hook.canExecute(...bridge.data.gherkin.tags)) {\n return;\n }\n const tags = scenarioBridge?.data?.gherkin?.tags ?? [];\n events.after.emitStart({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags]\n });\n\n const report = await hook.execute(localApp(), ...tags);\n events.after.emitEnd({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags],\n status: report.status,\n error: report.error\n });\n if (report.error) {\n const message = `${hook.name}: ${hook.description} failed to execute.`;\n throw new AutomationError(message, { cause: report.error });\n }\n }, hookTimeout);\n });\n}\n\nexport function bootstrapTeardownHooks(\n bridge: GlobalBridge | FeatureBridge | RuleBridge | ScenarioOutlineBridge,\n staticApp: App,\n event: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const tags = bridge.data.gherkin.tags ?? [];\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n bridge.data.scope.hooks.teardown.forEach((hook) => {\n const hookTimeout = chooseTimeout(chosenTimeout, hook.timeout).getTimeout(\n config\n ).milliseconds;\n afterAll(async () => {\n if(!hook.canExecute(...tags)) {\n return;\n }\n event.teardown.emitStart({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags]\n });\n const report = await hook.execute(staticApp, ...tags);\n event.teardown.emitEnd({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags],\n status: report.status,\n error: report.error\n });\n\n if (report.error) {\n const message = `${hook.name}: ${hook.description} failed to execute.`;\n throw new AutomationError(message, { cause: report.error });\n }\n }, hookTimeout);\n });\n}\n","import { NullTimeout, Timeout } from \"@autometa/scopes\";\nimport { Config } from \"@autometa/config\";\nexport function getTimeout(target: Timeout | undefined, config: Config) {\n if (target && !(target instanceof NullTimeout)) {\n return target;\n }\n return Timeout.from(config?.current?.test?.timeout);\n}\n\nexport function chooseTimeout(\n timeout1: Timeout | undefined,\n timeout2: Timeout | undefined\n) {\n if (timeout2 instanceof Timeout && !(timeout2 instanceof NullTimeout)) {\n return {\n getTimeout: getTimeout.bind(null, timeout2)\n };\n }\n if (timeout1 instanceof Timeout && !(timeout1 instanceof NullTimeout)) {\n return {\n getTimeout: getTimeout.bind(null, timeout1)\n };\n }\n return {\n getTimeout: getTimeout.bind(null, Timeout.from(0))\n };\n}\n"],"mappings":"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","names":["import_test_builder","import_scopes"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/executor.ts","../src/timeout-selector.ts"],"sourcesContent":["import { execute } from \"./executor\";\nexport { execute } from \"./executor\";\nexport { getTimeout } from \"./timeout-selector\";\nexport default execute;\n","import {\n ExamplesBridge,\n FeatureBridge,\n RuleBridge,\n ScenarioBridge,\n ScenarioOutlineBridge,\n find,\n GlobalBridge\n} from \"@autometa/test-builder\";\nimport {\n describe,\n it,\n expect,\n beforeEach,\n afterEach,\n afterAll,\n beforeAll\n} from \"@jest/globals\";\nimport { type App, AutometaApp, AutometaWorld, getApp } from \"@autometa/app\";\nimport { Class } from \"@autometa/types\";\nimport { AutomationError } from \"@autometa/errors\";\nimport { TestEventEmitter } from \"@autometa/events\";\nimport { Query } from \"@autometa/test-builder\";\nimport { Config } from \"@autometa/config\";\nimport { chooseTimeout } from \"./timeout-selector\";\nimport { GlobalScope, NullTimeout, Timeout } from \"@autometa/scopes\";\nexport function execute(\n { app, world }: { app: Class<AutometaApp>; world: Class<AutometaWorld> },\n global: GlobalScope,\n bridge: FeatureBridge,\n events: TestEventEmitter,\n config: Config\n) {\n const globalBridge = new GlobalBridge(global);\n const featureTitle = bridge.data.scope.title(bridge.data.gherkin);\n const [group, modifier] = getGroupOrModifier(bridge);\n const chosenTimeout = chooseTimeout(\n new NullTimeout(),\n bridge.data.scope.timeout\n ).getTimeout(config);\n beforeAll(() => {\n events.feature.emitStart({\n title: featureTitle,\n path: bridge.data.scope.path,\n modifier,\n tags: [...bridge.data.gherkin.tags]\n });\n }, chosenTimeout.milliseconds);\n group(featureTitle, () => {\n let localApp: App;\n const staticApp: App = getApp(app, world);\n beforeEach(() => {\n localApp = getApp(app, world);\n });\n\n bootstrapSetupHooks(globalBridge, staticApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapSetupHooks(bridge, staticApp, events, [config, chosenTimeout]);\n bootstrapBeforeHooks(bridge, globalBridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapBeforeHooks(bridge, bridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapBackground(bridge, bridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapScenarios(bridge, bridge, () => localApp, staticApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapRules(bridge, () => localApp, staticApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapAfterHooks(bridge, bridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapAfterHooks(bridge, globalBridge, () => localApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapTeardownHooks(globalBridge, staticApp, events, [\n config,\n chosenTimeout\n ]);\n bootstrapTeardownHooks(bridge, staticApp, events, [config, chosenTimeout]);\n });\n afterAll(() => {\n const failures = Query.find.failed(bridge);\n const status =\n modifier === \"skip\"\n ? \"SKIPPED\"\n : failures.length === 0\n ? \"PASSED\"\n : \"FAILED\";\n events.feature.emitEnd({\n title: featureTitle,\n modifier,\n tags: [...bridge.data.gherkin.tags],\n status: status\n });\n });\n}\n\nexport function bootstrapBackground(\n root: FeatureBridge,\n bridge: FeatureBridge | RuleBridge,\n localApp: () => App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const background = bridge.background;\n if (!background) return;\n\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config).milliseconds;\n\n const tags = bridge?.data?.gherkin?.tags ?? [];\n if (tags.has(\"@skip\") || tags.has(\"@skipped\")) return;\n beforeEach(async () => {\n const testName = expect.getState().currentTestName;\n if (!testName) throw new AutomationError(\"A Scenario must have a title\");\n const scenarioBridge = find(root, testName);\n if (!scenarioBridge) {\n throw new AutomationError(\n `No matching scenario bridge was found matching the test name: ${testName}`\n );\n }\n const title = background.data.scope.title(background.data.gherkin);\n events.before.emitStart({\n title: title,\n tags: [...tags]\n });\n const steps = background.steps;\n try {\n for (const step of steps) {\n events.step.emitStart({\n title: step.data.scope.title,\n args: step.args,\n expression: step.data.scope.expression.source\n });\n await step.data.scope.execute(\n background.data.gherkin,\n step.data.gherkin,\n localApp()\n );\n events.step.emitEnd({\n expression: step.data.scope.expression.source,\n text: step.data.scope.title,\n args: step.args\n });\n }\n events.before.emitEnd({\n title: title,\n tags: [...tags],\n status: \"PASSED\"\n });\n } catch (e) {\n events.before.emitEnd({\n title: title,\n tags: [...tags],\n status: \"FAILED\",\n error: e as Error\n });\n const message = `${title} failed to execute.\nTest: ${testName}`;\n throw new AutomationError(message, { cause: e as Error });\n }\n }, chosenTimeout);\n}\nexport function bootstrapScenarios(\n root: FeatureBridge,\n bridge: FeatureBridge | RuleBridge | ExamplesBridge,\n localApp: () => App,\n staticApp: App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const { scenarios } = bridge;\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n scenarios.forEach((scenario) => {\n if (isOutline(scenario)) {\n bootstrapScenarioOutline(root, scenario, localApp, staticApp, events, [\n config,\n chosenTimeout\n ]);\n return;\n }\n bootstrapScenario(scenario, localApp, events, [config, chosenTimeout]);\n });\n}\n\nexport function bootstrapScenario(\n bridge: ScenarioBridge,\n localApp: () => App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const { data } = bridge;\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n const scenarioName = data.scope.title(data.gherkin);\n const test = getTestOrModifier(bridge);\n test(\n scenarioName,\n async () => {\n events.scenario.emitStart({\n title: bridge.title,\n tags: bridge.tags\n });\n try {\n for (const step of bridge.steps) {\n events.step.emitStart({\n title: step.data.scope.title,\n args: step.args,\n expression: step.expressionText\n });\n await step.data.scope.execute(\n bridge.data.gherkin,\n step.data.gherkin,\n localApp()\n );\n events.step.emitEnd({\n expression: step.expressionText,\n text: step.data.scope.title,\n args: step.args\n });\n }\n bridge.report = { passed: true };\n events.scenario.emitEnd({\n title: bridge.title,\n tags: bridge.tags,\n status: \"PASSED\"\n });\n } catch (e) {\n const error = e as Error;\n bridge.report = { passed: false, error: e as Error };\n events.scenario.emitEnd({\n title: bridge.title,\n tags: bridge.tags,\n status: \"FAILED\",\n error: error\n });\n const message = `${bridge.title} failed because an error was encountered while executing a step`;\n const meta = { cause: error };\n throw new AutomationError(message, meta);\n }\n },\n chosenTimeout.milliseconds\n );\n}\n\nfunction isOutline(\n data: ScenarioBridge | ScenarioOutlineBridge\n): data is ScenarioOutlineBridge {\n return data instanceof ScenarioOutlineBridge;\n}\n\nexport function bootstrapScenarioOutline(\n root: FeatureBridge,\n bridge: ScenarioOutlineBridge,\n localApp: () => App,\n staticApp: App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const {\n data: { scope, gherkin },\n examples\n } = bridge;\n const title = scope.title(gherkin);\n const [group, modifier] = getGroupOrModifier(bridge);\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config).milliseconds;\n group(title, () => {\n beforeAll(() => {\n events.scenarioOutline.emitStart({\n title,\n modifier,\n tags: [...gherkin.tags]\n });\n });\n bootstrapSetupHooks(bridge, staticApp, events, [config, timeout]);\n bootstrapBeforeHooks(root, bridge, localApp, events, [config, timeout]);\n examples.forEach((example) => {\n bootstrapExamples(root, example, localApp, staticApp, events, [\n config,\n timeout\n ]);\n });\n bootstrapAfterHooks(root, bridge, localApp, events, [config, timeout]);\n bootstrapTeardownHooks(bridge, staticApp, events, [config, timeout]);\n afterAll(() => {\n const failures = Query.find.failed(bridge);\n const status =\n modifier === \"skip\"\n ? \"SKIPPED\"\n : failures.length === 0\n ? \"PASSED\"\n : \"FAILED\";\n events.scenarioOutline.emitEnd({\n title,\n modifier,\n tags: [...gherkin.tags],\n status: status\n });\n }, chosenTimeout);\n });\n}\nexport function bootstrapExamples(\n root: FeatureBridge,\n example: ExamplesBridge,\n localApp: () => App,\n staticApp: App,\n events: TestEventEmitter,\n timeout: [Config, Timeout]\n) {\n const title = example.data.scope.title(example.data.gherkin);\n const [group] = getGroupOrModifier(example);\n group(title, () => {\n bootstrapScenarios(root, example, localApp, staticApp, events, timeout);\n });\n}\n\nexport function bootstrapRules(\n bridge: FeatureBridge,\n localApp: () => App,\n staticApp: App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n bridge.rules.forEach((rule) => {\n const ruleTimeout = chooseTimeout(\n chosenTimeout,\n rule.data.scope.timeout\n ).getTimeout(config);\n const transferTimeout: [Config, Timeout] = [config, ruleTimeout];\n const { data } = rule;\n const ruleName = data.scope.title(data.gherkin);\n const [group, modifier] = getGroupOrModifier(bridge);\n\n group(ruleName, () => {\n beforeAll(() => {\n events.rule.emitStart({\n title: ruleName,\n modifier,\n tags: [...data.gherkin.tags]\n });\n });\n bootstrapSetupHooks(rule, staticApp, events, transferTimeout);\n bootstrapBeforeHooks(bridge, rule, localApp, events, transferTimeout);\n bootstrapBackground(bridge, rule, localApp, events, transferTimeout);\n bootstrapScenarios(\n bridge,\n rule,\n localApp,\n staticApp,\n events,\n transferTimeout\n );\n bootstrapAfterHooks(bridge, rule, localApp, events, transferTimeout);\n bootstrapTeardownHooks(rule, staticApp, events, transferTimeout);\n\n afterAll(() => {\n const failures = Query.find.failed(rule);\n const status =\n modifier === \"skip\"\n ? \"SKIPPED\"\n : failures.length === 0\n ? \"PASSED\"\n : \"FAILED\";\n events.rule.emitEnd({\n title: ruleName,\n modifier,\n tags: [...data.gherkin.tags],\n status: status\n });\n }, ruleTimeout.milliseconds);\n });\n });\n}\n\nfunction getGroupOrModifier({\n data\n}: RuleBridge | FeatureBridge | ScenarioOutlineBridge | ExamplesBridge) {\n if (data.gherkin.tags?.has(\"@skip\") || data.gherkin.tags?.has(\"@skipped\")) {\n return [describe.skip, \"skip\"] as const;\n }\n if (data.gherkin.tags?.has(\"@only\")) {\n return [describe.only, \"only\"] as const;\n }\n return [describe, undefined] as const;\n}\n\nfunction getTestOrModifier({ data }: ScenarioBridge) {\n if (data.gherkin.tags?.has(\"@skip\") || data.gherkin.tags?.has(\"@skipped\")) {\n return it.skip;\n }\n if (data.gherkin.tags?.has(\"@only\")) {\n return it.only;\n }\n return it;\n}\n\nexport function bootstrapBeforeHooks(\n root: FeatureBridge,\n bridge: GlobalBridge | FeatureBridge | RuleBridge | ScenarioOutlineBridge,\n localApp: () => App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n\n bridge.data.scope.hooks.before.forEach((hook) => {\n const hookTimeout = chooseTimeout(chosenTimeout, hook.timeout).getTimeout(\n config\n ).milliseconds;\n\n beforeEach(async () => {\n const testName = expect.getState().currentTestName;\n if (!testName) throw new AutomationError(\"A Scenario must have a title\");\n const scenarioBridge = find(root, testName);\n if (!scenarioBridge) {\n throw new AutomationError(\n `No matching scenario was found matching the test name: ${testName}`\n );\n }\n if (!hook.canExecute(...bridge.data.gherkin.tags)) {\n return;\n }\n const tags = scenarioBridge?.data?.gherkin?.tags ?? [];\n events.before.emitStart({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags]\n });\n const report = await hook.execute(localApp(), ...tags);\n events.before.emitEnd({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags],\n status: report.status,\n error: report.error\n });\n if (report.error) {\n const message = `${hook.name}: ${hook.description} failed to execute.`;\n throw new AutomationError(message, { cause: report.error });\n }\n }, hookTimeout);\n });\n}\nexport function bootstrapSetupHooks(\n bridge: GlobalBridge | FeatureBridge | RuleBridge | ScenarioOutlineBridge,\n staticApp: App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config).milliseconds;\n const setups = bridge.data.scope.hooks.setup;\n setups.forEach((hook) => {\n const hookTimeout = chooseTimeout(\n Timeout.from(chosenTimeout),\n hook.timeout\n ).getTimeout(config).milliseconds;\n const tags = bridge.data.gherkin.tags ?? [];\n\n beforeAll(async () => {\n if (!hook.canExecute(...tags)) {\n return;\n }\n events.setup.emitStart({\n title: `${hook.name}: ${hook.description}`\n });\n const report = await hook.execute(staticApp, ...tags);\n\n events.setup.emitEnd({\n title: `${hook.name}: ${hook.description}`,\n status: report.status,\n error: report.error\n });\n\n if (report.error) {\n const message = `${hook.name}: ${hook.description} failed to execute.`;\n throw new AutomationError(message, { cause: report.error });\n }\n }, hookTimeout);\n });\n}\n\nexport function bootstrapAfterHooks(\n root: FeatureBridge,\n bridge: GlobalBridge | FeatureBridge | RuleBridge | ScenarioOutlineBridge,\n localApp: () => App,\n events: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config).milliseconds;\n bridge.data.scope.hooks.after.forEach((hook) => {\n const hookTimeout = chooseTimeout(\n Timeout.from(chosenTimeout),\n hook.timeout\n ).getTimeout(config).milliseconds;\n afterEach(async () => {\n const testName = expect.getState().currentTestName;\n if (!testName) throw new AutomationError(\"A Scenario must have a title\");\n const scenarioBridge = find(root, testName);\n if (!scenarioBridge) {\n throw new AutomationError(\n `No scenario was found matching the test path: ${testName}`\n );\n }\n if (!hook.canExecute(...bridge.data.gherkin.tags)) {\n return;\n }\n const tags = scenarioBridge?.data?.gherkin?.tags ?? [];\n events.after.emitStart({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags]\n });\n\n const report = await hook.execute(localApp(), ...tags);\n events.after.emitEnd({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags],\n status: report.status,\n error: report.error\n });\n if (report.error) {\n const message = `${hook.name}: ${hook.description} failed to execute.`;\n throw new AutomationError(message, { cause: report.error });\n }\n }, hookTimeout);\n });\n}\n\nexport function bootstrapTeardownHooks(\n bridge: GlobalBridge | FeatureBridge | RuleBridge | ScenarioOutlineBridge,\n staticApp: App,\n event: TestEventEmitter,\n [config, timeout]: [Config, Timeout]\n) {\n const tags = bridge.data.gherkin.tags ?? [];\n const chosenTimeout = chooseTimeout(\n timeout,\n bridge.data.scope.timeout\n ).getTimeout(config);\n bridge.data.scope.hooks.teardown.forEach((hook) => {\n const hookTimeout = chooseTimeout(chosenTimeout, hook.timeout).getTimeout(\n config\n ).milliseconds;\n afterAll(async () => {\n if (!hook.canExecute(...tags)) {\n return;\n }\n event.teardown.emitStart({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags]\n });\n const report = await hook.execute(staticApp, ...tags);\n event.teardown.emitEnd({\n title: `${hook.name}: ${hook.description}`,\n tags: [...tags],\n status: report.status,\n error: report.error\n });\n\n if (report.error) {\n const message = `${hook.name}: ${hook.description} failed to execute.`;\n throw new AutomationError(message, { cause: report.error });\n }\n }, hookTimeout);\n });\n}\n","import { NullTimeout, Timeout } from \"@autometa/scopes\";\nimport { Config } from \"@autometa/config\";\nexport function getTimeout(target: Timeout | undefined, config: Config) {\n if (target && !(target instanceof NullTimeout)) {\n return target;\n }\n return Timeout.from(config?.current?.test?.timeout);\n}\n\nexport function chooseTimeout(\n timeout1: Timeout | undefined,\n timeout2: Timeout | undefined\n) {\n if (timeout2 instanceof Timeout && !(timeout2 instanceof NullTimeout)) {\n return {\n getTimeout: getTimeout.bind(null, timeout2)\n };\n }\n if (timeout1 instanceof Timeout && !(timeout1 instanceof NullTimeout)) {\n return {\n getTimeout: getTimeout.bind(null, timeout1)\n };\n }\n return {\n getTimeout: getTimeout.bind(null, Timeout.from(0))\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,0BAQO;AACP,qBAQO;AACP,iBAA6D;AAE7D,oBAAgC;AAEhC,IAAAA,uBAAsB;;;ACtBtB,oBAAqC;AAE9B,SAAS,WAAW,QAA6B,QAAgB;AACtE,MAAI,UAAU,EAAE,kBAAkB,4BAAc;AAC9C,WAAO;AAAA,EACT;AACA,SAAO,sBAAQ,KAAK,QAAQ,SAAS,MAAM,OAAO;AACpD;AAEO,SAAS,cACd,UACA,UACA;AACA,MAAI,oBAAoB,yBAAW,EAAE,oBAAoB,4BAAc;AACrE,WAAO;AAAA,MACL,YAAY,WAAW,KAAK,MAAM,QAAQ;AAAA,IAC5C;AAAA,EACF;AACA,MAAI,oBAAoB,yBAAW,EAAE,oBAAoB,4BAAc;AACrE,WAAO;AAAA,MACL,YAAY,WAAW,KAAK,MAAM,QAAQ;AAAA,IAC5C;AAAA,EACF;AACA,SAAO;AAAA,IACL,YAAY,WAAW,KAAK,MAAM,sBAAQ,KAAK,CAAC,CAAC;AAAA,EACnD;AACF;;;ADDA,IAAAC,iBAAkD;AAC3C,SAAS,QACd,EAAE,KAAK,MAAM,GACb,QACA,QACA,QACA,QACA;AACA,QAAM,eAAe,IAAI,iCAAa,MAAM;AAC5C,QAAM,eAAe,OAAO,KAAK,MAAM,MAAM,OAAO,KAAK,OAAO;AAChE,QAAM,CAAC,OAAO,QAAQ,IAAI,mBAAmB,MAAM;AACnD,QAAM,gBAAgB;AAAA,IACpB,IAAI,2BAAY;AAAA,IAChB,OAAO,KAAK,MAAM;AAAA,EACpB,EAAE,WAAW,MAAM;AACnB,gCAAU,MAAM;AACd,WAAO,QAAQ,UAAU;AAAA,MACvB,OAAO;AAAA,MACP,MAAM,OAAO,KAAK,MAAM;AAAA,MACxB;AAAA,MACA,MAAM,CAAC,GAAG,OAAO,KAAK,QAAQ,IAAI;AAAA,IACpC,CAAC;AAAA,EACH,GAAG,cAAc,YAAY;AAC7B,QAAM,cAAc,MAAM;AACxB,QAAI;AACJ,UAAM,gBAAiB,mBAAO,KAAK,KAAK;AACxC,mCAAW,MAAM;AACf,qBAAW,mBAAO,KAAK,KAAK;AAAA,IAC9B,CAAC;AAED,wBAAoB,cAAc,WAAW,QAAQ;AAAA,MACnD;AAAA,MACA;AAAA,IACF,CAAC;AACD,wBAAoB,QAAQ,WAAW,QAAQ,CAAC,QAAQ,aAAa,CAAC;AACtE,yBAAqB,QAAQ,cAAc,MAAM,UAAU,QAAQ;AAAA,MACjE;AAAA,MACA;AAAA,IACF,CAAC;AACD,yBAAqB,QAAQ,QAAQ,MAAM,UAAU,QAAQ;AAAA,MAC3D;AAAA,MACA;AAAA,IACF,CAAC;AACD,wBAAoB,QAAQ,QAAQ,MAAM,UAAU,QAAQ;AAAA,MAC1D;AAAA,MACA;AAAA,IACF,CAAC;AACD,uBAAmB,QAAQ,QAAQ,MAAM,UAAU,WAAW,QAAQ;AAAA,MACpE;AAAA,MACA;AAAA,IACF,CAAC;AACD,mBAAe,QAAQ,MAAM,UAAU,WAAW,QAAQ;AAAA,MACxD;AAAA,MACA;AAAA,IACF,CAAC;AACD,wBAAoB,QAAQ,QAAQ,MAAM,UAAU,QAAQ;AAAA,MAC1D;AAAA,MACA;AAAA,IACF,CAAC;AACD,wBAAoB,QAAQ,cAAc,MAAM,UAAU,QAAQ;AAAA,MAChE;AAAA,MACA;AAAA,IACF,CAAC;AACD,2BAAuB,cAAc,WAAW,QAAQ;AAAA,MACtD;AAAA,MACA;AAAA,IACF,CAAC;AACD,2BAAuB,QAAQ,WAAW,QAAQ,CAAC,QAAQ,aAAa,CAAC;AAAA,EAC3E,CAAC;AACD,+BAAS,MAAM;AACb,UAAM,WAAW,2BAAM,KAAK,OAAO,MAAM;AACzC,UAAM,SACJ,aAAa,SACT,YACA,SAAS,WAAW,IACpB,WACA;AACN,WAAO,QAAQ,QAAQ;AAAA,MACrB,OAAO;AAAA,MACP;AAAA,MACA,MAAM,CAAC,GAAG,OAAO,KAAK,QAAQ,IAAI;AAAA,MAClC;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;AAEO,SAAS,oBACd,MACA,QACA,UACA,QACA,CAAC,QAAQ,OAAO,GAChB;AACA,QAAM,aAAa,OAAO;AAC1B,MAAI,CAAC;AAAY;AAEjB,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA,OAAO,KAAK,MAAM;AAAA,EACpB,EAAE,WAAW,MAAM,EAAE;AAErB,QAAM,OAAO,QAAQ,MAAM,SAAS,QAAQ,CAAC;AAC7C,MAAI,KAAK,IAAI,OAAO,KAAK,KAAK,IAAI,UAAU;AAAG;AAC/C,iCAAW,YAAY;AACrB,UAAM,WAAW,sBAAO,SAAS,EAAE;AACnC,QAAI,CAAC;AAAU,YAAM,IAAI,8BAAgB,8BAA8B;AACvE,UAAM,qBAAiB,0BAAK,MAAM,QAAQ;AAC1C,QAAI,CAAC,gBAAgB;AACnB,YAAM,IAAI;AAAA,QACR,iEAAiE,QAAQ;AAAA,MAC3E;AAAA,IACF;AACA,UAAM,QAAQ,WAAW,KAAK,MAAM,MAAM,WAAW,KAAK,OAAO;AACjE,WAAO,OAAO,UAAU;AAAA,MACtB;AAAA,MACA,MAAM,CAAC,GAAG,IAAI;AAAA,IAChB,CAAC;AACD,UAAM,QAAQ,WAAW;AACzB,QAAI;AACF,iBAAW,QAAQ,OAAO;AACxB,eAAO,KAAK,UAAU;AAAA,UACpB,OAAO,KAAK,KAAK,MAAM;AAAA,UACvB,MAAM,KAAK;AAAA,UACX,YAAY,KAAK,KAAK,MAAM,WAAW;AAAA,QACzC,CAAC;AACD,cAAM,KAAK,KAAK,MAAM;AAAA,UACpB,WAAW,KAAK;AAAA,UAChB,KAAK,KAAK;AAAA,UACV,SAAS;AAAA,QACX;AACA,eAAO,KAAK,QAAQ;AAAA,UAClB,YAAY,KAAK,KAAK,MAAM,WAAW;AAAA,UACvC,MAAM,KAAK,KAAK,MAAM;AAAA,UACtB,MAAM,KAAK;AAAA,QACb,CAAC;AAAA,MACH;AACA,aAAO,OAAO,QAAQ;AAAA,QACpB;AAAA,QACA,MAAM,CAAC,GAAG,IAAI;AAAA,QACd,QAAQ;AAAA,MACV,CAAC;AAAA,IACH,SAAS,GAAG;AACV,aAAO,OAAO,QAAQ;AAAA,QACpB;AAAA,QACA,MAAM,CAAC,GAAG,IAAI;AAAA,QACd,QAAQ;AAAA,QACR,OAAO;AAAA,MACT,CAAC;AACD,YAAM,UAAU,GAAG,KAAK;AAAA,QACtB,QAAQ;AACV,YAAM,IAAI,8BAAgB,SAAS,EAAE,OAAO,EAAW,CAAC;AAAA,IAC1D;AAAA,EACF,GAAG,aAAa;AAClB;AACO,SAAS,mBACd,MACA,QACA,UACA,WACA,QACA,CAAC,QAAQ,OAAO,GAChB;AACA,QAAM,EAAE,UAAU,IAAI;AACtB,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA,OAAO,KAAK,MAAM;AAAA,EACpB,EAAE,WAAW,MAAM;AACnB,YAAU,QAAQ,CAAC,aAAa;AAC9B,QAAI,UAAU,QAAQ,GAAG;AACvB,+BAAyB,MAAM,UAAU,UAAU,WAAW,QAAQ;AAAA,QACpE;AAAA,QACA;AAAA,MACF,CAAC;AACD;AAAA,IACF;AACA,sBAAkB,UAAU,UAAU,QAAQ,CAAC,QAAQ,aAAa,CAAC;AAAA,EACvE,CAAC;AACH;AAEO,SAAS,kBACd,QACA,UACA,QACA,CAAC,QAAQ,OAAO,GAChB;AACA,QAAM,EAAE,KAAK,IAAI;AACjB,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA,OAAO,KAAK,MAAM;AAAA,EACpB,EAAE,WAAW,MAAM;AACnB,QAAM,eAAe,KAAK,MAAM,MAAM,KAAK,OAAO;AAClD,QAAM,OAAO,kBAAkB,MAAM;AACrC;AAAA,IACE;AAAA,IACA,YAAY;AACV,aAAO,SAAS,UAAU;AAAA,QACxB,OAAO,OAAO;AAAA,QACd,MAAM,OAAO;AAAA,MACf,CAAC;AACD,UAAI;AACF,mBAAW,QAAQ,OAAO,OAAO;AAC/B,iBAAO,KAAK,UAAU;AAAA,YACpB,OAAO,KAAK,KAAK,MAAM;AAAA,YACvB,MAAM,KAAK;AAAA,YACX,YAAY,KAAK;AAAA,UACnB,CAAC;AACD,gBAAM,KAAK,KAAK,MAAM;AAAA,YACpB,OAAO,KAAK;AAAA,YACZ,KAAK,KAAK;AAAA,YACV,SAAS;AAAA,UACX;AACA,iBAAO,KAAK,QAAQ;AAAA,YAClB,YAAY,KAAK;AAAA,YACjB,MAAM,KAAK,KAAK,MAAM;AAAA,YACtB,MAAM,KAAK;AAAA,UACb,CAAC;AAAA,QACH;AACA,eAAO,SAAS,EAAE,QAAQ,KAAK;AAC/B,eAAO,SAAS,QAAQ;AAAA,UACtB,OAAO,OAAO;AAAA,UACd,MAAM,OAAO;AAAA,UACb,QAAQ;AAAA,QACV,CAAC;AAAA,MACH,SAAS,GAAG;AACV,cAAM,QAAQ;AACd,eAAO,SAAS,EAAE,QAAQ,OAAO,OAAO,EAAW;AACnD,eAAO,SAAS,QAAQ;AAAA,UACtB,OAAO,OAAO;AAAA,UACd,MAAM,OAAO;AAAA,UACb,QAAQ;AAAA,UACR;AAAA,QACF,CAAC;AACD,cAAM,UAAU,GAAG,OAAO,KAAK;AAC/B,cAAM,OAAO,EAAE,OAAO,MAAM;AAC5B,cAAM,IAAI,8BAAgB,SAAS,IAAI;AAAA,MACzC;AAAA,IACF;AAAA,IACA,cAAc;AAAA,EAChB;AACF;AAEA,SAAS,UACP,MAC+B;AAC/B,SAAO,gBAAgB;AACzB;AAEO,SAAS,yBACd,MACA,QACA,UACA,WACA,QACA,CAAC,QAAQ,OAAO,GAChB;AACA,QAAM;AAAA,IACJ,MAAM,EAAE,OAAO,QAAQ;AAAA,IACvB;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ,MAAM,MAAM,OAAO;AACjC,QAAM,CAAC,OAAO,QAAQ,IAAI,mBAAmB,MAAM;AACnD,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA,OAAO,KAAK,MAAM;AAAA,EACpB,EAAE,WAAW,MAAM,EAAE;AACrB,QAAM,OAAO,MAAM;AACjB,kCAAU,MAAM;AACd,aAAO,gBAAgB,UAAU;AAAA,QAC/B;AAAA,QACA;AAAA,QACA,MAAM,CAAC,GAAG,QAAQ,IAAI;AAAA,MACxB,CAAC;AAAA,IACH,CAAC;AACD,wBAAoB,QAAQ,WAAW,QAAQ,CAAC,QAAQ,OAAO,CAAC;AAChE,yBAAqB,MAAM,QAAQ,UAAU,QAAQ,CAAC,QAAQ,OAAO,CAAC;AACtE,aAAS,QAAQ,CAAC,YAAY;AAC5B,wBAAkB,MAAM,SAAS,UAAU,WAAW,QAAQ;AAAA,QAC5D;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AACD,wBAAoB,MAAM,QAAQ,UAAU,QAAQ,CAAC,QAAQ,OAAO,CAAC;AACrE,2BAAuB,QAAQ,WAAW,QAAQ,CAAC,QAAQ,OAAO,CAAC;AACnE,iCAAS,MAAM;AACb,YAAM,WAAW,2BAAM,KAAK,OAAO,MAAM;AACzC,YAAM,SACJ,aAAa,SACT,YACA,SAAS,WAAW,IACpB,WACA;AACN,aAAO,gBAAgB,QAAQ;AAAA,QAC7B;AAAA,QACA;AAAA,QACA,MAAM,CAAC,GAAG,QAAQ,IAAI;AAAA,QACtB;AAAA,MACF,CAAC;AAAA,IACH,GAAG,aAAa;AAAA,EAClB,CAAC;AACH;AACO,SAAS,kBACd,MACA,SACA,UACA,WACA,QACA,SACA;AACA,QAAM,QAAQ,QAAQ,KAAK,MAAM,MAAM,QAAQ,KAAK,OAAO;AAC3D,QAAM,CAAC,KAAK,IAAI,mBAAmB,OAAO;AAC1C,QAAM,OAAO,MAAM;AACjB,uBAAmB,MAAM,SAAS,UAAU,WAAW,QAAQ,OAAO;AAAA,EACxE,CAAC;AACH;AAEO,SAAS,eACd,QACA,UACA,WACA,QACA,CAAC,QAAQ,OAAO,GAChB;AACA,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA,OAAO,KAAK,MAAM;AAAA,EACpB,EAAE,WAAW,MAAM;AACnB,SAAO,MAAM,QAAQ,CAAC,SAAS;AAC7B,UAAM,cAAc;AAAA,MAClB;AAAA,MACA,KAAK,KAAK,MAAM;AAAA,IAClB,EAAE,WAAW,MAAM;AACnB,UAAM,kBAAqC,CAAC,QAAQ,WAAW;AAC/D,UAAM,EAAE,KAAK,IAAI;AACjB,UAAM,WAAW,KAAK,MAAM,MAAM,KAAK,OAAO;AAC9C,UAAM,CAAC,OAAO,QAAQ,IAAI,mBAAmB,MAAM;AAEnD,UAAM,UAAU,MAAM;AACpB,oCAAU,MAAM;AACd,eAAO,KAAK,UAAU;AAAA,UACpB,OAAO;AAAA,UACP;AAAA,UACA,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI;AAAA,QAC7B,CAAC;AAAA,MACH,CAAC;AACD,0BAAoB,MAAM,WAAW,QAAQ,eAAe;AAC5D,2BAAqB,QAAQ,MAAM,UAAU,QAAQ,eAAe;AACpE,0BAAoB,QAAQ,MAAM,UAAU,QAAQ,eAAe;AACnE;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,0BAAoB,QAAQ,MAAM,UAAU,QAAQ,eAAe;AACnE,6BAAuB,MAAM,WAAW,QAAQ,eAAe;AAE/D,mCAAS,MAAM;AACb,cAAM,WAAW,2BAAM,KAAK,OAAO,IAAI;AACvC,cAAM,SACJ,aAAa,SACT,YACA,SAAS,WAAW,IACpB,WACA;AACN,eAAO,KAAK,QAAQ;AAAA,UAClB,OAAO;AAAA,UACP;AAAA,UACA,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI;AAAA,UAC3B;AAAA,QACF,CAAC;AAAA,MACH,GAAG,YAAY,YAAY;AAAA,IAC7B,CAAC;AAAA,EACH,CAAC;AACH;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AACF,GAAwE;AACtE,MAAI,KAAK,QAAQ,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,MAAM,IAAI,UAAU,GAAG;AACzE,WAAO,CAAC,wBAAS,MAAM,MAAM;AAAA,EAC/B;AACA,MAAI,KAAK,QAAQ,MAAM,IAAI,OAAO,GAAG;AACnC,WAAO,CAAC,wBAAS,MAAM,MAAM;AAAA,EAC/B;AACA,SAAO,CAAC,yBAAU,MAAS;AAC7B;AAEA,SAAS,kBAAkB,EAAE,KAAK,GAAmB;AACnD,MAAI,KAAK,QAAQ,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,MAAM,IAAI,UAAU,GAAG;AACzE,WAAO,kBAAG;AAAA,EACZ;AACA,MAAI,KAAK,QAAQ,MAAM,IAAI,OAAO,GAAG;AACnC,WAAO,kBAAG;AAAA,EACZ;AACA,SAAO;AACT;AAEO,SAAS,qBACd,MACA,QACA,UACA,QACA,CAAC,QAAQ,OAAO,GAChB;AACA,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA,OAAO,KAAK,MAAM;AAAA,EACpB,EAAE,WAAW,MAAM;AAEnB,SAAO,KAAK,MAAM,MAAM,OAAO,QAAQ,CAAC,SAAS;AAC/C,UAAM,cAAc,cAAc,eAAe,KAAK,OAAO,EAAE;AAAA,MAC7D;AAAA,IACF,EAAE;AAEF,mCAAW,YAAY;AACrB,YAAM,WAAW,sBAAO,SAAS,EAAE;AACnC,UAAI,CAAC;AAAU,cAAM,IAAI,8BAAgB,8BAA8B;AACvE,YAAM,qBAAiB,0BAAK,MAAM,QAAQ;AAC1C,UAAI,CAAC,gBAAgB;AACnB,cAAM,IAAI;AAAA,UACR,0DAA0D,QAAQ;AAAA,QACpE;AAAA,MACF;AACA,UAAI,CAAC,KAAK,WAAW,GAAG,OAAO,KAAK,QAAQ,IAAI,GAAG;AACjD;AAAA,MACF;AACA,YAAM,OAAO,gBAAgB,MAAM,SAAS,QAAQ,CAAC;AACrD,aAAO,OAAO,UAAU;AAAA,QACtB,OAAO,GAAG,KAAK,IAAI,KAAK,KAAK,WAAW;AAAA,QACxC,MAAM,CAAC,GAAG,IAAI;AAAA,MAChB,CAAC;AACD,YAAM,SAAS,MAAM,KAAK,QAAQ,SAAS,GAAG,GAAG,IAAI;AACrD,aAAO,OAAO,QAAQ;AAAA,QACpB,OAAO,GAAG,KAAK,IAAI,KAAK,KAAK,WAAW;AAAA,QACxC,MAAM,CAAC,GAAG,IAAI;AAAA,QACd,QAAQ,OAAO;AAAA,QACf,OAAO,OAAO;AAAA,MAChB,CAAC;AACD,UAAI,OAAO,OAAO;AAChB,cAAM,UAAU,GAAG,KAAK,IAAI,KAAK,KAAK,WAAW;AACjD,cAAM,IAAI,8BAAgB,SAAS,EAAE,OAAO,OAAO,MAAM,CAAC;AAAA,MAC5D;AAAA,IACF,GAAG,WAAW;AAAA,EAChB,CAAC;AACH;AACO,SAAS,oBACd,QACA,WACA,QACA,CAAC,QAAQ,OAAO,GAChB;AACA,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA,OAAO,KAAK,MAAM;AAAA,EACpB,EAAE,WAAW,MAAM,EAAE;AACrB,QAAM,SAAS,OAAO,KAAK,MAAM,MAAM;AACvC,SAAO,QAAQ,CAAC,SAAS;AACvB,UAAM,cAAc;AAAA,MAClB,uBAAQ,KAAK,aAAa;AAAA,MAC1B,KAAK;AAAA,IACP,EAAE,WAAW,MAAM,EAAE;AACrB,UAAM,OAAO,OAAO,KAAK,QAAQ,QAAQ,CAAC;AAE1C,kCAAU,YAAY;AACpB,UAAI,CAAC,KAAK,WAAW,GAAG,IAAI,GAAG;AAC7B;AAAA,MACF;AACA,aAAO,MAAM,UAAU;AAAA,QACrB,OAAO,GAAG,KAAK,IAAI,KAAK,KAAK,WAAW;AAAA,MAC1C,CAAC;AACD,YAAM,SAAS,MAAM,KAAK,QAAQ,WAAW,GAAG,IAAI;AAEpD,aAAO,MAAM,QAAQ;AAAA,QACnB,OAAO,GAAG,KAAK,IAAI,KAAK,KAAK,WAAW;AAAA,QACxC,QAAQ,OAAO;AAAA,QACf,OAAO,OAAO;AAAA,MAChB,CAAC;AAED,UAAI,OAAO,OAAO;AAChB,cAAM,UAAU,GAAG,KAAK,IAAI,KAAK,KAAK,WAAW;AACjD,cAAM,IAAI,8BAAgB,SAAS,EAAE,OAAO,OAAO,MAAM,CAAC;AAAA,MAC5D;AAAA,IACF,GAAG,WAAW;AAAA,EAChB,CAAC;AACH;AAEO,SAAS,oBACd,MACA,QACA,UACA,QACA,CAAC,QAAQ,OAAO,GAChB;AACA,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA,OAAO,KAAK,MAAM;AAAA,EACpB,EAAE,WAAW,MAAM,EAAE;AACrB,SAAO,KAAK,MAAM,MAAM,MAAM,QAAQ,CAAC,SAAS;AAC9C,UAAM,cAAc;AAAA,MAClB,uBAAQ,KAAK,aAAa;AAAA,MAC1B,KAAK;AAAA,IACP,EAAE,WAAW,MAAM,EAAE;AACrB,kCAAU,YAAY;AACpB,YAAM,WAAW,sBAAO,SAAS,EAAE;AACnC,UAAI,CAAC;AAAU,cAAM,IAAI,8BAAgB,8BAA8B;AACvE,YAAM,qBAAiB,0BAAK,MAAM,QAAQ;AAC1C,UAAI,CAAC,gBAAgB;AACnB,cAAM,IAAI;AAAA,UACR,iDAAiD,QAAQ;AAAA,QAC3D;AAAA,MACF;AACA,UAAI,CAAC,KAAK,WAAW,GAAG,OAAO,KAAK,QAAQ,IAAI,GAAG;AACjD;AAAA,MACF;AACA,YAAM,OAAO,gBAAgB,MAAM,SAAS,QAAQ,CAAC;AACrD,aAAO,MAAM,UAAU;AAAA,QACrB,OAAO,GAAG,KAAK,IAAI,KAAK,KAAK,WAAW;AAAA,QACxC,MAAM,CAAC,GAAG,IAAI;AAAA,MAChB,CAAC;AAED,YAAM,SAAS,MAAM,KAAK,QAAQ,SAAS,GAAG,GAAG,IAAI;AACrD,aAAO,MAAM,QAAQ;AAAA,QACnB,OAAO,GAAG,KAAK,IAAI,KAAK,KAAK,WAAW;AAAA,QACxC,MAAM,CAAC,GAAG,IAAI;AAAA,QACd,QAAQ,OAAO;AAAA,QACf,OAAO,OAAO;AAAA,MAChB,CAAC;AACD,UAAI,OAAO,OAAO;AAChB,cAAM,UAAU,GAAG,KAAK,IAAI,KAAK,KAAK,WAAW;AACjD,cAAM,IAAI,8BAAgB,SAAS,EAAE,OAAO,OAAO,MAAM,CAAC;AAAA,MAC5D;AAAA,IACF,GAAG,WAAW;AAAA,EAChB,CAAC;AACH;AAEO,SAAS,uBACd,QACA,WACA,OACA,CAAC,QAAQ,OAAO,GAChB;AACA,QAAM,OAAO,OAAO,KAAK,QAAQ,QAAQ,CAAC;AAC1C,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA,OAAO,KAAK,MAAM;AAAA,EACpB,EAAE,WAAW,MAAM;AACnB,SAAO,KAAK,MAAM,MAAM,SAAS,QAAQ,CAAC,SAAS;AACjD,UAAM,cAAc,cAAc,eAAe,KAAK,OAAO,EAAE;AAAA,MAC7D;AAAA,IACF,EAAE;AACF,iCAAS,YAAY;AACnB,UAAI,CAAC,KAAK,WAAW,GAAG,IAAI,GAAG;AAC7B;AAAA,MACF;AACA,YAAM,SAAS,UAAU;AAAA,QACvB,OAAO,GAAG,KAAK,IAAI,KAAK,KAAK,WAAW;AAAA,QACxC,MAAM,CAAC,GAAG,IAAI;AAAA,MAChB,CAAC;AACD,YAAM,SAAS,MAAM,KAAK,QAAQ,WAAW,GAAG,IAAI;AACpD,YAAM,SAAS,QAAQ;AAAA,QACrB,OAAO,GAAG,KAAK,IAAI,KAAK,KAAK,WAAW;AAAA,QACxC,MAAM,CAAC,GAAG,IAAI;AAAA,QACd,QAAQ,OAAO;AAAA,QACf,OAAO,OAAO;AAAA,MAChB,CAAC;AAED,UAAI,OAAO,OAAO;AAChB,cAAM,UAAU,GAAG,KAAK,IAAI,KAAK,KAAK,WAAW;AACjD,cAAM,IAAI,8BAAgB,SAAS,EAAE,OAAO,OAAO,MAAM,CAAC;AAAA,MAC5D;AAAA,IACF,GAAG,WAAW;AAAA,EAChB,CAAC;AACH;;;ADplBA,IAAO,cAAQ;","names":["import_test_builder","import_scopes"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autometa/jest-executor",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -39,14 +39,14 @@
39
39
  "jest": "^29.5.0"
40
40
  },
41
41
  "dependencies": {
42
- "@autometa/app": "^0.1.3",
42
+ "@autometa/app": "^0.1.4",
43
43
  "@autometa/asserters": "^0.1.1",
44
- "@autometa/config": "^0.1.3",
44
+ "@autometa/config": "^0.1.4",
45
45
  "@autometa/errors": "^0.1.1",
46
- "@autometa/events": "^0.1.2",
47
- "@autometa/gherkin": "^0.4.2",
48
- "@autometa/scopes": "^0.2.4",
49
- "@autometa/test-builder": "^0.1.4",
46
+ "@autometa/events": "^0.1.3",
47
+ "@autometa/gherkin": "^0.4.3",
48
+ "@autometa/scopes": "^0.2.6",
49
+ "@autometa/test-builder": "^0.1.6",
50
50
  "@autometa/types": "^0.4.0"
51
51
  },
52
52
  "scripts": {