@autometa/runner 0.2.6 → 0.2.8

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,38 @@
1
1
  # @autometa/runner
2
2
 
3
+ ## 0.2.8
4
+
5
+ ### Patch Changes
6
+
7
+ - 12bd4b1e: Fix(runner): Before Hook logging misaligned
8
+ - 12bd4b1e: fix: hooks not handling errors correctly
9
+ - Updated dependencies [12bd4b1e]
10
+ - @autometa/errors@0.1.2
11
+ - @autometa/scopes@0.2.8
12
+ - @autometa/app@0.1.5
13
+ - @autometa/asserters@0.1.2
14
+ - @autometa/config@0.1.5
15
+ - @autometa/coordinator@0.1.8
16
+ - @autometa/cucumber-expressions@0.1.6
17
+ - @autometa/datetime@0.1.6
18
+ - @autometa/events@0.1.5
19
+ - @autometa/gherkin@0.4.4
20
+ - @autometa/jest-executor@0.1.8
21
+ - @autometa/phrases@0.1.4
22
+ - @autometa/test-builder@0.1.8
23
+
24
+ ## 0.2.7
25
+
26
+ ### Patch Changes
27
+
28
+ - ff45dc43: fix(jest-executor): step text was not correctly logged
29
+ - Updated dependencies [ff45dc43]
30
+ - @autometa/jest-executor@0.1.7
31
+ - @autometa/events@0.1.4
32
+ - @autometa/coordinator@0.1.7
33
+ - @autometa/scopes@0.2.7
34
+ - @autometa/test-builder@0.1.7
35
+
3
36
  ## 0.2.6
4
37
 
5
38
  ### Patch Changes
package/dist/esm/index.js CHANGED
@@ -114,6 +114,7 @@ var GroupLogEvents = class {
114
114
  }
115
115
  onBeforeStart(opts) {
116
116
  console.group(opts.title);
117
+ console.group();
117
118
  }
118
119
  onBeforeEnd({ title, status }) {
119
120
  console.groupEnd();
@@ -151,11 +152,11 @@ var GroupLogEvents = class {
151
152
  function colorStatus(status, text) {
152
153
  switch (status) {
153
154
  case "FAILED":
154
- return colors.red_b(text);
155
+ return `${colors.red("x")} ${text}`;
155
156
  case "PASSED":
156
- return colors.green_b(text);
157
+ return `${colors.green("\u2714\uFE0F")} ${text}`;
157
158
  case "SKIPPED":
158
- return colors.yellow_b(text);
159
+ return `${colors.yellow("\u2714\uFE0F")} ${text}`;
159
160
  default:
160
161
  return text;
161
162
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/config.ts","../../src/parameters.ts","../../src/scopes.ts","../../src/events.ts","../../src/event-logger.ts","../../src/executor.ts","../../src/app.ts","../../src/index.ts"],"sourcesContent":["import {\n Config,\n TestExecutorConfig,\n defineConfig as dc\n} from \"@autometa/config\";\n\nexport const CONFIG = new Config(new Map<string, TestExecutorConfig>());\nexport const defineConfig = dc.bind(null, CONFIG);\n","import { ParameterTypeRegistry } from \"@cucumber/cucumber-expressions\";\nimport {\n BooleanParam,\n DateParam,\n NumberParam,\n PrimitiveParam,\n TextParam,\n defineParameterType as dpt\n} from \"@autometa/cucumber-expressions\";\n\nexport const PARAM_REGISTRY = new ParameterTypeRegistry();\n\nexport const defineParameterType = dpt.bind(null, PARAM_REGISTRY);\n\ndefineParameterType(\n NumberParam,\n BooleanParam,\n PrimitiveParam,\n TextParam,\n DateParam\n);\n","import { PARAM_REGISTRY } from \"./parameters\";\nimport { GetCucumberFunctions, Pass } from \"@autometa/scopes\";\nimport { Coordinator } from \"@autometa/coordinator\";\nimport { CONFIG } from \"./config\";\nimport { makeTestEmitter } from \"./events\";\nimport { executor } from \"./executor\";\nimport { OPTS } from \"./app\";\nconst {\n Feature,\n Scenario,\n ScenarioOutline,\n Rule,\n Given,\n When,\n Then,\n Before,\n After,\n Teardown,\n Setup,\n Global\n} = GetCucumberFunctions(PARAM_REGISTRY);\nconst coordinator = new Coordinator(Global, CONFIG, OPTS);\nGlobal.onFeatureExecuted = (feature, caller) => {\n const groupLogger = CONFIG.current.test?.groupLogging ?? false;\n const events = makeTestEmitter({ groupLogger });\n coordinator.run(feature, caller, events, executor);\n};\n\nexport {\n Feature,\n Scenario,\n ScenarioOutline,\n Rule,\n Given,\n When,\n Then,\n Before,\n After,\n Teardown,\n Setup,\n Pass\n};\n","import { TestEventEmitter } from \"@autometa/events\";\nimport { CONFIG } from \"./config\";\nexport * from \"@autometa/events\";\nimport { GroupLogEvents } from \"./event-logger\";\n\nexport function makeTestEmitter(opts: { groupLogger: boolean }) {\n const events = CONFIG.current.events;\n const emitter = new TestEventEmitter();\n if (opts.groupLogger) {\n emitter.load(new GroupLogEvents());\n }\n if (!events) {\n return emitter;\n }\n\n for (const event of events) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const listener = require(event);\n emitter.load(listener);\n }\n\n return emitter;\n}\n","import {\n EndAfterOpts,\n EndBeforeOpts,\n EndFeatureOpts,\n EndRuleOpts,\n EndScenarioOpts,\n EndScenarioOutlineOpts,\n EndSetupOpts,\n EndStepOpts,\n EndTeardownOpts,\n EventSubscriber,\n StartAfterOpts,\n StartBeforeOpts,\n StartFeatureOpts,\n StartRuleOpts,\n StartScenarioOpts,\n StartScenarioOutlineOpts,\n StartSetupOpts,\n StartStepOpts,\n StartTeardownOpts\n} from \"@autometa/events\";\nimport colors from \"colors-cli\";\nexport class GroupLogEvents implements EventSubscriber {\n onFeatureStart({ title }: StartFeatureOpts) {\n console.group(title);\n console.group();\n\n }\n onFeatureEnd({ title, status }: EndFeatureOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onScenarioStart({ title }: StartScenarioOpts): void {\n console.group(title);\n console.group();\n }\n onScenarioEnd({ title, status }: EndScenarioOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onScenarioOutlineStart(opts: StartScenarioOutlineOpts): void {\n console.group(opts.title);\n console.group();\n\n }\n onScenarioOutlineEnd({ title, status }: EndScenarioOutlineOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onRuleStart({ title }: StartRuleOpts): void {\n console.group(title);\n console.group();\n\n }\n onRuleEnd({ title, status }: EndRuleOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n\n }\n onStepStart({ title }: StartStepOpts) {\n console.group(title);\n console.group();\n\n }\n onStepEnd({ title, status }: EndStepOpts) {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n\n }\n onBeforeStart(opts: StartBeforeOpts): void {\n console.group(opts.title);\n }\n onBeforeEnd({ title, status }: EndBeforeOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onAfterStart(opts: StartAfterOpts): void {\n console.group(opts.title);\n console.group();\n\n }\n onAfterEnd({ title, status }: EndAfterOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onTeardownStart(opts: StartTeardownOpts): void {\n console.group(opts.title);\n console.group();\n }\n onTeardownEnd({ title, status }: EndTeardownOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onSetupStart(opts: StartSetupOpts): void {\n console.group(opts.title);\n console.group();\n\n }\n onSetupEnd({ title, status }: EndSetupOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n}\n\nfunction colorStatus(\n status: \"FAILED\" | \"PASSED\" | \"SKIPPED\" | \"BROKEN\" | undefined,\n text: string\n) {\n switch (status) {\n case \"FAILED\":\n return colors.red_b(text);\n case \"PASSED\":\n return colors.green_b(text);\n case \"SKIPPED\":\n return colors.yellow_b(text);\n default:\n return text;\n }\n}\n","import { execute } from \"@autometa/jest-executor\";\n\nexport const executor = execute;\n","import \"@autometa/types\";\nimport { AppType as at } from \"@autometa/app\";\nimport { CoordinatorOpts } from \"@autometa/coordinator\";\nexport { Fixture } from \"@autometa/app\";\nexport const OPTS = {} as Record<string, CoordinatorOpts>;\nexport const AppType = at.bind(null, OPTS);\n","export { defineConfig } from \"./config\";\nexport { defineParameterType } from \"./parameters\";\nexport {\n Feature,\n Scenario,\n ScenarioOutline,\n Rule,\n Given,\n When,\n Then,\n Before,\n After,\n Teardown,\n Setup,\n Pass\n} from \"./scopes\";\n\nexport * from \"@autometa/phrases\";\nexport { App, World, AutometaApp, AutometaWorld } from \"@autometa/app\";\nexport { AppType, Fixture } from \"./app\";\nexport { Dates, Time } from \"@autometa/datetime\";\nexport { AutomationError, raise } from \"@autometa/errors\";\nexport { DataTable, HTable, VTable, MTable } from \"@autometa/gherkin\";\nexport { Bind } from \"@autometa/bind-decorator\";\nexport { Types } from \"@autometa/scopes\";\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/config.ts","../../src/parameters.ts","../../src/scopes.ts","../../src/events.ts","../../src/event-logger.ts","../../src/executor.ts","../../src/app.ts","../../src/index.ts"],"sourcesContent":["import {\n Config,\n TestExecutorConfig,\n defineConfig as dc\n} from \"@autometa/config\";\n\nexport const CONFIG = new Config(new Map<string, TestExecutorConfig>());\nexport const defineConfig = dc.bind(null, CONFIG);\n","import { ParameterTypeRegistry } from \"@cucumber/cucumber-expressions\";\nimport {\n BooleanParam,\n DateParam,\n NumberParam,\n PrimitiveParam,\n TextParam,\n defineParameterType as dpt\n} from \"@autometa/cucumber-expressions\";\n\nexport const PARAM_REGISTRY = new ParameterTypeRegistry();\n\nexport const defineParameterType = dpt.bind(null, PARAM_REGISTRY);\n\ndefineParameterType(\n NumberParam,\n BooleanParam,\n PrimitiveParam,\n TextParam,\n DateParam\n);\n","import { PARAM_REGISTRY } from \"./parameters\";\nimport { GetCucumberFunctions, Pass } from \"@autometa/scopes\";\nimport { Coordinator } from \"@autometa/coordinator\";\nimport { CONFIG } from \"./config\";\nimport { makeTestEmitter } from \"./events\";\nimport { executor } from \"./executor\";\nimport { OPTS } from \"./app\";\nconst {\n Feature,\n Scenario,\n ScenarioOutline,\n Rule,\n Given,\n When,\n Then,\n Before,\n After,\n Teardown,\n Setup,\n Global\n} = GetCucumberFunctions(PARAM_REGISTRY);\nconst coordinator = new Coordinator(Global, CONFIG, OPTS);\nGlobal.onFeatureExecuted = (feature, caller) => {\n const groupLogger = CONFIG.current.test?.groupLogging ?? false;\n const events = makeTestEmitter({ groupLogger });\n coordinator.run(feature, caller, events, executor);\n};\n\nexport {\n Feature,\n Scenario,\n ScenarioOutline,\n Rule,\n Given,\n When,\n Then,\n Before,\n After,\n Teardown,\n Setup,\n Pass\n};\n","import { TestEventEmitter } from \"@autometa/events\";\nimport { CONFIG } from \"./config\";\nexport * from \"@autometa/events\";\nimport { GroupLogEvents } from \"./event-logger\";\n\nexport function makeTestEmitter(opts: { groupLogger: boolean }) {\n const events = CONFIG.current.events;\n const emitter = new TestEventEmitter();\n if (opts.groupLogger) {\n emitter.load(new GroupLogEvents());\n }\n if (!events) {\n return emitter;\n }\n\n for (const event of events) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const listener = require(event);\n emitter.load(listener);\n }\n\n return emitter;\n}\n","import {\n EndAfterOpts,\n EndBeforeOpts,\n EndFeatureOpts,\n EndRuleOpts,\n EndScenarioOpts,\n EndScenarioOutlineOpts,\n EndSetupOpts,\n EndStepOpts,\n EndTeardownOpts,\n EventSubscriber,\n StartAfterOpts,\n StartBeforeOpts,\n StartFeatureOpts,\n StartRuleOpts,\n StartScenarioOpts,\n StartScenarioOutlineOpts,\n StartSetupOpts,\n StartStepOpts,\n StartTeardownOpts\n} from \"@autometa/events\";\nimport colors from \"colors-cli\";\nexport class GroupLogEvents implements EventSubscriber {\n onFeatureStart({ title }: StartFeatureOpts) {\n console.group(title);\n console.group();\n }\n onFeatureEnd({ title, status }: EndFeatureOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onScenarioStart({ title }: StartScenarioOpts): void {\n console.group(title);\n console.group();\n }\n onScenarioEnd({ title, status }: EndScenarioOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onScenarioOutlineStart(opts: StartScenarioOutlineOpts): void {\n console.group(opts.title);\n console.group();\n }\n onScenarioOutlineEnd({ title, status }: EndScenarioOutlineOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onRuleStart({ title }: StartRuleOpts): void {\n console.group(title);\n console.group();\n }\n onRuleEnd({ title, status }: EndRuleOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onStepStart({ title }: StartStepOpts) {\n console.group(title);\n console.group();\n }\n onStepEnd({ title, status }: EndStepOpts) {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onBeforeStart(opts: StartBeforeOpts): void {\n console.group(opts.title);\n console.group();\n }\n onBeforeEnd({ title, status }: EndBeforeOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onAfterStart(opts: StartAfterOpts): void {\n console.group(opts.title);\n console.group();\n }\n onAfterEnd({ title, status }: EndAfterOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onTeardownStart(opts: StartTeardownOpts): void {\n console.group(opts.title);\n console.group();\n }\n onTeardownEnd({ title, status }: EndTeardownOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onSetupStart(opts: StartSetupOpts): void {\n console.group(opts.title);\n console.group();\n }\n onSetupEnd({ title, status }: EndSetupOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n}\nfunction colorStatus(\n status: \"FAILED\" | \"PASSED\" | \"SKIPPED\" | \"BROKEN\" | undefined,\n text: string,\n) {\n switch (status) {\n case \"FAILED\":\n return `${colors.red(\"x\")} ${text}`;\n case \"PASSED\":\n return `${colors.green(\"✔️\")} ${text}`;\n case \"SKIPPED\":\n return `${colors.yellow(\"✔️\")} ${text}`;\n default:\n return text;\n }\n}\n","import { execute } from \"@autometa/jest-executor\";\n\nexport const executor = execute;\n","import \"@autometa/types\";\nimport { AppType as at } from \"@autometa/app\";\nimport { CoordinatorOpts } from \"@autometa/coordinator\";\nexport { Fixture } from \"@autometa/app\";\nexport const OPTS = {} as Record<string, CoordinatorOpts>;\nexport const AppType = at.bind(null, OPTS);\n","export { defineConfig } from \"./config\";\nexport { defineParameterType } from \"./parameters\";\nexport {\n Feature,\n Scenario,\n ScenarioOutline,\n Rule,\n Given,\n When,\n Then,\n Before,\n After,\n Teardown,\n Setup,\n Pass\n} from \"./scopes\";\n\nexport * from \"@autometa/phrases\";\nexport { App, World, AutometaApp, AutometaWorld } from \"@autometa/app\";\nexport { AppType, Fixture } from \"./app\";\nexport { Dates, Time } from \"@autometa/datetime\";\nexport { AutomationError, raise } from \"@autometa/errors\";\nexport { DataTable, HTable, VTable, MTable } from \"@autometa/gherkin\";\nexport { Bind } from \"@autometa/bind-decorator\";\nexport { Types } from \"@autometa/scopes\";\n"],"mappings":"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","names":[]}
package/dist/index.js CHANGED
@@ -144,6 +144,7 @@ var GroupLogEvents = class {
144
144
  }
145
145
  onBeforeStart(opts) {
146
146
  console.group(opts.title);
147
+ console.group();
147
148
  }
148
149
  onBeforeEnd({ title, status }) {
149
150
  console.groupEnd();
@@ -181,11 +182,11 @@ var GroupLogEvents = class {
181
182
  function colorStatus(status, text) {
182
183
  switch (status) {
183
184
  case "FAILED":
184
- return import_colors_cli.default.red_b(text);
185
+ return `${import_colors_cli.default.red("x")} ${text}`;
185
186
  case "PASSED":
186
- return import_colors_cli.default.green_b(text);
187
+ return `${import_colors_cli.default.green("\u2714\uFE0F")} ${text}`;
187
188
  case "SKIPPED":
188
- return import_colors_cli.default.yellow_b(text);
189
+ return `${import_colors_cli.default.yellow("\u2714\uFE0F")} ${text}`;
189
190
  default:
190
191
  return text;
191
192
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/config.ts","../src/parameters.ts","../src/scopes.ts","../src/events.ts","../src/event-logger.ts","../src/executor.ts","../src/app.ts"],"sourcesContent":["export { defineConfig } from \"./config\";\nexport { defineParameterType } from \"./parameters\";\nexport {\n Feature,\n Scenario,\n ScenarioOutline,\n Rule,\n Given,\n When,\n Then,\n Before,\n After,\n Teardown,\n Setup,\n Pass\n} from \"./scopes\";\n\nexport * from \"@autometa/phrases\";\nexport { App, World, AutometaApp, AutometaWorld } from \"@autometa/app\";\nexport { AppType, Fixture } from \"./app\";\nexport { Dates, Time } from \"@autometa/datetime\";\nexport { AutomationError, raise } from \"@autometa/errors\";\nexport { DataTable, HTable, VTable, MTable } from \"@autometa/gherkin\";\nexport { Bind } from \"@autometa/bind-decorator\";\nexport { Types } from \"@autometa/scopes\";\n","import {\n Config,\n TestExecutorConfig,\n defineConfig as dc\n} from \"@autometa/config\";\n\nexport const CONFIG = new Config(new Map<string, TestExecutorConfig>());\nexport const defineConfig = dc.bind(null, CONFIG);\n","import { ParameterTypeRegistry } from \"@cucumber/cucumber-expressions\";\nimport {\n BooleanParam,\n DateParam,\n NumberParam,\n PrimitiveParam,\n TextParam,\n defineParameterType as dpt\n} from \"@autometa/cucumber-expressions\";\n\nexport const PARAM_REGISTRY = new ParameterTypeRegistry();\n\nexport const defineParameterType = dpt.bind(null, PARAM_REGISTRY);\n\ndefineParameterType(\n NumberParam,\n BooleanParam,\n PrimitiveParam,\n TextParam,\n DateParam\n);\n","import { PARAM_REGISTRY } from \"./parameters\";\nimport { GetCucumberFunctions, Pass } from \"@autometa/scopes\";\nimport { Coordinator } from \"@autometa/coordinator\";\nimport { CONFIG } from \"./config\";\nimport { makeTestEmitter } from \"./events\";\nimport { executor } from \"./executor\";\nimport { OPTS } from \"./app\";\nconst {\n Feature,\n Scenario,\n ScenarioOutline,\n Rule,\n Given,\n When,\n Then,\n Before,\n After,\n Teardown,\n Setup,\n Global\n} = GetCucumberFunctions(PARAM_REGISTRY);\nconst coordinator = new Coordinator(Global, CONFIG, OPTS);\nGlobal.onFeatureExecuted = (feature, caller) => {\n const groupLogger = CONFIG.current.test?.groupLogging ?? false;\n const events = makeTestEmitter({ groupLogger });\n coordinator.run(feature, caller, events, executor);\n};\n\nexport {\n Feature,\n Scenario,\n ScenarioOutline,\n Rule,\n Given,\n When,\n Then,\n Before,\n After,\n Teardown,\n Setup,\n Pass\n};\n","import { TestEventEmitter } from \"@autometa/events\";\nimport { CONFIG } from \"./config\";\nexport * from \"@autometa/events\";\nimport { GroupLogEvents } from \"./event-logger\";\n\nexport function makeTestEmitter(opts: { groupLogger: boolean }) {\n const events = CONFIG.current.events;\n const emitter = new TestEventEmitter();\n if (opts.groupLogger) {\n emitter.load(new GroupLogEvents());\n }\n if (!events) {\n return emitter;\n }\n\n for (const event of events) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const listener = require(event);\n emitter.load(listener);\n }\n\n return emitter;\n}\n","import {\n EndAfterOpts,\n EndBeforeOpts,\n EndFeatureOpts,\n EndRuleOpts,\n EndScenarioOpts,\n EndScenarioOutlineOpts,\n EndSetupOpts,\n EndStepOpts,\n EndTeardownOpts,\n EventSubscriber,\n StartAfterOpts,\n StartBeforeOpts,\n StartFeatureOpts,\n StartRuleOpts,\n StartScenarioOpts,\n StartScenarioOutlineOpts,\n StartSetupOpts,\n StartStepOpts,\n StartTeardownOpts\n} from \"@autometa/events\";\nimport colors from \"colors-cli\";\nexport class GroupLogEvents implements EventSubscriber {\n onFeatureStart({ title }: StartFeatureOpts) {\n console.group(title);\n console.group();\n\n }\n onFeatureEnd({ title, status }: EndFeatureOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onScenarioStart({ title }: StartScenarioOpts): void {\n console.group(title);\n console.group();\n }\n onScenarioEnd({ title, status }: EndScenarioOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onScenarioOutlineStart(opts: StartScenarioOutlineOpts): void {\n console.group(opts.title);\n console.group();\n\n }\n onScenarioOutlineEnd({ title, status }: EndScenarioOutlineOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onRuleStart({ title }: StartRuleOpts): void {\n console.group(title);\n console.group();\n\n }\n onRuleEnd({ title, status }: EndRuleOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n\n }\n onStepStart({ title }: StartStepOpts) {\n console.group(title);\n console.group();\n\n }\n onStepEnd({ title, status }: EndStepOpts) {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n\n }\n onBeforeStart(opts: StartBeforeOpts): void {\n console.group(opts.title);\n }\n onBeforeEnd({ title, status }: EndBeforeOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onAfterStart(opts: StartAfterOpts): void {\n console.group(opts.title);\n console.group();\n\n }\n onAfterEnd({ title, status }: EndAfterOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onTeardownStart(opts: StartTeardownOpts): void {\n console.group(opts.title);\n console.group();\n }\n onTeardownEnd({ title, status }: EndTeardownOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onSetupStart(opts: StartSetupOpts): void {\n console.group(opts.title);\n console.group();\n\n }\n onSetupEnd({ title, status }: EndSetupOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n}\n\nfunction colorStatus(\n status: \"FAILED\" | \"PASSED\" | \"SKIPPED\" | \"BROKEN\" | undefined,\n text: string\n) {\n switch (status) {\n case \"FAILED\":\n return colors.red_b(text);\n case \"PASSED\":\n return colors.green_b(text);\n case \"SKIPPED\":\n return colors.yellow_b(text);\n default:\n return text;\n }\n}\n","import { execute } from \"@autometa/jest-executor\";\n\nexport const executor = execute;\n","import \"@autometa/types\";\nimport { AppType as at } from \"@autometa/app\";\nimport { CoordinatorOpts } from \"@autometa/coordinator\";\nexport { Fixture } from \"@autometa/app\";\nexport const OPTS = {} as Record<string, CoordinatorOpts>;\nexport const AppType = at.bind(null, OPTS);\n"],"mappings":"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","names":["dc","import_cucumber_expressions","dpt","colors","import_app","at","import_app","import_scopes"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/config.ts","../src/parameters.ts","../src/scopes.ts","../src/events.ts","../src/event-logger.ts","../src/executor.ts","../src/app.ts"],"sourcesContent":["export { defineConfig } from \"./config\";\nexport { defineParameterType } from \"./parameters\";\nexport {\n Feature,\n Scenario,\n ScenarioOutline,\n Rule,\n Given,\n When,\n Then,\n Before,\n After,\n Teardown,\n Setup,\n Pass\n} from \"./scopes\";\n\nexport * from \"@autometa/phrases\";\nexport { App, World, AutometaApp, AutometaWorld } from \"@autometa/app\";\nexport { AppType, Fixture } from \"./app\";\nexport { Dates, Time } from \"@autometa/datetime\";\nexport { AutomationError, raise } from \"@autometa/errors\";\nexport { DataTable, HTable, VTable, MTable } from \"@autometa/gherkin\";\nexport { Bind } from \"@autometa/bind-decorator\";\nexport { Types } from \"@autometa/scopes\";\n","import {\n Config,\n TestExecutorConfig,\n defineConfig as dc\n} from \"@autometa/config\";\n\nexport const CONFIG = new Config(new Map<string, TestExecutorConfig>());\nexport const defineConfig = dc.bind(null, CONFIG);\n","import { ParameterTypeRegistry } from \"@cucumber/cucumber-expressions\";\nimport {\n BooleanParam,\n DateParam,\n NumberParam,\n PrimitiveParam,\n TextParam,\n defineParameterType as dpt\n} from \"@autometa/cucumber-expressions\";\n\nexport const PARAM_REGISTRY = new ParameterTypeRegistry();\n\nexport const defineParameterType = dpt.bind(null, PARAM_REGISTRY);\n\ndefineParameterType(\n NumberParam,\n BooleanParam,\n PrimitiveParam,\n TextParam,\n DateParam\n);\n","import { PARAM_REGISTRY } from \"./parameters\";\nimport { GetCucumberFunctions, Pass } from \"@autometa/scopes\";\nimport { Coordinator } from \"@autometa/coordinator\";\nimport { CONFIG } from \"./config\";\nimport { makeTestEmitter } from \"./events\";\nimport { executor } from \"./executor\";\nimport { OPTS } from \"./app\";\nconst {\n Feature,\n Scenario,\n ScenarioOutline,\n Rule,\n Given,\n When,\n Then,\n Before,\n After,\n Teardown,\n Setup,\n Global\n} = GetCucumberFunctions(PARAM_REGISTRY);\nconst coordinator = new Coordinator(Global, CONFIG, OPTS);\nGlobal.onFeatureExecuted = (feature, caller) => {\n const groupLogger = CONFIG.current.test?.groupLogging ?? false;\n const events = makeTestEmitter({ groupLogger });\n coordinator.run(feature, caller, events, executor);\n};\n\nexport {\n Feature,\n Scenario,\n ScenarioOutline,\n Rule,\n Given,\n When,\n Then,\n Before,\n After,\n Teardown,\n Setup,\n Pass\n};\n","import { TestEventEmitter } from \"@autometa/events\";\nimport { CONFIG } from \"./config\";\nexport * from \"@autometa/events\";\nimport { GroupLogEvents } from \"./event-logger\";\n\nexport function makeTestEmitter(opts: { groupLogger: boolean }) {\n const events = CONFIG.current.events;\n const emitter = new TestEventEmitter();\n if (opts.groupLogger) {\n emitter.load(new GroupLogEvents());\n }\n if (!events) {\n return emitter;\n }\n\n for (const event of events) {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const listener = require(event);\n emitter.load(listener);\n }\n\n return emitter;\n}\n","import {\n EndAfterOpts,\n EndBeforeOpts,\n EndFeatureOpts,\n EndRuleOpts,\n EndScenarioOpts,\n EndScenarioOutlineOpts,\n EndSetupOpts,\n EndStepOpts,\n EndTeardownOpts,\n EventSubscriber,\n StartAfterOpts,\n StartBeforeOpts,\n StartFeatureOpts,\n StartRuleOpts,\n StartScenarioOpts,\n StartScenarioOutlineOpts,\n StartSetupOpts,\n StartStepOpts,\n StartTeardownOpts\n} from \"@autometa/events\";\nimport colors from \"colors-cli\";\nexport class GroupLogEvents implements EventSubscriber {\n onFeatureStart({ title }: StartFeatureOpts) {\n console.group(title);\n console.group();\n }\n onFeatureEnd({ title, status }: EndFeatureOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onScenarioStart({ title }: StartScenarioOpts): void {\n console.group(title);\n console.group();\n }\n onScenarioEnd({ title, status }: EndScenarioOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onScenarioOutlineStart(opts: StartScenarioOutlineOpts): void {\n console.group(opts.title);\n console.group();\n }\n onScenarioOutlineEnd({ title, status }: EndScenarioOutlineOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onRuleStart({ title }: StartRuleOpts): void {\n console.group(title);\n console.group();\n }\n onRuleEnd({ title, status }: EndRuleOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onStepStart({ title }: StartStepOpts) {\n console.group(title);\n console.group();\n }\n onStepEnd({ title, status }: EndStepOpts) {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onBeforeStart(opts: StartBeforeOpts): void {\n console.group(opts.title);\n console.group();\n }\n onBeforeEnd({ title, status }: EndBeforeOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onAfterStart(opts: StartAfterOpts): void {\n console.group(opts.title);\n console.group();\n }\n onAfterEnd({ title, status }: EndAfterOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onTeardownStart(opts: StartTeardownOpts): void {\n console.group(opts.title);\n console.group();\n }\n onTeardownEnd({ title, status }: EndTeardownOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n onSetupStart(opts: StartSetupOpts): void {\n console.group(opts.title);\n console.group();\n }\n onSetupEnd({ title, status }: EndSetupOpts): void {\n console.groupEnd();\n console.log(colorStatus(status, `Ending ${title}`));\n console.groupEnd();\n }\n}\nfunction colorStatus(\n status: \"FAILED\" | \"PASSED\" | \"SKIPPED\" | \"BROKEN\" | undefined,\n text: string,\n) {\n switch (status) {\n case \"FAILED\":\n return `${colors.red(\"x\")} ${text}`;\n case \"PASSED\":\n return `${colors.green(\"✔️\")} ${text}`;\n case \"SKIPPED\":\n return `${colors.yellow(\"✔️\")} ${text}`;\n default:\n return text;\n }\n}\n","import { execute } from \"@autometa/jest-executor\";\n\nexport const executor = execute;\n","import \"@autometa/types\";\nimport { AppType as at } from \"@autometa/app\";\nimport { CoordinatorOpts } from \"@autometa/coordinator\";\nexport { Fixture } from \"@autometa/app\";\nexport const OPTS = {} as Record<string, CoordinatorOpts>;\nexport const AppType = at.bind(null, OPTS);\n"],"mappings":"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","names":["dc","import_cucumber_expressions","dpt","colors","import_app","at","import_app","import_scopes"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autometa/runner",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -26,27 +26,27 @@
26
26
  "tsup": "^7.2.0",
27
27
  "typescript": "^4.9.5",
28
28
  "vitest": "^0.29.8",
29
- "tsconfig": "0.7.0",
30
- "eslint-config-custom": "0.6.0"
29
+ "eslint-config-custom": "0.6.0",
30
+ "tsconfig": "0.7.0"
31
31
  },
32
32
  "dependencies": {
33
33
  "@cucumber/cucumber-expressions": "^16.1.2",
34
34
  "colors-cli": "^1.0.32",
35
- "@autometa/app": "^0.1.4",
36
- "@autometa/asserters": "^0.1.1",
37
35
  "@autometa/bind-decorator": "^0.5.0",
38
- "@autometa/config": "^0.1.4",
39
- "@autometa/coordinator": "^0.1.6",
40
- "@autometa/datetime": "^0.1.5",
41
- "@autometa/errors": "^0.1.1",
42
- "@autometa/gherkin": "^0.4.3",
43
- "@autometa/cucumber-expressions": "^0.1.5",
44
- "@autometa/jest-executor": "^0.1.6",
45
- "@autometa/phrases": "^0.1.3",
46
- "@autometa/scopes": "^0.2.6",
36
+ "@autometa/asserters": "^0.1.2",
37
+ "@autometa/cucumber-expressions": "^0.1.6",
38
+ "@autometa/coordinator": "^0.1.8",
39
+ "@autometa/datetime": "^0.1.6",
40
+ "@autometa/errors": "^0.1.2",
41
+ "@autometa/events": "^0.1.5",
42
+ "@autometa/gherkin": "^0.4.4",
43
+ "@autometa/phrases": "^0.1.4",
44
+ "@autometa/jest-executor": "^0.1.8",
45
+ "@autometa/test-builder": "^0.1.8",
47
46
  "@autometa/types": "^0.4.0",
48
- "@autometa/test-builder": "^0.1.6",
49
- "@autometa/events": "^0.1.3"
47
+ "@autometa/scopes": "^0.2.8",
48
+ "@autometa/config": "^0.1.5",
49
+ "@autometa/app": "^0.1.5"
50
50
  },
51
51
  "scripts": {
52
52
  "test": "vitest run --passWithNoTests",