@autometa/events 0.2.26 → 0.3.0

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,12 +1,12 @@
1
1
 
2
- > @autometa/events@0.2.23 test /Users/ben.aherne/Documents/GitHub/autometa/packages/events
2
+ > @autometa/events@0.2.27 test /Users/ben.aherne/Documents/GitHub/autometa/packages/events
3
3
  > vitest run --passWithNoTests
4
4
 
5
5
 
6
6
  RUN v1.4.0 /Users/ben.aherne/Documents/GitHub/autometa/packages/events
7
7
 
8
8
  No test files found, exiting with code 0
9
- include: **/*.{test,spec}.?(c|m)[jt]s?(x)
10
9
 
10
+ include: **/*.{test,spec}.?(c|m)[jt]s?(x)
11
11
  exclude: **/node_modules/**, **/dist/**, **/cypress/**, **/.{idea,git,cache,output,temp}/**, **/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build,eslint,prettier}.config.*
12
12
  watch exclude: **/node_modules/**, **/dist/**
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Gherkin
2
2
 
3
+ ## 0.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 7440e9f: feat: new group based hooks for feature, rule, outline and examples
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [7440e9f]
12
+ - @autometa/gherkin@0.7.0
13
+
14
+ ## 0.2.27
15
+
16
+ ### Patch Changes
17
+
18
+ - Updated dependencies [205ee3b]
19
+ - @autometa/gherkin@0.6.15
20
+
3
21
  ## 0.2.26
4
22
 
5
23
  ### Patch Changes
package/dist/esm/index.js CHANGED
@@ -117,10 +117,30 @@ var TestEventEmitter = class {
117
117
  this.scenario = new TestEmitter("Scenario");
118
118
  this.scenarioWrapper = new TestEmitter("Scenario Wrapper");
119
119
  this.setup = new TestEmitter("Setup");
120
+ this.beforeFeature = new TestEmitter(
121
+ "BeforeFeature"
122
+ );
123
+ this.afterFeature = new TestEmitter("AfterFeature");
124
+ this.beforeRule = new TestEmitter("BeforeRule");
125
+ this.afterRule = new TestEmitter("AfterRule");
126
+ this.beforeScenarioOutline = new TestEmitter(
127
+ "BeforeScenarioOutline"
128
+ );
129
+ this.afterScenarioOutline = new TestEmitter(
130
+ "AfterScenarioOutline"
131
+ );
132
+ this.beforeExamples = new TestEmitter(
133
+ "BeforeExamples"
134
+ );
135
+ this.afterExamples = new TestEmitter(
136
+ "AfterExamples"
137
+ );
120
138
  this.teardown = new TestEmitter("Teardown");
121
139
  this.before = new TestEmitter("Before");
122
140
  this.after = new TestEmitter("After");
123
141
  this.step = new TestEmitter("Step");
142
+ this.beforeStep = new TestEmitter("BeforeStep");
143
+ this.afterStep = new TestEmitter("AfterStep");
124
144
  this.settleAsyncEvents = async () => {
125
145
  return await Promise.allSettled([
126
146
  this.scenarioOutline.waitForPromises(),
@@ -155,7 +175,26 @@ var TestEventEmitter = class {
155
175
  onTeardownStart,
156
176
  onTeardownEnd,
157
177
  onPreScenarioStart,
158
- onPostScenarioEnd
178
+ onPostScenarioEnd,
179
+ onBeforeFeatureStart,
180
+ onBeforeFeatureEnd,
181
+ onAfterFeatureStart,
182
+ onAfterFeatureEnd,
183
+ onBeforeRuleStart,
184
+ onBeforeRuleEnd,
185
+ onAfterRuleStart,
186
+ onAfterRuleEnd,
187
+ onBeforeScenarioOutlineStart,
188
+ onBeforeScenarioOutlineEnd,
189
+ onAfterScenarioOutlineStart,
190
+ onAfterScenarioOutlineEnd,
191
+ onBeforeExamplesStart,
192
+ onBeforeExamplesEnd,
193
+ onAfterExamplesStart,
194
+ onBeforeStepStart,
195
+ onBeforeStepEnd,
196
+ onAfterStepStart,
197
+ onAfterStepEnd
159
198
  }) => {
160
199
  this.feature.load(onFeatureStart, onFeatureEnd);
161
200
  this.rule.load(onRuleStart, onRuleEnd);
@@ -167,6 +206,22 @@ var TestEventEmitter = class {
167
206
  this.setup.load(onSetupStart, onSetupEnd);
168
207
  this.teardown.load(onTeardownStart, onTeardownEnd);
169
208
  this.scenarioWrapper.load(onPreScenarioStart, onPostScenarioEnd);
209
+ this.beforeFeature.load(onBeforeFeatureStart, onBeforeFeatureEnd);
210
+ this.afterFeature.load(onAfterFeatureStart, onAfterFeatureEnd);
211
+ this.beforeRule.load(onBeforeRuleStart, onBeforeRuleEnd);
212
+ this.afterRule.load(onAfterRuleStart, onAfterRuleEnd);
213
+ this.beforeScenarioOutline.load(
214
+ onBeforeScenarioOutlineStart,
215
+ onBeforeScenarioOutlineEnd
216
+ );
217
+ this.afterScenarioOutline.load(
218
+ onAfterScenarioOutlineStart,
219
+ onAfterScenarioOutlineEnd
220
+ );
221
+ this.beforeExamples.load(onBeforeExamplesStart, onBeforeExamplesEnd);
222
+ this.afterExamples.load(onAfterExamplesStart, onBeforeStepStart);
223
+ this.beforeStep.load(onBeforeStepStart, onBeforeStepEnd);
224
+ this.afterStep.load(onAfterStepStart, onAfterStepEnd);
170
225
  };
171
226
  }
172
227
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/event-options.ts","../../src/event-subscriber.ts","../../src/test-emitter.ts","../../src/test-event-emitter.ts","../../src/test-status.ts"],"sourcesContent":["import { object, string, literal, z } from \"zod\";\nconst uuidRegex =\n /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/gm;\nexport const UUIDStringSchema = string().regex(uuidRegex).optional();\n\nexport const StatusSchema = z.union([\n literal(\"FAILED\"),\n literal(\"BROKEN\"),\n literal(\"PASSED\"),\n literal(\"SKIPPED\"),\n]);\nexport const EventOptionsSchema = object({\n title: string().optional(),\n keyword: string().optional(),\n tags: string().array().optional(),\n modifier: literal(\"skip\").or(literal(\"only\")).optional(),\n status: StatusSchema.optional(),\n});\n\nexport const ErrorEventSchema = EventOptionsSchema.extend({\n error: z.instanceof(Error).optional(),\n});\nexport const ArgsEventSchema = EventOptionsSchema.extend({\n args: z.array(z.unknown()).optional(),\n});\n\nexport const StartFeatureOptsSchema = EventOptionsSchema.extend({\n path: string().optional(),\n});\n\nexport const EndFeatureOptsSchema = ErrorEventSchema;\n\nexport const EndRuleOptsSchema = ErrorEventSchema;\n\nexport const StartScenarioOutlineOptsSchema = EventOptionsSchema;\n// .extend({\n// uuid: UUIDStringSchema.optional()\n// });\n\nexport const EndScenarioOutlineOptsSchema = ErrorEventSchema;\n\nexport const StartScenarioOptsSchema = EventOptionsSchema;\n\nexport const EndScenarioOptsSchema = ErrorEventSchema;\n\nexport const StartStepOptsSchema = EventOptionsSchema.extend({\n args: z.array(z.unknown()).optional(),\n expression: z.string().optional(),\n});\nexport const EndStepOptsSchema = EventOptionsSchema.extend({\n args: z.array(z.unknown()).optional(),\n expression: z.string(),\n}).and(ErrorEventSchema);\nexport const StartBeforeOptsSchema = ArgsEventSchema;\nexport const EndBeforeOptsSchema = ErrorEventSchema;\nexport const StartAfterOptsSchema = ArgsEventSchema;\nexport const EndAfterOptsSchema = ErrorEventSchema;\nexport const StartSetupOptsSchema = ArgsEventSchema;\nexport const EndSetupOptsSchema = ErrorEventSchema;\nexport const StartTeardownOptsSchema = ArgsEventSchema;\nexport const EndTeardownOptsSchema = ErrorEventSchema;\n\nexport type EventOptions = z.infer<typeof EventOptionsSchema>;\nexport type StartFeatureOpts = z.infer<typeof StartFeatureOptsSchema>;\nexport type EndFeatureOpts = z.infer<typeof EndFeatureOptsSchema>;\nexport type StartRuleOpts = EventOptions;\nexport type EndRuleOpts = z.infer<typeof EndRuleOptsSchema>;\nexport type StartScenarioOutlineOpts = z.infer<\n typeof StartScenarioOutlineOptsSchema\n>;\nexport type EndScenarioOutlineOpts = z.infer<\n typeof EndScenarioOutlineOptsSchema\n>;\nexport type StartScenarioOpts = z.infer<typeof StartScenarioOptsSchema>;\nexport type EndScenarioOpts = z.infer<typeof EndScenarioOptsSchema>;\nexport type StartStepOpts = z.infer<typeof StartStepOptsSchema>;\nexport type EndStepOpts = z.infer<typeof EndStepOptsSchema>;\nexport type StartBeforeOpts = z.infer<typeof StartBeforeOptsSchema>;\nexport type EndBeforeOpts = z.infer<typeof EndBeforeOptsSchema>;\nexport type StartAfterOpts = z.infer<typeof StartAfterOptsSchema>;\nexport type EndAfterOpts = z.infer<typeof EndAfterOptsSchema>;\nexport type StartSetupOpts = z.infer<typeof StartSetupOptsSchema>;\nexport type EndSetupOpts = z.infer<typeof EndSetupOptsSchema>;\nexport type StartTeardownOpts = z.infer<typeof StartTeardownOptsSchema>;\nexport type EndTeardownOpts = z.infer<typeof EndTeardownOptsSchema>;\n","import { Class } from \"@autometa/types\";\nimport { InjectionToken } from \"tsyringe\";\nimport {\n EndAfterOpts,\n EndBeforeOpts,\n EndFeatureOpts,\n EndRuleOpts,\n EndScenarioOpts,\n EndSetupOpts,\n EndStepOpts,\n EndTeardownOpts,\n StartAfterOpts,\n StartBeforeOpts,\n StartFeatureOpts,\n StartRuleOpts,\n StartScenarioOpts,\n StartScenarioOutlineOpts,\n StartSetupOpts,\n StartStepOpts,\n StartTeardownOpts,\n} from \"./event-options\";\nimport { object, function as fun } from \"zod\";\nexport type DependencyInstanceProvider = {\n token: InjectionToken<unknown>;\n instance: unknown;\n};\n\nexport const EventSubscriberSchema = object({\n onFeature: fun(),\n});\nexport interface EventSubscriber {\n onFeatureStart?(opts: StartFeatureOpts): void;\n onFeatureEnd?(opts: EndFeatureOpts): void;\n onRuleStart?(opts: StartRuleOpts): void;\n onRuleEnd?(opts: EndRuleOpts): void;\n onScenarioOutlineStart?(opts: StartScenarioOutlineOpts): void;\n onScenarioOutlineEnd?(opts: EndScenarioOpts): void;\n onPreScenarioStart?(): void;\n onPostScenarioEnd?(): void;\n onScenarioStart?(opts: StartScenarioOpts): void;\n onScenarioEnd?(opts: EndScenarioOpts): void;\n onStepStart?(opts: StartStepOpts): void;\n onStepEnd?(opts: EndStepOpts): void;\n onSetupStart?(opts: StartSetupOpts): void;\n onSetupEnd?(opts: EndSetupOpts): void;\n onTeardownStart?(opts: StartTeardownOpts): void;\n onTeardownEnd?(opts: EndTeardownOpts): void;\n onBeforeStart?(opts: StartBeforeOpts): void;\n onBeforeEnd?(opts: EndBeforeOpts): void;\n onAfterStart?(opts: StartAfterOpts): void;\n onAfterEnd?(opts: EndAfterOpts): void;\n}\n\nexport abstract class ProviderSubscriber implements EventSubscriber {\n abstract get fixtures(): {\n instances?: DependencyInstanceProvider[];\n prototypes?: Class<unknown>[];\n };\n\n addFixtureInstance = (instance: DependencyInstanceProvider) => {\n this.fixtures.instances?.push(instance);\n };\n\n onFeatureStart?(opts: StartFeatureOpts): void;\n}\n","import EventEmitter from \"events\";\nimport { Cb } from \"./test-event-emitter\";\nexport class TestEmitter<\n TArgsStart = never,\n TArgsEnd = never\n> extends EventEmitter {\n private promises: Promise<unknown>[] = [];\n\n constructor(readonly name: string) {\n super();\n }\n\n emitStart = (...args: TArgsStart[]) => {\n this.emit(`onStart${this.name}`, ...args);\n };\n\n onStart = (action?: (...args: unknown[]) => void) => {\n if (action) {\n this.on(`onStart${this.name}`, this.collectPromises(this.name, action));\n }\n };\n\n onEnd = (action?: (...args: unknown[]) => void) => {\n if (action) {\n this.on(`onEnd${this.name}`, this.collectPromises(this.name, action));\n }\n };\n\n emitEnd = (...args: TArgsEnd[]) => {\n this.emit(`onEnd${this.name}`, ...args);\n };\n\n load = (onStart?: Cb, onEnd?: Cb) => {\n this.onStart(onStart);\n this.onEnd(onEnd);\n };\n\n collectPromises = (name: string, action: (...args: unknown[]) => unknown) => {\n return (...args: unknown[]) => {\n try {\n const result = action(...args);\n if (result instanceof Promise) {\n this.promises.push(result);\n }\n } catch (e) {\n console.error(\n `Event Subscriber ${name} threw an error ${(e as Error).message}`\n );\n }\n };\n };\n\n waitForPromises = async () => {\n const settled = await Promise.allSettled(this.promises);\n return settled.filter((it) => it.status === \"rejected\").length;\n };\n}\n","import { EventSubscriber } from \"./event-subscriber\";\nimport { TestEmitter } from \"./test-emitter\";\nimport {\n StartScenarioOutlineOpts,\n EndScenarioOutlineOpts,\n StartFeatureOpts,\n EndFeatureOpts,\n StartRuleOpts,\n EndRuleOpts,\n StartScenarioOpts,\n EndScenarioOpts,\n StartSetupOpts,\n EndSetupOpts,\n StartTeardownOpts,\n EndTeardownOpts,\n StartBeforeOpts,\n EndBeforeOpts,\n StartAfterOpts,\n EndAfterOpts,\n StartStepOpts,\n EndStepOpts,\n} from \"./event-options\";\nexport class TestEventEmitter {\n scenarioOutline = new TestEmitter<\n StartScenarioOutlineOpts,\n EndScenarioOutlineOpts\n >(\"ScenarioOutline\");\n feature = new TestEmitter<StartFeatureOpts, EndFeatureOpts>(\"Feature\");\n rule = new TestEmitter<StartRuleOpts, EndRuleOpts>(\"Rule\");\n scenario = new TestEmitter<StartScenarioOpts, EndScenarioOpts>(\"Scenario\");\n scenarioWrapper = new TestEmitter<never, never>(\"Scenario Wrapper\");\n setup = new TestEmitter<StartSetupOpts, EndSetupOpts>(\"Setup\");\n teardown = new TestEmitter<StartTeardownOpts, EndTeardownOpts>(\"Teardown\");\n before = new TestEmitter<StartBeforeOpts, EndBeforeOpts>(\"Before\");\n after = new TestEmitter<StartAfterOpts, EndAfterOpts>(\"After\");\n step = new TestEmitter<StartStepOpts, EndStepOpts>(\"Step\");\n\n settleAsyncEvents = async () => {\n return await Promise.allSettled([\n this.scenarioOutline.waitForPromises(),\n this.feature.waitForPromises(),\n this.rule.waitForPromises(),\n this.scenario.waitForPromises(),\n this.scenarioWrapper.waitForPromises(),\n this.setup.waitForPromises(),\n this.teardown.waitForPromises(),\n this.before.waitForPromises(),\n this.after.waitForPromises(),\n this.step.waitForPromises(),\n ]);\n };\n\n load = ({\n onFeatureStart,\n onFeatureEnd,\n onScenarioOutlineStart,\n onScenarioOutlineEnd,\n onScenarioStart,\n onScenarioEnd,\n onRuleStart,\n onRuleEnd,\n onBeforeStart,\n onBeforeEnd,\n onSetupStart,\n onSetupEnd,\n onStepStart,\n onStepEnd,\n onAfterStart,\n onAfterEnd,\n onTeardownStart,\n onTeardownEnd,\n onPreScenarioStart,\n onPostScenarioEnd,\n }: EventSubscriber) => {\n this.feature.load(onFeatureStart, onFeatureEnd);\n this.rule.load(onRuleStart, onRuleEnd);\n this.scenarioOutline.load(onScenarioOutlineStart, onScenarioOutlineEnd);\n this.scenario.load(onScenarioStart, onScenarioEnd);\n this.step.load(onStepStart, onStepEnd);\n this.before.load(onBeforeStart, onBeforeEnd);\n this.after.load(onAfterStart, onAfterEnd);\n this.setup.load(onSetupStart, onSetupEnd);\n this.teardown.load(onTeardownStart, onTeardownEnd);\n this.scenarioWrapper.load(onPreScenarioStart, onPostScenarioEnd);\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type Cb = (...args: any[]) => void;\n","export const Status = {\n FAILED: \"FAILED\",\n BROKEN: \"BROKEN\",\n PASSED: \"PASSED\",\n SKIPPED: \"SKIPPED\",\n} as const;\n\nexport type StatusType = keyof typeof Status;\n"],"mappings":"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","names":["object"]}
1
+ {"version":3,"sources":["../../src/event-options.ts","../../src/event-subscriber.ts","../../src/test-emitter.ts","../../src/test-event-emitter.ts","../../src/test-status.ts"],"sourcesContent":["import { object, string, literal, z } from \"zod\";\nconst uuidRegex =\n /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/gm;\nexport const UUIDStringSchema = string().regex(uuidRegex).optional();\n\nexport const StatusSchema = z.union([\n literal(\"FAILED\"),\n literal(\"BROKEN\"),\n literal(\"PASSED\"),\n literal(\"SKIPPED\"),\n]);\nexport const EventOptionsSchema = object({\n title: string().optional(),\n keyword: string().optional(),\n tags: string().array().optional(),\n modifier: literal(\"skip\").or(literal(\"only\")).optional(),\n status: StatusSchema.optional(),\n});\n\nexport const ErrorEventSchema = EventOptionsSchema.extend({\n error: z.instanceof(Error).optional(),\n});\nexport const ArgsEventSchema = EventOptionsSchema.extend({\n args: z.array(z.unknown()).optional(),\n});\n\nexport const StartFeatureOptsSchema = EventOptionsSchema.extend({\n path: string().optional(),\n});\n\nexport const EndFeatureOptsSchema = ErrorEventSchema;\n\nexport const EndRuleOptsSchema = ErrorEventSchema;\n\nexport const StartScenarioOutlineOptsSchema = EventOptionsSchema;\n// .extend({\n// uuid: UUIDStringSchema.optional()\n// });\n\nexport const EndScenarioOutlineOptsSchema = ErrorEventSchema;\n\nexport const StartScenarioOptsSchema = EventOptionsSchema;\n\nexport const EndScenarioOptsSchema = ErrorEventSchema;\n\nexport const StartStepOptsSchema = EventOptionsSchema.extend({\n args: z.array(z.unknown()).optional(),\n expression: z.string().optional(),\n});\nexport const EndStepOptsSchema = EventOptionsSchema.extend({\n args: z.array(z.unknown()).optional(),\n expression: z.string(),\n}).and(ErrorEventSchema);\nexport const StartBeforeOptsSchema = ArgsEventSchema;\nexport const EndBeforeOptsSchema = ErrorEventSchema;\nexport const StartAfterOptsSchema = ArgsEventSchema;\nexport const EndAfterOptsSchema = ErrorEventSchema;\nexport const StartSetupOptsSchema = ArgsEventSchema;\nexport const EndSetupOptsSchema = ErrorEventSchema;\nexport const StartTeardownOptsSchema = ArgsEventSchema;\nexport const EndTeardownOptsSchema = ErrorEventSchema;\n\nexport type EventOptions = z.infer<typeof EventOptionsSchema>;\nexport type StartFeatureOpts = z.infer<typeof StartFeatureOptsSchema>;\nexport type EndFeatureOpts = z.infer<typeof EndFeatureOptsSchema>;\nexport type StartRuleOpts = EventOptions;\nexport type EndRuleOpts = z.infer<typeof EndRuleOptsSchema>;\nexport type StartScenarioOutlineOpts = z.infer<\n typeof StartScenarioOutlineOptsSchema\n>;\nexport type EndScenarioOutlineOpts = z.infer<\n typeof EndScenarioOutlineOptsSchema\n>;\nexport type StartScenarioOpts = z.infer<typeof StartScenarioOptsSchema>;\nexport type EndScenarioOpts = z.infer<typeof EndScenarioOptsSchema>;\nexport type StartStepOpts = z.infer<typeof StartStepOptsSchema>;\nexport type EndStepOpts = z.infer<typeof EndStepOptsSchema>;\nexport type StartBeforeOpts = z.infer<typeof StartBeforeOptsSchema>;\nexport type EndBeforeOpts = z.infer<typeof EndBeforeOptsSchema>;\nexport type StartAfterOpts = z.infer<typeof StartAfterOptsSchema>;\nexport type EndAfterOpts = z.infer<typeof EndAfterOptsSchema>;\nexport type StartSetupOpts = z.infer<typeof StartSetupOptsSchema>;\nexport type EndSetupOpts = z.infer<typeof EndSetupOptsSchema>;\nexport type StartTeardownOpts = z.infer<typeof StartTeardownOptsSchema>;\nexport type EndTeardownOpts = z.infer<typeof EndTeardownOptsSchema>;\n","import { Class } from \"@autometa/types\";\nimport { InjectionToken } from \"tsyringe\";\nimport {\n EndAfterOpts,\n EndBeforeOpts,\n EndFeatureOpts,\n EndRuleOpts,\n EndScenarioOpts,\n EndSetupOpts,\n EndStepOpts,\n EndTeardownOpts,\n StartAfterOpts,\n StartBeforeOpts,\n StartFeatureOpts,\n StartRuleOpts,\n StartScenarioOpts,\n StartScenarioOutlineOpts,\n StartSetupOpts,\n StartStepOpts,\n StartTeardownOpts,\n} from \"./event-options\";\nimport { object, function as fun } from \"zod\";\nexport type DependencyInstanceProvider = {\n token: InjectionToken<unknown>;\n instance: unknown;\n};\n\nexport const EventSubscriberSchema = object({\n onFeature: fun(),\n});\nexport interface EventSubscriber {\n onBeforeFeatureStart?(opts: StartFeatureOpts): void;\n onBeforeFeatureEnd?(opts: EndFeatureOpts): void;\n onAfterFeatureStart?(opts: StartFeatureOpts): void;\n onAfterFeatureEnd?(opts: EndFeatureOpts): void;\n onFeatureStart?(opts: StartFeatureOpts): void;\n onFeatureEnd?(opts: EndFeatureOpts): void;\n onBeforeRuleStart?(opts: StartRuleOpts): void;\n onBeforeRuleEnd?(opts: EndRuleOpts): void;\n onAfterRuleStart?(opts: StartRuleOpts): void;\n onAfterRuleEnd?(opts: EndRuleOpts): void;\n onRuleStart?(opts: StartRuleOpts): void;\n onRuleEnd?(opts: EndRuleOpts): void;\n onBeforeScenarioOutlineStart?(opts: StartScenarioOutlineOpts): void;\n onBeforeScenarioOutlineEnd?(opts: EndScenarioOpts): void;\n onAfterScenarioOutlineStart?(opts: StartScenarioOutlineOpts): void;\n onAfterScenarioOutlineEnd?(opts: EndScenarioOpts): void;\n onBeforeExamplesStart?(opts: StartScenarioOutlineOpts): void;\n onBeforeExamplesEnd?(opts: EndScenarioOpts): void;\n onAfterExamplesStart?(opts: StartScenarioOutlineOpts): void;\n onAfterExamplesEnd?(opts: EndScenarioOpts): void;\n onScenarioOutlineStart?(opts: StartScenarioOutlineOpts): void;\n onScenarioOutlineEnd?(opts: EndScenarioOpts): void;\n onPreScenarioStart?(): void;\n onPostScenarioEnd?(): void;\n onScenarioStart?(opts: StartScenarioOpts): void;\n onScenarioEnd?(opts: EndScenarioOpts): void;\n onStepStart?(opts: StartStepOpts): void;\n onStepEnd?(opts: EndStepOpts): void;\n onSetupStart?(opts: StartSetupOpts): void;\n onSetupEnd?(opts: EndSetupOpts): void;\n onTeardownStart?(opts: StartTeardownOpts): void;\n onTeardownEnd?(opts: EndTeardownOpts): void;\n onBeforeStart?(opts: StartBeforeOpts): void;\n onBeforeEnd?(opts: EndBeforeOpts): void;\n onAfterStart?(opts: StartAfterOpts): void;\n onAfterEnd?(opts: EndAfterOpts): void;\n onBeforeStepStart?(opts: StartStepOpts): void;\n onBeforeStepEnd?(opts: EndStepOpts): void;\n onAfterStepStart?(opts: StartStepOpts): void;\n onAfterStepEnd?(opts: EndStepOpts): void;\n}\n\nexport abstract class ProviderSubscriber implements EventSubscriber {\n abstract get fixtures(): {\n instances?: DependencyInstanceProvider[];\n prototypes?: Class<unknown>[];\n };\n\n addFixtureInstance = (instance: DependencyInstanceProvider) => {\n this.fixtures.instances?.push(instance);\n };\n\n onFeatureStart?(opts: StartFeatureOpts): void;\n}\n","import EventEmitter from \"events\";\nimport { Cb } from \"./test-event-emitter\";\nexport class TestEmitter<\n TArgsStart = never,\n TArgsEnd = never\n> extends EventEmitter {\n private promises: Promise<unknown>[] = [];\n\n constructor(readonly name: string) {\n super();\n }\n\n emitStart = (...args: TArgsStart[]) => {\n this.emit(`onStart${this.name}`, ...args);\n };\n\n onStart = (action?: (...args: unknown[]) => void) => {\n if (action) {\n this.on(`onStart${this.name}`, this.collectPromises(this.name, action));\n }\n };\n\n onEnd = (action?: (...args: unknown[]) => void) => {\n if (action) {\n this.on(`onEnd${this.name}`, this.collectPromises(this.name, action));\n }\n };\n\n emitEnd = (...args: TArgsEnd[]) => {\n this.emit(`onEnd${this.name}`, ...args);\n };\n\n load = (onStart?: Cb, onEnd?: Cb) => {\n this.onStart(onStart);\n this.onEnd(onEnd);\n };\n\n collectPromises = (name: string, action: (...args: unknown[]) => unknown) => {\n return (...args: unknown[]) => {\n try {\n const result = action(...args);\n if (result instanceof Promise) {\n this.promises.push(result);\n }\n } catch (e) {\n console.error(\n `Event Subscriber ${name} threw an error ${(e as Error).message}`\n );\n }\n };\n };\n\n waitForPromises = async () => {\n const settled = await Promise.allSettled(this.promises);\n return settled.filter((it) => it.status === \"rejected\").length;\n };\n}\n","import { EventSubscriber } from \"./event-subscriber\";\nimport { TestEmitter } from \"./test-emitter\";\nimport {\n StartScenarioOutlineOpts,\n EndScenarioOutlineOpts,\n StartFeatureOpts,\n EndFeatureOpts,\n StartRuleOpts,\n EndRuleOpts,\n StartScenarioOpts,\n EndScenarioOpts,\n StartSetupOpts,\n EndSetupOpts,\n StartTeardownOpts,\n EndTeardownOpts,\n StartBeforeOpts,\n EndBeforeOpts,\n StartAfterOpts,\n EndAfterOpts,\n StartStepOpts,\n EndStepOpts,\n} from \"./event-options\";\nexport class TestEventEmitter {\n scenarioOutline = new TestEmitter<\n StartScenarioOutlineOpts,\n EndScenarioOutlineOpts\n >(\"ScenarioOutline\");\n feature = new TestEmitter<StartFeatureOpts, EndFeatureOpts>(\"Feature\");\n rule = new TestEmitter<StartRuleOpts, EndRuleOpts>(\"Rule\");\n scenario = new TestEmitter<StartScenarioOpts, EndScenarioOpts>(\"Scenario\");\n scenarioWrapper = new TestEmitter<never, never>(\"Scenario Wrapper\");\n setup = new TestEmitter<StartSetupOpts, EndSetupOpts>(\"Setup\");\n beforeFeature = new TestEmitter<StartSetupOpts, EndSetupOpts>(\n \"BeforeFeature\"\n );\n afterFeature = new TestEmitter<StartSetupOpts, EndSetupOpts>(\"AfterFeature\");\n beforeRule = new TestEmitter<StartSetupOpts, EndSetupOpts>(\"BeforeRule\");\n afterRule = new TestEmitter<StartSetupOpts, EndSetupOpts>(\"AfterRule\");\n beforeScenarioOutline = new TestEmitter<StartSetupOpts, EndSetupOpts>(\n \"BeforeScenarioOutline\"\n );\n afterScenarioOutline = new TestEmitter<StartSetupOpts, EndSetupOpts>(\n \"AfterScenarioOutline\"\n );\n beforeExamples = new TestEmitter<StartSetupOpts, EndSetupOpts>(\n \"BeforeExamples\"\n );\n afterExamples = new TestEmitter<StartSetupOpts, EndSetupOpts>(\n \"AfterExamples\"\n );\n teardown = new TestEmitter<StartTeardownOpts, EndTeardownOpts>(\"Teardown\");\n before = new TestEmitter<StartBeforeOpts, EndBeforeOpts>(\"Before\");\n after = new TestEmitter<StartAfterOpts, EndAfterOpts>(\"After\");\n step = new TestEmitter<StartStepOpts, EndStepOpts>(\"Step\");\n beforeStep = new TestEmitter<StartStepOpts, EndStepOpts>(\"BeforeStep\");\n afterStep = new TestEmitter<StartStepOpts, EndStepOpts>(\"AfterStep\");\n\n settleAsyncEvents = async () => {\n return await Promise.allSettled([\n this.scenarioOutline.waitForPromises(),\n this.feature.waitForPromises(),\n this.rule.waitForPromises(),\n this.scenario.waitForPromises(),\n this.scenarioWrapper.waitForPromises(),\n this.setup.waitForPromises(),\n this.teardown.waitForPromises(),\n this.before.waitForPromises(),\n this.after.waitForPromises(),\n this.step.waitForPromises(),\n ]);\n };\n\n load = ({\n onFeatureStart,\n onFeatureEnd,\n onScenarioOutlineStart,\n onScenarioOutlineEnd,\n onScenarioStart,\n onScenarioEnd,\n onRuleStart,\n onRuleEnd,\n onBeforeStart,\n onBeforeEnd,\n onSetupStart,\n onSetupEnd,\n onStepStart,\n onStepEnd,\n onAfterStart,\n onAfterEnd,\n onTeardownStart,\n onTeardownEnd,\n onPreScenarioStart,\n onPostScenarioEnd,\n onBeforeFeatureStart,\n onBeforeFeatureEnd,\n onAfterFeatureStart,\n onAfterFeatureEnd,\n onBeforeRuleStart,\n onBeforeRuleEnd,\n onAfterRuleStart,\n onAfterRuleEnd,\n onBeforeScenarioOutlineStart,\n onBeforeScenarioOutlineEnd,\n onAfterScenarioOutlineStart,\n onAfterScenarioOutlineEnd,\n onBeforeExamplesStart,\n onBeforeExamplesEnd,\n onAfterExamplesStart,\n onBeforeStepStart,\n onBeforeStepEnd,\n onAfterStepStart,\n onAfterStepEnd,\n }: EventSubscriber) => {\n this.feature.load(onFeatureStart, onFeatureEnd);\n this.rule.load(onRuleStart, onRuleEnd);\n this.scenarioOutline.load(onScenarioOutlineStart, onScenarioOutlineEnd);\n this.scenario.load(onScenarioStart, onScenarioEnd);\n this.step.load(onStepStart, onStepEnd);\n this.before.load(onBeforeStart, onBeforeEnd);\n this.after.load(onAfterStart, onAfterEnd);\n this.setup.load(onSetupStart, onSetupEnd);\n this.teardown.load(onTeardownStart, onTeardownEnd);\n this.scenarioWrapper.load(onPreScenarioStart, onPostScenarioEnd);\n this.beforeFeature.load(onBeforeFeatureStart, onBeforeFeatureEnd);\n this.afterFeature.load(onAfterFeatureStart, onAfterFeatureEnd);\n this.beforeRule.load(onBeforeRuleStart, onBeforeRuleEnd);\n this.afterRule.load(onAfterRuleStart, onAfterRuleEnd);\n this.beforeScenarioOutline.load(\n onBeforeScenarioOutlineStart,\n onBeforeScenarioOutlineEnd\n );\n this.afterScenarioOutline.load(\n onAfterScenarioOutlineStart,\n onAfterScenarioOutlineEnd\n );\n this.beforeExamples.load(onBeforeExamplesStart, onBeforeExamplesEnd);\n this.afterExamples.load(onAfterExamplesStart, onBeforeStepStart);\n this.beforeStep.load(onBeforeStepStart, onBeforeStepEnd);\n this.afterStep.load(onAfterStepStart, onAfterStepEnd);\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type Cb = (...args: any[]) => void;\n","export const Status = {\n FAILED: \"FAILED\",\n BROKEN: \"BROKEN\",\n PASSED: \"PASSED\",\n SKIPPED: \"SKIPPED\",\n} as const;\n\nexport type StatusType = keyof typeof Status;\n"],"mappings":"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","names":["object"]}
package/dist/index.d.cts CHANGED
@@ -496,10 +496,26 @@ declare const EventSubscriberSchema: zod.ZodObject<{
496
496
  onFeature: (...args: unknown[]) => unknown;
497
497
  }>;
498
498
  interface EventSubscriber {
499
+ onBeforeFeatureStart?(opts: StartFeatureOpts): void;
500
+ onBeforeFeatureEnd?(opts: EndFeatureOpts): void;
501
+ onAfterFeatureStart?(opts: StartFeatureOpts): void;
502
+ onAfterFeatureEnd?(opts: EndFeatureOpts): void;
499
503
  onFeatureStart?(opts: StartFeatureOpts): void;
500
504
  onFeatureEnd?(opts: EndFeatureOpts): void;
505
+ onBeforeRuleStart?(opts: StartRuleOpts): void;
506
+ onBeforeRuleEnd?(opts: EndRuleOpts): void;
507
+ onAfterRuleStart?(opts: StartRuleOpts): void;
508
+ onAfterRuleEnd?(opts: EndRuleOpts): void;
501
509
  onRuleStart?(opts: StartRuleOpts): void;
502
510
  onRuleEnd?(opts: EndRuleOpts): void;
511
+ onBeforeScenarioOutlineStart?(opts: StartScenarioOutlineOpts): void;
512
+ onBeforeScenarioOutlineEnd?(opts: EndScenarioOpts): void;
513
+ onAfterScenarioOutlineStart?(opts: StartScenarioOutlineOpts): void;
514
+ onAfterScenarioOutlineEnd?(opts: EndScenarioOpts): void;
515
+ onBeforeExamplesStart?(opts: StartScenarioOutlineOpts): void;
516
+ onBeforeExamplesEnd?(opts: EndScenarioOpts): void;
517
+ onAfterExamplesStart?(opts: StartScenarioOutlineOpts): void;
518
+ onAfterExamplesEnd?(opts: EndScenarioOpts): void;
503
519
  onScenarioOutlineStart?(opts: StartScenarioOutlineOpts): void;
504
520
  onScenarioOutlineEnd?(opts: EndScenarioOpts): void;
505
521
  onPreScenarioStart?(): void;
@@ -516,6 +532,10 @@ interface EventSubscriber {
516
532
  onBeforeEnd?(opts: EndBeforeOpts): void;
517
533
  onAfterStart?(opts: StartAfterOpts): void;
518
534
  onAfterEnd?(opts: EndAfterOpts): void;
535
+ onBeforeStepStart?(opts: StartStepOpts): void;
536
+ onBeforeStepEnd?(opts: EndStepOpts): void;
537
+ onAfterStepStart?(opts: StartStepOpts): void;
538
+ onAfterStepEnd?(opts: EndStepOpts): void;
519
539
  }
520
540
  declare abstract class ProviderSubscriber implements EventSubscriber {
521
541
  abstract get fixtures(): {
@@ -613,6 +633,126 @@ declare class TestEventEmitter {
613
633
  modifier?: "skip" | "only" | undefined;
614
634
  error?: Error | undefined;
615
635
  }>;
636
+ beforeFeature: TestEmitter<{
637
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
638
+ title?: string | undefined;
639
+ keyword?: string | undefined;
640
+ tags?: string[] | undefined;
641
+ modifier?: "skip" | "only" | undefined;
642
+ args?: unknown[] | undefined;
643
+ }, {
644
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
645
+ title?: string | undefined;
646
+ keyword?: string | undefined;
647
+ tags?: string[] | undefined;
648
+ modifier?: "skip" | "only" | undefined;
649
+ error?: Error | undefined;
650
+ }>;
651
+ afterFeature: TestEmitter<{
652
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
653
+ title?: string | undefined;
654
+ keyword?: string | undefined;
655
+ tags?: string[] | undefined;
656
+ modifier?: "skip" | "only" | undefined;
657
+ args?: unknown[] | undefined;
658
+ }, {
659
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
660
+ title?: string | undefined;
661
+ keyword?: string | undefined;
662
+ tags?: string[] | undefined;
663
+ modifier?: "skip" | "only" | undefined;
664
+ error?: Error | undefined;
665
+ }>;
666
+ beforeRule: TestEmitter<{
667
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
668
+ title?: string | undefined;
669
+ keyword?: string | undefined;
670
+ tags?: string[] | undefined;
671
+ modifier?: "skip" | "only" | undefined;
672
+ args?: unknown[] | undefined;
673
+ }, {
674
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
675
+ title?: string | undefined;
676
+ keyword?: string | undefined;
677
+ tags?: string[] | undefined;
678
+ modifier?: "skip" | "only" | undefined;
679
+ error?: Error | undefined;
680
+ }>;
681
+ afterRule: TestEmitter<{
682
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
683
+ title?: string | undefined;
684
+ keyword?: string | undefined;
685
+ tags?: string[] | undefined;
686
+ modifier?: "skip" | "only" | undefined;
687
+ args?: unknown[] | undefined;
688
+ }, {
689
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
690
+ title?: string | undefined;
691
+ keyword?: string | undefined;
692
+ tags?: string[] | undefined;
693
+ modifier?: "skip" | "only" | undefined;
694
+ error?: Error | undefined;
695
+ }>;
696
+ beforeScenarioOutline: TestEmitter<{
697
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
698
+ title?: string | undefined;
699
+ keyword?: string | undefined;
700
+ tags?: string[] | undefined;
701
+ modifier?: "skip" | "only" | undefined;
702
+ args?: unknown[] | undefined;
703
+ }, {
704
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
705
+ title?: string | undefined;
706
+ keyword?: string | undefined;
707
+ tags?: string[] | undefined;
708
+ modifier?: "skip" | "only" | undefined;
709
+ error?: Error | undefined;
710
+ }>;
711
+ afterScenarioOutline: TestEmitter<{
712
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
713
+ title?: string | undefined;
714
+ keyword?: string | undefined;
715
+ tags?: string[] | undefined;
716
+ modifier?: "skip" | "only" | undefined;
717
+ args?: unknown[] | undefined;
718
+ }, {
719
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
720
+ title?: string | undefined;
721
+ keyword?: string | undefined;
722
+ tags?: string[] | undefined;
723
+ modifier?: "skip" | "only" | undefined;
724
+ error?: Error | undefined;
725
+ }>;
726
+ beforeExamples: TestEmitter<{
727
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
728
+ title?: string | undefined;
729
+ keyword?: string | undefined;
730
+ tags?: string[] | undefined;
731
+ modifier?: "skip" | "only" | undefined;
732
+ args?: unknown[] | undefined;
733
+ }, {
734
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
735
+ title?: string | undefined;
736
+ keyword?: string | undefined;
737
+ tags?: string[] | undefined;
738
+ modifier?: "skip" | "only" | undefined;
739
+ error?: Error | undefined;
740
+ }>;
741
+ afterExamples: TestEmitter<{
742
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
743
+ title?: string | undefined;
744
+ keyword?: string | undefined;
745
+ tags?: string[] | undefined;
746
+ modifier?: "skip" | "only" | undefined;
747
+ args?: unknown[] | undefined;
748
+ }, {
749
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
750
+ title?: string | undefined;
751
+ keyword?: string | undefined;
752
+ tags?: string[] | undefined;
753
+ modifier?: "skip" | "only" | undefined;
754
+ error?: Error | undefined;
755
+ }>;
616
756
  teardown: TestEmitter<{
617
757
  status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
618
758
  title?: string | undefined;
@@ -682,8 +822,56 @@ declare class TestEventEmitter {
682
822
  modifier?: "skip" | "only" | undefined;
683
823
  error?: Error | undefined;
684
824
  }>;
825
+ beforeStep: TestEmitter<{
826
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
827
+ title?: string | undefined;
828
+ keyword?: string | undefined;
829
+ tags?: string[] | undefined;
830
+ modifier?: "skip" | "only" | undefined;
831
+ args?: unknown[] | undefined;
832
+ expression?: string | undefined;
833
+ }, {
834
+ expression: string;
835
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
836
+ title?: string | undefined;
837
+ keyword?: string | undefined;
838
+ tags?: string[] | undefined;
839
+ modifier?: "skip" | "only" | undefined;
840
+ args?: unknown[] | undefined;
841
+ } & {
842
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
843
+ title?: string | undefined;
844
+ keyword?: string | undefined;
845
+ tags?: string[] | undefined;
846
+ modifier?: "skip" | "only" | undefined;
847
+ error?: Error | undefined;
848
+ }>;
849
+ afterStep: TestEmitter<{
850
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
851
+ title?: string | undefined;
852
+ keyword?: string | undefined;
853
+ tags?: string[] | undefined;
854
+ modifier?: "skip" | "only" | undefined;
855
+ args?: unknown[] | undefined;
856
+ expression?: string | undefined;
857
+ }, {
858
+ expression: string;
859
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
860
+ title?: string | undefined;
861
+ keyword?: string | undefined;
862
+ tags?: string[] | undefined;
863
+ modifier?: "skip" | "only" | undefined;
864
+ args?: unknown[] | undefined;
865
+ } & {
866
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
867
+ title?: string | undefined;
868
+ keyword?: string | undefined;
869
+ tags?: string[] | undefined;
870
+ modifier?: "skip" | "only" | undefined;
871
+ error?: Error | undefined;
872
+ }>;
685
873
  settleAsyncEvents: () => Promise<[PromiseSettledResult<number>, PromiseSettledResult<number>, PromiseSettledResult<number>, PromiseSettledResult<number>, PromiseSettledResult<number>, PromiseSettledResult<number>, PromiseSettledResult<number>, PromiseSettledResult<number>, PromiseSettledResult<number>, PromiseSettledResult<number>]>;
686
- load: ({ onFeatureStart, onFeatureEnd, onScenarioOutlineStart, onScenarioOutlineEnd, onScenarioStart, onScenarioEnd, onRuleStart, onRuleEnd, onBeforeStart, onBeforeEnd, onSetupStart, onSetupEnd, onStepStart, onStepEnd, onAfterStart, onAfterEnd, onTeardownStart, onTeardownEnd, onPreScenarioStart, onPostScenarioEnd, }: EventSubscriber) => void;
874
+ load: ({ onFeatureStart, onFeatureEnd, onScenarioOutlineStart, onScenarioOutlineEnd, onScenarioStart, onScenarioEnd, onRuleStart, onRuleEnd, onBeforeStart, onBeforeEnd, onSetupStart, onSetupEnd, onStepStart, onStepEnd, onAfterStart, onAfterEnd, onTeardownStart, onTeardownEnd, onPreScenarioStart, onPostScenarioEnd, onBeforeFeatureStart, onBeforeFeatureEnd, onAfterFeatureStart, onAfterFeatureEnd, onBeforeRuleStart, onBeforeRuleEnd, onAfterRuleStart, onAfterRuleEnd, onBeforeScenarioOutlineStart, onBeforeScenarioOutlineEnd, onAfterScenarioOutlineStart, onAfterScenarioOutlineEnd, onBeforeExamplesStart, onBeforeExamplesEnd, onAfterExamplesStart, onBeforeStepStart, onBeforeStepEnd, onAfterStepStart, onAfterStepEnd, }: EventSubscriber) => void;
687
875
  }
688
876
  type Cb = (...args: any[]) => void;
689
877
 
package/dist/index.d.ts CHANGED
@@ -496,10 +496,26 @@ declare const EventSubscriberSchema: zod.ZodObject<{
496
496
  onFeature: (...args: unknown[]) => unknown;
497
497
  }>;
498
498
  interface EventSubscriber {
499
+ onBeforeFeatureStart?(opts: StartFeatureOpts): void;
500
+ onBeforeFeatureEnd?(opts: EndFeatureOpts): void;
501
+ onAfterFeatureStart?(opts: StartFeatureOpts): void;
502
+ onAfterFeatureEnd?(opts: EndFeatureOpts): void;
499
503
  onFeatureStart?(opts: StartFeatureOpts): void;
500
504
  onFeatureEnd?(opts: EndFeatureOpts): void;
505
+ onBeforeRuleStart?(opts: StartRuleOpts): void;
506
+ onBeforeRuleEnd?(opts: EndRuleOpts): void;
507
+ onAfterRuleStart?(opts: StartRuleOpts): void;
508
+ onAfterRuleEnd?(opts: EndRuleOpts): void;
501
509
  onRuleStart?(opts: StartRuleOpts): void;
502
510
  onRuleEnd?(opts: EndRuleOpts): void;
511
+ onBeforeScenarioOutlineStart?(opts: StartScenarioOutlineOpts): void;
512
+ onBeforeScenarioOutlineEnd?(opts: EndScenarioOpts): void;
513
+ onAfterScenarioOutlineStart?(opts: StartScenarioOutlineOpts): void;
514
+ onAfterScenarioOutlineEnd?(opts: EndScenarioOpts): void;
515
+ onBeforeExamplesStart?(opts: StartScenarioOutlineOpts): void;
516
+ onBeforeExamplesEnd?(opts: EndScenarioOpts): void;
517
+ onAfterExamplesStart?(opts: StartScenarioOutlineOpts): void;
518
+ onAfterExamplesEnd?(opts: EndScenarioOpts): void;
503
519
  onScenarioOutlineStart?(opts: StartScenarioOutlineOpts): void;
504
520
  onScenarioOutlineEnd?(opts: EndScenarioOpts): void;
505
521
  onPreScenarioStart?(): void;
@@ -516,6 +532,10 @@ interface EventSubscriber {
516
532
  onBeforeEnd?(opts: EndBeforeOpts): void;
517
533
  onAfterStart?(opts: StartAfterOpts): void;
518
534
  onAfterEnd?(opts: EndAfterOpts): void;
535
+ onBeforeStepStart?(opts: StartStepOpts): void;
536
+ onBeforeStepEnd?(opts: EndStepOpts): void;
537
+ onAfterStepStart?(opts: StartStepOpts): void;
538
+ onAfterStepEnd?(opts: EndStepOpts): void;
519
539
  }
520
540
  declare abstract class ProviderSubscriber implements EventSubscriber {
521
541
  abstract get fixtures(): {
@@ -613,6 +633,126 @@ declare class TestEventEmitter {
613
633
  modifier?: "skip" | "only" | undefined;
614
634
  error?: Error | undefined;
615
635
  }>;
636
+ beforeFeature: TestEmitter<{
637
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
638
+ title?: string | undefined;
639
+ keyword?: string | undefined;
640
+ tags?: string[] | undefined;
641
+ modifier?: "skip" | "only" | undefined;
642
+ args?: unknown[] | undefined;
643
+ }, {
644
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
645
+ title?: string | undefined;
646
+ keyword?: string | undefined;
647
+ tags?: string[] | undefined;
648
+ modifier?: "skip" | "only" | undefined;
649
+ error?: Error | undefined;
650
+ }>;
651
+ afterFeature: TestEmitter<{
652
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
653
+ title?: string | undefined;
654
+ keyword?: string | undefined;
655
+ tags?: string[] | undefined;
656
+ modifier?: "skip" | "only" | undefined;
657
+ args?: unknown[] | undefined;
658
+ }, {
659
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
660
+ title?: string | undefined;
661
+ keyword?: string | undefined;
662
+ tags?: string[] | undefined;
663
+ modifier?: "skip" | "only" | undefined;
664
+ error?: Error | undefined;
665
+ }>;
666
+ beforeRule: TestEmitter<{
667
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
668
+ title?: string | undefined;
669
+ keyword?: string | undefined;
670
+ tags?: string[] | undefined;
671
+ modifier?: "skip" | "only" | undefined;
672
+ args?: unknown[] | undefined;
673
+ }, {
674
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
675
+ title?: string | undefined;
676
+ keyword?: string | undefined;
677
+ tags?: string[] | undefined;
678
+ modifier?: "skip" | "only" | undefined;
679
+ error?: Error | undefined;
680
+ }>;
681
+ afterRule: TestEmitter<{
682
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
683
+ title?: string | undefined;
684
+ keyword?: string | undefined;
685
+ tags?: string[] | undefined;
686
+ modifier?: "skip" | "only" | undefined;
687
+ args?: unknown[] | undefined;
688
+ }, {
689
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
690
+ title?: string | undefined;
691
+ keyword?: string | undefined;
692
+ tags?: string[] | undefined;
693
+ modifier?: "skip" | "only" | undefined;
694
+ error?: Error | undefined;
695
+ }>;
696
+ beforeScenarioOutline: TestEmitter<{
697
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
698
+ title?: string | undefined;
699
+ keyword?: string | undefined;
700
+ tags?: string[] | undefined;
701
+ modifier?: "skip" | "only" | undefined;
702
+ args?: unknown[] | undefined;
703
+ }, {
704
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
705
+ title?: string | undefined;
706
+ keyword?: string | undefined;
707
+ tags?: string[] | undefined;
708
+ modifier?: "skip" | "only" | undefined;
709
+ error?: Error | undefined;
710
+ }>;
711
+ afterScenarioOutline: TestEmitter<{
712
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
713
+ title?: string | undefined;
714
+ keyword?: string | undefined;
715
+ tags?: string[] | undefined;
716
+ modifier?: "skip" | "only" | undefined;
717
+ args?: unknown[] | undefined;
718
+ }, {
719
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
720
+ title?: string | undefined;
721
+ keyword?: string | undefined;
722
+ tags?: string[] | undefined;
723
+ modifier?: "skip" | "only" | undefined;
724
+ error?: Error | undefined;
725
+ }>;
726
+ beforeExamples: TestEmitter<{
727
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
728
+ title?: string | undefined;
729
+ keyword?: string | undefined;
730
+ tags?: string[] | undefined;
731
+ modifier?: "skip" | "only" | undefined;
732
+ args?: unknown[] | undefined;
733
+ }, {
734
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
735
+ title?: string | undefined;
736
+ keyword?: string | undefined;
737
+ tags?: string[] | undefined;
738
+ modifier?: "skip" | "only" | undefined;
739
+ error?: Error | undefined;
740
+ }>;
741
+ afterExamples: TestEmitter<{
742
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
743
+ title?: string | undefined;
744
+ keyword?: string | undefined;
745
+ tags?: string[] | undefined;
746
+ modifier?: "skip" | "only" | undefined;
747
+ args?: unknown[] | undefined;
748
+ }, {
749
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
750
+ title?: string | undefined;
751
+ keyword?: string | undefined;
752
+ tags?: string[] | undefined;
753
+ modifier?: "skip" | "only" | undefined;
754
+ error?: Error | undefined;
755
+ }>;
616
756
  teardown: TestEmitter<{
617
757
  status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
618
758
  title?: string | undefined;
@@ -682,8 +822,56 @@ declare class TestEventEmitter {
682
822
  modifier?: "skip" | "only" | undefined;
683
823
  error?: Error | undefined;
684
824
  }>;
825
+ beforeStep: TestEmitter<{
826
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
827
+ title?: string | undefined;
828
+ keyword?: string | undefined;
829
+ tags?: string[] | undefined;
830
+ modifier?: "skip" | "only" | undefined;
831
+ args?: unknown[] | undefined;
832
+ expression?: string | undefined;
833
+ }, {
834
+ expression: string;
835
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
836
+ title?: string | undefined;
837
+ keyword?: string | undefined;
838
+ tags?: string[] | undefined;
839
+ modifier?: "skip" | "only" | undefined;
840
+ args?: unknown[] | undefined;
841
+ } & {
842
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
843
+ title?: string | undefined;
844
+ keyword?: string | undefined;
845
+ tags?: string[] | undefined;
846
+ modifier?: "skip" | "only" | undefined;
847
+ error?: Error | undefined;
848
+ }>;
849
+ afterStep: TestEmitter<{
850
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
851
+ title?: string | undefined;
852
+ keyword?: string | undefined;
853
+ tags?: string[] | undefined;
854
+ modifier?: "skip" | "only" | undefined;
855
+ args?: unknown[] | undefined;
856
+ expression?: string | undefined;
857
+ }, {
858
+ expression: string;
859
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
860
+ title?: string | undefined;
861
+ keyword?: string | undefined;
862
+ tags?: string[] | undefined;
863
+ modifier?: "skip" | "only" | undefined;
864
+ args?: unknown[] | undefined;
865
+ } & {
866
+ status?: "FAILED" | "BROKEN" | "PASSED" | "SKIPPED" | undefined;
867
+ title?: string | undefined;
868
+ keyword?: string | undefined;
869
+ tags?: string[] | undefined;
870
+ modifier?: "skip" | "only" | undefined;
871
+ error?: Error | undefined;
872
+ }>;
685
873
  settleAsyncEvents: () => Promise<[PromiseSettledResult<number>, PromiseSettledResult<number>, PromiseSettledResult<number>, PromiseSettledResult<number>, PromiseSettledResult<number>, PromiseSettledResult<number>, PromiseSettledResult<number>, PromiseSettledResult<number>, PromiseSettledResult<number>, PromiseSettledResult<number>]>;
686
- load: ({ onFeatureStart, onFeatureEnd, onScenarioOutlineStart, onScenarioOutlineEnd, onScenarioStart, onScenarioEnd, onRuleStart, onRuleEnd, onBeforeStart, onBeforeEnd, onSetupStart, onSetupEnd, onStepStart, onStepEnd, onAfterStart, onAfterEnd, onTeardownStart, onTeardownEnd, onPreScenarioStart, onPostScenarioEnd, }: EventSubscriber) => void;
874
+ load: ({ onFeatureStart, onFeatureEnd, onScenarioOutlineStart, onScenarioOutlineEnd, onScenarioStart, onScenarioEnd, onRuleStart, onRuleEnd, onBeforeStart, onBeforeEnd, onSetupStart, onSetupEnd, onStepStart, onStepEnd, onAfterStart, onAfterEnd, onTeardownStart, onTeardownEnd, onPreScenarioStart, onPostScenarioEnd, onBeforeFeatureStart, onBeforeFeatureEnd, onAfterFeatureStart, onAfterFeatureEnd, onBeforeRuleStart, onBeforeRuleEnd, onAfterRuleStart, onAfterRuleEnd, onBeforeScenarioOutlineStart, onBeforeScenarioOutlineEnd, onAfterScenarioOutlineStart, onAfterScenarioOutlineEnd, onBeforeExamplesStart, onBeforeExamplesEnd, onAfterExamplesStart, onBeforeStepStart, onBeforeStepEnd, onAfterStepStart, onAfterStepEnd, }: EventSubscriber) => void;
687
875
  }
688
876
  type Cb = (...args: any[]) => void;
689
877
 
package/dist/index.js CHANGED
@@ -179,10 +179,30 @@ var TestEventEmitter = class {
179
179
  this.scenario = new TestEmitter("Scenario");
180
180
  this.scenarioWrapper = new TestEmitter("Scenario Wrapper");
181
181
  this.setup = new TestEmitter("Setup");
182
+ this.beforeFeature = new TestEmitter(
183
+ "BeforeFeature"
184
+ );
185
+ this.afterFeature = new TestEmitter("AfterFeature");
186
+ this.beforeRule = new TestEmitter("BeforeRule");
187
+ this.afterRule = new TestEmitter("AfterRule");
188
+ this.beforeScenarioOutline = new TestEmitter(
189
+ "BeforeScenarioOutline"
190
+ );
191
+ this.afterScenarioOutline = new TestEmitter(
192
+ "AfterScenarioOutline"
193
+ );
194
+ this.beforeExamples = new TestEmitter(
195
+ "BeforeExamples"
196
+ );
197
+ this.afterExamples = new TestEmitter(
198
+ "AfterExamples"
199
+ );
182
200
  this.teardown = new TestEmitter("Teardown");
183
201
  this.before = new TestEmitter("Before");
184
202
  this.after = new TestEmitter("After");
185
203
  this.step = new TestEmitter("Step");
204
+ this.beforeStep = new TestEmitter("BeforeStep");
205
+ this.afterStep = new TestEmitter("AfterStep");
186
206
  this.settleAsyncEvents = async () => {
187
207
  return await Promise.allSettled([
188
208
  this.scenarioOutline.waitForPromises(),
@@ -217,7 +237,26 @@ var TestEventEmitter = class {
217
237
  onTeardownStart,
218
238
  onTeardownEnd,
219
239
  onPreScenarioStart,
220
- onPostScenarioEnd
240
+ onPostScenarioEnd,
241
+ onBeforeFeatureStart,
242
+ onBeforeFeatureEnd,
243
+ onAfterFeatureStart,
244
+ onAfterFeatureEnd,
245
+ onBeforeRuleStart,
246
+ onBeforeRuleEnd,
247
+ onAfterRuleStart,
248
+ onAfterRuleEnd,
249
+ onBeforeScenarioOutlineStart,
250
+ onBeforeScenarioOutlineEnd,
251
+ onAfterScenarioOutlineStart,
252
+ onAfterScenarioOutlineEnd,
253
+ onBeforeExamplesStart,
254
+ onBeforeExamplesEnd,
255
+ onAfterExamplesStart,
256
+ onBeforeStepStart,
257
+ onBeforeStepEnd,
258
+ onAfterStepStart,
259
+ onAfterStepEnd
221
260
  }) => {
222
261
  this.feature.load(onFeatureStart, onFeatureEnd);
223
262
  this.rule.load(onRuleStart, onRuleEnd);
@@ -229,6 +268,22 @@ var TestEventEmitter = class {
229
268
  this.setup.load(onSetupStart, onSetupEnd);
230
269
  this.teardown.load(onTeardownStart, onTeardownEnd);
231
270
  this.scenarioWrapper.load(onPreScenarioStart, onPostScenarioEnd);
271
+ this.beforeFeature.load(onBeforeFeatureStart, onBeforeFeatureEnd);
272
+ this.afterFeature.load(onAfterFeatureStart, onAfterFeatureEnd);
273
+ this.beforeRule.load(onBeforeRuleStart, onBeforeRuleEnd);
274
+ this.afterRule.load(onAfterRuleStart, onAfterRuleEnd);
275
+ this.beforeScenarioOutline.load(
276
+ onBeforeScenarioOutlineStart,
277
+ onBeforeScenarioOutlineEnd
278
+ );
279
+ this.afterScenarioOutline.load(
280
+ onAfterScenarioOutlineStart,
281
+ onAfterScenarioOutlineEnd
282
+ );
283
+ this.beforeExamples.load(onBeforeExamplesStart, onBeforeExamplesEnd);
284
+ this.afterExamples.load(onAfterExamplesStart, onBeforeStepStart);
285
+ this.beforeStep.load(onBeforeStepStart, onBeforeStepEnd);
286
+ this.afterStep.load(onAfterStepStart, onAfterStepEnd);
232
287
  };
233
288
  }
234
289
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/event-options.ts","../src/event-subscriber.ts","../src/test-emitter.ts","../src/test-event-emitter.ts","../src/test-status.ts"],"sourcesContent":["export * from \"./event-options\";\nexport * from \"./event-subscriber\";\nexport * from \"./test-event-emitter\";\nexport * from \"./test-emitter\";\nexport * from \"./test-status\";\n","import { object, string, literal, z } from \"zod\";\nconst uuidRegex =\n /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/gm;\nexport const UUIDStringSchema = string().regex(uuidRegex).optional();\n\nexport const StatusSchema = z.union([\n literal(\"FAILED\"),\n literal(\"BROKEN\"),\n literal(\"PASSED\"),\n literal(\"SKIPPED\"),\n]);\nexport const EventOptionsSchema = object({\n title: string().optional(),\n keyword: string().optional(),\n tags: string().array().optional(),\n modifier: literal(\"skip\").or(literal(\"only\")).optional(),\n status: StatusSchema.optional(),\n});\n\nexport const ErrorEventSchema = EventOptionsSchema.extend({\n error: z.instanceof(Error).optional(),\n});\nexport const ArgsEventSchema = EventOptionsSchema.extend({\n args: z.array(z.unknown()).optional(),\n});\n\nexport const StartFeatureOptsSchema = EventOptionsSchema.extend({\n path: string().optional(),\n});\n\nexport const EndFeatureOptsSchema = ErrorEventSchema;\n\nexport const EndRuleOptsSchema = ErrorEventSchema;\n\nexport const StartScenarioOutlineOptsSchema = EventOptionsSchema;\n// .extend({\n// uuid: UUIDStringSchema.optional()\n// });\n\nexport const EndScenarioOutlineOptsSchema = ErrorEventSchema;\n\nexport const StartScenarioOptsSchema = EventOptionsSchema;\n\nexport const EndScenarioOptsSchema = ErrorEventSchema;\n\nexport const StartStepOptsSchema = EventOptionsSchema.extend({\n args: z.array(z.unknown()).optional(),\n expression: z.string().optional(),\n});\nexport const EndStepOptsSchema = EventOptionsSchema.extend({\n args: z.array(z.unknown()).optional(),\n expression: z.string(),\n}).and(ErrorEventSchema);\nexport const StartBeforeOptsSchema = ArgsEventSchema;\nexport const EndBeforeOptsSchema = ErrorEventSchema;\nexport const StartAfterOptsSchema = ArgsEventSchema;\nexport const EndAfterOptsSchema = ErrorEventSchema;\nexport const StartSetupOptsSchema = ArgsEventSchema;\nexport const EndSetupOptsSchema = ErrorEventSchema;\nexport const StartTeardownOptsSchema = ArgsEventSchema;\nexport const EndTeardownOptsSchema = ErrorEventSchema;\n\nexport type EventOptions = z.infer<typeof EventOptionsSchema>;\nexport type StartFeatureOpts = z.infer<typeof StartFeatureOptsSchema>;\nexport type EndFeatureOpts = z.infer<typeof EndFeatureOptsSchema>;\nexport type StartRuleOpts = EventOptions;\nexport type EndRuleOpts = z.infer<typeof EndRuleOptsSchema>;\nexport type StartScenarioOutlineOpts = z.infer<\n typeof StartScenarioOutlineOptsSchema\n>;\nexport type EndScenarioOutlineOpts = z.infer<\n typeof EndScenarioOutlineOptsSchema\n>;\nexport type StartScenarioOpts = z.infer<typeof StartScenarioOptsSchema>;\nexport type EndScenarioOpts = z.infer<typeof EndScenarioOptsSchema>;\nexport type StartStepOpts = z.infer<typeof StartStepOptsSchema>;\nexport type EndStepOpts = z.infer<typeof EndStepOptsSchema>;\nexport type StartBeforeOpts = z.infer<typeof StartBeforeOptsSchema>;\nexport type EndBeforeOpts = z.infer<typeof EndBeforeOptsSchema>;\nexport type StartAfterOpts = z.infer<typeof StartAfterOptsSchema>;\nexport type EndAfterOpts = z.infer<typeof EndAfterOptsSchema>;\nexport type StartSetupOpts = z.infer<typeof StartSetupOptsSchema>;\nexport type EndSetupOpts = z.infer<typeof EndSetupOptsSchema>;\nexport type StartTeardownOpts = z.infer<typeof StartTeardownOptsSchema>;\nexport type EndTeardownOpts = z.infer<typeof EndTeardownOptsSchema>;\n","import { Class } from \"@autometa/types\";\nimport { InjectionToken } from \"tsyringe\";\nimport {\n EndAfterOpts,\n EndBeforeOpts,\n EndFeatureOpts,\n EndRuleOpts,\n EndScenarioOpts,\n EndSetupOpts,\n EndStepOpts,\n EndTeardownOpts,\n StartAfterOpts,\n StartBeforeOpts,\n StartFeatureOpts,\n StartRuleOpts,\n StartScenarioOpts,\n StartScenarioOutlineOpts,\n StartSetupOpts,\n StartStepOpts,\n StartTeardownOpts,\n} from \"./event-options\";\nimport { object, function as fun } from \"zod\";\nexport type DependencyInstanceProvider = {\n token: InjectionToken<unknown>;\n instance: unknown;\n};\n\nexport const EventSubscriberSchema = object({\n onFeature: fun(),\n});\nexport interface EventSubscriber {\n onFeatureStart?(opts: StartFeatureOpts): void;\n onFeatureEnd?(opts: EndFeatureOpts): void;\n onRuleStart?(opts: StartRuleOpts): void;\n onRuleEnd?(opts: EndRuleOpts): void;\n onScenarioOutlineStart?(opts: StartScenarioOutlineOpts): void;\n onScenarioOutlineEnd?(opts: EndScenarioOpts): void;\n onPreScenarioStart?(): void;\n onPostScenarioEnd?(): void;\n onScenarioStart?(opts: StartScenarioOpts): void;\n onScenarioEnd?(opts: EndScenarioOpts): void;\n onStepStart?(opts: StartStepOpts): void;\n onStepEnd?(opts: EndStepOpts): void;\n onSetupStart?(opts: StartSetupOpts): void;\n onSetupEnd?(opts: EndSetupOpts): void;\n onTeardownStart?(opts: StartTeardownOpts): void;\n onTeardownEnd?(opts: EndTeardownOpts): void;\n onBeforeStart?(opts: StartBeforeOpts): void;\n onBeforeEnd?(opts: EndBeforeOpts): void;\n onAfterStart?(opts: StartAfterOpts): void;\n onAfterEnd?(opts: EndAfterOpts): void;\n}\n\nexport abstract class ProviderSubscriber implements EventSubscriber {\n abstract get fixtures(): {\n instances?: DependencyInstanceProvider[];\n prototypes?: Class<unknown>[];\n };\n\n addFixtureInstance = (instance: DependencyInstanceProvider) => {\n this.fixtures.instances?.push(instance);\n };\n\n onFeatureStart?(opts: StartFeatureOpts): void;\n}\n","import EventEmitter from \"events\";\nimport { Cb } from \"./test-event-emitter\";\nexport class TestEmitter<\n TArgsStart = never,\n TArgsEnd = never\n> extends EventEmitter {\n private promises: Promise<unknown>[] = [];\n\n constructor(readonly name: string) {\n super();\n }\n\n emitStart = (...args: TArgsStart[]) => {\n this.emit(`onStart${this.name}`, ...args);\n };\n\n onStart = (action?: (...args: unknown[]) => void) => {\n if (action) {\n this.on(`onStart${this.name}`, this.collectPromises(this.name, action));\n }\n };\n\n onEnd = (action?: (...args: unknown[]) => void) => {\n if (action) {\n this.on(`onEnd${this.name}`, this.collectPromises(this.name, action));\n }\n };\n\n emitEnd = (...args: TArgsEnd[]) => {\n this.emit(`onEnd${this.name}`, ...args);\n };\n\n load = (onStart?: Cb, onEnd?: Cb) => {\n this.onStart(onStart);\n this.onEnd(onEnd);\n };\n\n collectPromises = (name: string, action: (...args: unknown[]) => unknown) => {\n return (...args: unknown[]) => {\n try {\n const result = action(...args);\n if (result instanceof Promise) {\n this.promises.push(result);\n }\n } catch (e) {\n console.error(\n `Event Subscriber ${name} threw an error ${(e as Error).message}`\n );\n }\n };\n };\n\n waitForPromises = async () => {\n const settled = await Promise.allSettled(this.promises);\n return settled.filter((it) => it.status === \"rejected\").length;\n };\n}\n","import { EventSubscriber } from \"./event-subscriber\";\nimport { TestEmitter } from \"./test-emitter\";\nimport {\n StartScenarioOutlineOpts,\n EndScenarioOutlineOpts,\n StartFeatureOpts,\n EndFeatureOpts,\n StartRuleOpts,\n EndRuleOpts,\n StartScenarioOpts,\n EndScenarioOpts,\n StartSetupOpts,\n EndSetupOpts,\n StartTeardownOpts,\n EndTeardownOpts,\n StartBeforeOpts,\n EndBeforeOpts,\n StartAfterOpts,\n EndAfterOpts,\n StartStepOpts,\n EndStepOpts,\n} from \"./event-options\";\nexport class TestEventEmitter {\n scenarioOutline = new TestEmitter<\n StartScenarioOutlineOpts,\n EndScenarioOutlineOpts\n >(\"ScenarioOutline\");\n feature = new TestEmitter<StartFeatureOpts, EndFeatureOpts>(\"Feature\");\n rule = new TestEmitter<StartRuleOpts, EndRuleOpts>(\"Rule\");\n scenario = new TestEmitter<StartScenarioOpts, EndScenarioOpts>(\"Scenario\");\n scenarioWrapper = new TestEmitter<never, never>(\"Scenario Wrapper\");\n setup = new TestEmitter<StartSetupOpts, EndSetupOpts>(\"Setup\");\n teardown = new TestEmitter<StartTeardownOpts, EndTeardownOpts>(\"Teardown\");\n before = new TestEmitter<StartBeforeOpts, EndBeforeOpts>(\"Before\");\n after = new TestEmitter<StartAfterOpts, EndAfterOpts>(\"After\");\n step = new TestEmitter<StartStepOpts, EndStepOpts>(\"Step\");\n\n settleAsyncEvents = async () => {\n return await Promise.allSettled([\n this.scenarioOutline.waitForPromises(),\n this.feature.waitForPromises(),\n this.rule.waitForPromises(),\n this.scenario.waitForPromises(),\n this.scenarioWrapper.waitForPromises(),\n this.setup.waitForPromises(),\n this.teardown.waitForPromises(),\n this.before.waitForPromises(),\n this.after.waitForPromises(),\n this.step.waitForPromises(),\n ]);\n };\n\n load = ({\n onFeatureStart,\n onFeatureEnd,\n onScenarioOutlineStart,\n onScenarioOutlineEnd,\n onScenarioStart,\n onScenarioEnd,\n onRuleStart,\n onRuleEnd,\n onBeforeStart,\n onBeforeEnd,\n onSetupStart,\n onSetupEnd,\n onStepStart,\n onStepEnd,\n onAfterStart,\n onAfterEnd,\n onTeardownStart,\n onTeardownEnd,\n onPreScenarioStart,\n onPostScenarioEnd,\n }: EventSubscriber) => {\n this.feature.load(onFeatureStart, onFeatureEnd);\n this.rule.load(onRuleStart, onRuleEnd);\n this.scenarioOutline.load(onScenarioOutlineStart, onScenarioOutlineEnd);\n this.scenario.load(onScenarioStart, onScenarioEnd);\n this.step.load(onStepStart, onStepEnd);\n this.before.load(onBeforeStart, onBeforeEnd);\n this.after.load(onAfterStart, onAfterEnd);\n this.setup.load(onSetupStart, onSetupEnd);\n this.teardown.load(onTeardownStart, onTeardownEnd);\n this.scenarioWrapper.load(onPreScenarioStart, onPostScenarioEnd);\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type Cb = (...args: any[]) => void;\n","export const Status = {\n FAILED: \"FAILED\",\n BROKEN: \"BROKEN\",\n PASSED: \"PASSED\",\n SKIPPED: \"SKIPPED\",\n} as const;\n\nexport type StatusType = keyof typeof Status;\n"],"mappings":"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","names":["import_zod","fun","EventEmitter"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/event-options.ts","../src/event-subscriber.ts","../src/test-emitter.ts","../src/test-event-emitter.ts","../src/test-status.ts"],"sourcesContent":["export * from \"./event-options\";\nexport * from \"./event-subscriber\";\nexport * from \"./test-event-emitter\";\nexport * from \"./test-emitter\";\nexport * from \"./test-status\";\n","import { object, string, literal, z } from \"zod\";\nconst uuidRegex =\n /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/gm;\nexport const UUIDStringSchema = string().regex(uuidRegex).optional();\n\nexport const StatusSchema = z.union([\n literal(\"FAILED\"),\n literal(\"BROKEN\"),\n literal(\"PASSED\"),\n literal(\"SKIPPED\"),\n]);\nexport const EventOptionsSchema = object({\n title: string().optional(),\n keyword: string().optional(),\n tags: string().array().optional(),\n modifier: literal(\"skip\").or(literal(\"only\")).optional(),\n status: StatusSchema.optional(),\n});\n\nexport const ErrorEventSchema = EventOptionsSchema.extend({\n error: z.instanceof(Error).optional(),\n});\nexport const ArgsEventSchema = EventOptionsSchema.extend({\n args: z.array(z.unknown()).optional(),\n});\n\nexport const StartFeatureOptsSchema = EventOptionsSchema.extend({\n path: string().optional(),\n});\n\nexport const EndFeatureOptsSchema = ErrorEventSchema;\n\nexport const EndRuleOptsSchema = ErrorEventSchema;\n\nexport const StartScenarioOutlineOptsSchema = EventOptionsSchema;\n// .extend({\n// uuid: UUIDStringSchema.optional()\n// });\n\nexport const EndScenarioOutlineOptsSchema = ErrorEventSchema;\n\nexport const StartScenarioOptsSchema = EventOptionsSchema;\n\nexport const EndScenarioOptsSchema = ErrorEventSchema;\n\nexport const StartStepOptsSchema = EventOptionsSchema.extend({\n args: z.array(z.unknown()).optional(),\n expression: z.string().optional(),\n});\nexport const EndStepOptsSchema = EventOptionsSchema.extend({\n args: z.array(z.unknown()).optional(),\n expression: z.string(),\n}).and(ErrorEventSchema);\nexport const StartBeforeOptsSchema = ArgsEventSchema;\nexport const EndBeforeOptsSchema = ErrorEventSchema;\nexport const StartAfterOptsSchema = ArgsEventSchema;\nexport const EndAfterOptsSchema = ErrorEventSchema;\nexport const StartSetupOptsSchema = ArgsEventSchema;\nexport const EndSetupOptsSchema = ErrorEventSchema;\nexport const StartTeardownOptsSchema = ArgsEventSchema;\nexport const EndTeardownOptsSchema = ErrorEventSchema;\n\nexport type EventOptions = z.infer<typeof EventOptionsSchema>;\nexport type StartFeatureOpts = z.infer<typeof StartFeatureOptsSchema>;\nexport type EndFeatureOpts = z.infer<typeof EndFeatureOptsSchema>;\nexport type StartRuleOpts = EventOptions;\nexport type EndRuleOpts = z.infer<typeof EndRuleOptsSchema>;\nexport type StartScenarioOutlineOpts = z.infer<\n typeof StartScenarioOutlineOptsSchema\n>;\nexport type EndScenarioOutlineOpts = z.infer<\n typeof EndScenarioOutlineOptsSchema\n>;\nexport type StartScenarioOpts = z.infer<typeof StartScenarioOptsSchema>;\nexport type EndScenarioOpts = z.infer<typeof EndScenarioOptsSchema>;\nexport type StartStepOpts = z.infer<typeof StartStepOptsSchema>;\nexport type EndStepOpts = z.infer<typeof EndStepOptsSchema>;\nexport type StartBeforeOpts = z.infer<typeof StartBeforeOptsSchema>;\nexport type EndBeforeOpts = z.infer<typeof EndBeforeOptsSchema>;\nexport type StartAfterOpts = z.infer<typeof StartAfterOptsSchema>;\nexport type EndAfterOpts = z.infer<typeof EndAfterOptsSchema>;\nexport type StartSetupOpts = z.infer<typeof StartSetupOptsSchema>;\nexport type EndSetupOpts = z.infer<typeof EndSetupOptsSchema>;\nexport type StartTeardownOpts = z.infer<typeof StartTeardownOptsSchema>;\nexport type EndTeardownOpts = z.infer<typeof EndTeardownOptsSchema>;\n","import { Class } from \"@autometa/types\";\nimport { InjectionToken } from \"tsyringe\";\nimport {\n EndAfterOpts,\n EndBeforeOpts,\n EndFeatureOpts,\n EndRuleOpts,\n EndScenarioOpts,\n EndSetupOpts,\n EndStepOpts,\n EndTeardownOpts,\n StartAfterOpts,\n StartBeforeOpts,\n StartFeatureOpts,\n StartRuleOpts,\n StartScenarioOpts,\n StartScenarioOutlineOpts,\n StartSetupOpts,\n StartStepOpts,\n StartTeardownOpts,\n} from \"./event-options\";\nimport { object, function as fun } from \"zod\";\nexport type DependencyInstanceProvider = {\n token: InjectionToken<unknown>;\n instance: unknown;\n};\n\nexport const EventSubscriberSchema = object({\n onFeature: fun(),\n});\nexport interface EventSubscriber {\n onBeforeFeatureStart?(opts: StartFeatureOpts): void;\n onBeforeFeatureEnd?(opts: EndFeatureOpts): void;\n onAfterFeatureStart?(opts: StartFeatureOpts): void;\n onAfterFeatureEnd?(opts: EndFeatureOpts): void;\n onFeatureStart?(opts: StartFeatureOpts): void;\n onFeatureEnd?(opts: EndFeatureOpts): void;\n onBeforeRuleStart?(opts: StartRuleOpts): void;\n onBeforeRuleEnd?(opts: EndRuleOpts): void;\n onAfterRuleStart?(opts: StartRuleOpts): void;\n onAfterRuleEnd?(opts: EndRuleOpts): void;\n onRuleStart?(opts: StartRuleOpts): void;\n onRuleEnd?(opts: EndRuleOpts): void;\n onBeforeScenarioOutlineStart?(opts: StartScenarioOutlineOpts): void;\n onBeforeScenarioOutlineEnd?(opts: EndScenarioOpts): void;\n onAfterScenarioOutlineStart?(opts: StartScenarioOutlineOpts): void;\n onAfterScenarioOutlineEnd?(opts: EndScenarioOpts): void;\n onBeforeExamplesStart?(opts: StartScenarioOutlineOpts): void;\n onBeforeExamplesEnd?(opts: EndScenarioOpts): void;\n onAfterExamplesStart?(opts: StartScenarioOutlineOpts): void;\n onAfterExamplesEnd?(opts: EndScenarioOpts): void;\n onScenarioOutlineStart?(opts: StartScenarioOutlineOpts): void;\n onScenarioOutlineEnd?(opts: EndScenarioOpts): void;\n onPreScenarioStart?(): void;\n onPostScenarioEnd?(): void;\n onScenarioStart?(opts: StartScenarioOpts): void;\n onScenarioEnd?(opts: EndScenarioOpts): void;\n onStepStart?(opts: StartStepOpts): void;\n onStepEnd?(opts: EndStepOpts): void;\n onSetupStart?(opts: StartSetupOpts): void;\n onSetupEnd?(opts: EndSetupOpts): void;\n onTeardownStart?(opts: StartTeardownOpts): void;\n onTeardownEnd?(opts: EndTeardownOpts): void;\n onBeforeStart?(opts: StartBeforeOpts): void;\n onBeforeEnd?(opts: EndBeforeOpts): void;\n onAfterStart?(opts: StartAfterOpts): void;\n onAfterEnd?(opts: EndAfterOpts): void;\n onBeforeStepStart?(opts: StartStepOpts): void;\n onBeforeStepEnd?(opts: EndStepOpts): void;\n onAfterStepStart?(opts: StartStepOpts): void;\n onAfterStepEnd?(opts: EndStepOpts): void;\n}\n\nexport abstract class ProviderSubscriber implements EventSubscriber {\n abstract get fixtures(): {\n instances?: DependencyInstanceProvider[];\n prototypes?: Class<unknown>[];\n };\n\n addFixtureInstance = (instance: DependencyInstanceProvider) => {\n this.fixtures.instances?.push(instance);\n };\n\n onFeatureStart?(opts: StartFeatureOpts): void;\n}\n","import EventEmitter from \"events\";\nimport { Cb } from \"./test-event-emitter\";\nexport class TestEmitter<\n TArgsStart = never,\n TArgsEnd = never\n> extends EventEmitter {\n private promises: Promise<unknown>[] = [];\n\n constructor(readonly name: string) {\n super();\n }\n\n emitStart = (...args: TArgsStart[]) => {\n this.emit(`onStart${this.name}`, ...args);\n };\n\n onStart = (action?: (...args: unknown[]) => void) => {\n if (action) {\n this.on(`onStart${this.name}`, this.collectPromises(this.name, action));\n }\n };\n\n onEnd = (action?: (...args: unknown[]) => void) => {\n if (action) {\n this.on(`onEnd${this.name}`, this.collectPromises(this.name, action));\n }\n };\n\n emitEnd = (...args: TArgsEnd[]) => {\n this.emit(`onEnd${this.name}`, ...args);\n };\n\n load = (onStart?: Cb, onEnd?: Cb) => {\n this.onStart(onStart);\n this.onEnd(onEnd);\n };\n\n collectPromises = (name: string, action: (...args: unknown[]) => unknown) => {\n return (...args: unknown[]) => {\n try {\n const result = action(...args);\n if (result instanceof Promise) {\n this.promises.push(result);\n }\n } catch (e) {\n console.error(\n `Event Subscriber ${name} threw an error ${(e as Error).message}`\n );\n }\n };\n };\n\n waitForPromises = async () => {\n const settled = await Promise.allSettled(this.promises);\n return settled.filter((it) => it.status === \"rejected\").length;\n };\n}\n","import { EventSubscriber } from \"./event-subscriber\";\nimport { TestEmitter } from \"./test-emitter\";\nimport {\n StartScenarioOutlineOpts,\n EndScenarioOutlineOpts,\n StartFeatureOpts,\n EndFeatureOpts,\n StartRuleOpts,\n EndRuleOpts,\n StartScenarioOpts,\n EndScenarioOpts,\n StartSetupOpts,\n EndSetupOpts,\n StartTeardownOpts,\n EndTeardownOpts,\n StartBeforeOpts,\n EndBeforeOpts,\n StartAfterOpts,\n EndAfterOpts,\n StartStepOpts,\n EndStepOpts,\n} from \"./event-options\";\nexport class TestEventEmitter {\n scenarioOutline = new TestEmitter<\n StartScenarioOutlineOpts,\n EndScenarioOutlineOpts\n >(\"ScenarioOutline\");\n feature = new TestEmitter<StartFeatureOpts, EndFeatureOpts>(\"Feature\");\n rule = new TestEmitter<StartRuleOpts, EndRuleOpts>(\"Rule\");\n scenario = new TestEmitter<StartScenarioOpts, EndScenarioOpts>(\"Scenario\");\n scenarioWrapper = new TestEmitter<never, never>(\"Scenario Wrapper\");\n setup = new TestEmitter<StartSetupOpts, EndSetupOpts>(\"Setup\");\n beforeFeature = new TestEmitter<StartSetupOpts, EndSetupOpts>(\n \"BeforeFeature\"\n );\n afterFeature = new TestEmitter<StartSetupOpts, EndSetupOpts>(\"AfterFeature\");\n beforeRule = new TestEmitter<StartSetupOpts, EndSetupOpts>(\"BeforeRule\");\n afterRule = new TestEmitter<StartSetupOpts, EndSetupOpts>(\"AfterRule\");\n beforeScenarioOutline = new TestEmitter<StartSetupOpts, EndSetupOpts>(\n \"BeforeScenarioOutline\"\n );\n afterScenarioOutline = new TestEmitter<StartSetupOpts, EndSetupOpts>(\n \"AfterScenarioOutline\"\n );\n beforeExamples = new TestEmitter<StartSetupOpts, EndSetupOpts>(\n \"BeforeExamples\"\n );\n afterExamples = new TestEmitter<StartSetupOpts, EndSetupOpts>(\n \"AfterExamples\"\n );\n teardown = new TestEmitter<StartTeardownOpts, EndTeardownOpts>(\"Teardown\");\n before = new TestEmitter<StartBeforeOpts, EndBeforeOpts>(\"Before\");\n after = new TestEmitter<StartAfterOpts, EndAfterOpts>(\"After\");\n step = new TestEmitter<StartStepOpts, EndStepOpts>(\"Step\");\n beforeStep = new TestEmitter<StartStepOpts, EndStepOpts>(\"BeforeStep\");\n afterStep = new TestEmitter<StartStepOpts, EndStepOpts>(\"AfterStep\");\n\n settleAsyncEvents = async () => {\n return await Promise.allSettled([\n this.scenarioOutline.waitForPromises(),\n this.feature.waitForPromises(),\n this.rule.waitForPromises(),\n this.scenario.waitForPromises(),\n this.scenarioWrapper.waitForPromises(),\n this.setup.waitForPromises(),\n this.teardown.waitForPromises(),\n this.before.waitForPromises(),\n this.after.waitForPromises(),\n this.step.waitForPromises(),\n ]);\n };\n\n load = ({\n onFeatureStart,\n onFeatureEnd,\n onScenarioOutlineStart,\n onScenarioOutlineEnd,\n onScenarioStart,\n onScenarioEnd,\n onRuleStart,\n onRuleEnd,\n onBeforeStart,\n onBeforeEnd,\n onSetupStart,\n onSetupEnd,\n onStepStart,\n onStepEnd,\n onAfterStart,\n onAfterEnd,\n onTeardownStart,\n onTeardownEnd,\n onPreScenarioStart,\n onPostScenarioEnd,\n onBeforeFeatureStart,\n onBeforeFeatureEnd,\n onAfterFeatureStart,\n onAfterFeatureEnd,\n onBeforeRuleStart,\n onBeforeRuleEnd,\n onAfterRuleStart,\n onAfterRuleEnd,\n onBeforeScenarioOutlineStart,\n onBeforeScenarioOutlineEnd,\n onAfterScenarioOutlineStart,\n onAfterScenarioOutlineEnd,\n onBeforeExamplesStart,\n onBeforeExamplesEnd,\n onAfterExamplesStart,\n onBeforeStepStart,\n onBeforeStepEnd,\n onAfterStepStart,\n onAfterStepEnd,\n }: EventSubscriber) => {\n this.feature.load(onFeatureStart, onFeatureEnd);\n this.rule.load(onRuleStart, onRuleEnd);\n this.scenarioOutline.load(onScenarioOutlineStart, onScenarioOutlineEnd);\n this.scenario.load(onScenarioStart, onScenarioEnd);\n this.step.load(onStepStart, onStepEnd);\n this.before.load(onBeforeStart, onBeforeEnd);\n this.after.load(onAfterStart, onAfterEnd);\n this.setup.load(onSetupStart, onSetupEnd);\n this.teardown.load(onTeardownStart, onTeardownEnd);\n this.scenarioWrapper.load(onPreScenarioStart, onPostScenarioEnd);\n this.beforeFeature.load(onBeforeFeatureStart, onBeforeFeatureEnd);\n this.afterFeature.load(onAfterFeatureStart, onAfterFeatureEnd);\n this.beforeRule.load(onBeforeRuleStart, onBeforeRuleEnd);\n this.afterRule.load(onAfterRuleStart, onAfterRuleEnd);\n this.beforeScenarioOutline.load(\n onBeforeScenarioOutlineStart,\n onBeforeScenarioOutlineEnd\n );\n this.afterScenarioOutline.load(\n onAfterScenarioOutlineStart,\n onAfterScenarioOutlineEnd\n );\n this.beforeExamples.load(onBeforeExamplesStart, onBeforeExamplesEnd);\n this.afterExamples.load(onAfterExamplesStart, onBeforeStepStart);\n this.beforeStep.load(onBeforeStepStart, onBeforeStepEnd);\n this.afterStep.load(onAfterStepStart, onAfterStepEnd);\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type Cb = (...args: any[]) => void;\n","export const Status = {\n FAILED: \"FAILED\",\n BROKEN: \"BROKEN\",\n PASSED: \"PASSED\",\n SKIPPED: \"SKIPPED\",\n} as const;\n\nexport type StatusType = keyof typeof Status;\n"],"mappings":"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","names":["import_zod","fun","EventEmitter"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autometa/events",
3
- "version": "0.2.26",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -40,8 +40,8 @@
40
40
  "webpack": "^5.77.0",
41
41
  "webpack-cli": "^5.0.1",
42
42
  "webpack-node-externals": "^3.0.0",
43
- "tsconfig": "0.7.0",
44
- "eslint-config-custom": "0.6.0"
43
+ "eslint-config-custom": "0.6.0",
44
+ "tsconfig": "0.7.0"
45
45
  },
46
46
  "dependencies": {
47
47
  "@cucumber/messages": "^21.0.1",
@@ -51,7 +51,7 @@
51
51
  "zod": "^3.21.4",
52
52
  "@autometa/types": "0.4.1",
53
53
  "@autometa/errors": "^0.2.2",
54
- "@autometa/gherkin": "0.6.14"
54
+ "@autometa/gherkin": "0.7.0"
55
55
  },
56
56
  "scripts": {
57
57
  "test": "vitest run --passWithNoTests",