@autometa/events 0.2.27 → 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.
- package/.turbo/turbo-test.log +2 -2
- package/CHANGELOG.md +11 -0
- package/dist/esm/index.js +56 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.cts +189 -1
- package/dist/index.d.ts +189 -1
- package/dist/index.js +56 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
|
|
2
|
-
> @autometa/events@0.2.
|
|
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,16 @@
|
|
|
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
|
+
|
|
3
14
|
## 0.2.27
|
|
4
15
|
|
|
5
16
|
### 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
|
};
|
package/dist/esm/index.js.map
CHANGED
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,iBAA2C;AAC3C,IAAM,YACJ;AACK,IAAM,uBAAmB,mBAAO,EAAE,MAAM,SAAS,EAAE,SAAS;AAE5D,IAAM,eAAe,aAAE,MAAM;AAAA,MAClC,oBAAQ,QAAQ;AAAA,MAChB,oBAAQ,QAAQ;AAAA,MAChB,oBAAQ,QAAQ;AAAA,MAChB,oBAAQ,SAAS;AACnB,CAAC;AACM,IAAM,yBAAqB,mBAAO;AAAA,EACvC,WAAO,mBAAO,EAAE,SAAS;AAAA,EACzB,aAAS,mBAAO,EAAE,SAAS;AAAA,EAC3B,UAAM,mBAAO,EAAE,MAAM,EAAE,SAAS;AAAA,EAChC,cAAU,oBAAQ,MAAM,EAAE,OAAG,oBAAQ,MAAM,CAAC,EAAE,SAAS;AAAA,EACvD,QAAQ,aAAa,SAAS;AAChC,CAAC;AAEM,IAAM,mBAAmB,mBAAmB,OAAO;AAAA,EACxD,OAAO,aAAE,WAAW,KAAK,EAAE,SAAS;AACtC,CAAC;AACM,IAAM,kBAAkB,mBAAmB,OAAO;AAAA,EACvD,MAAM,aAAE,MAAM,aAAE,QAAQ,CAAC,EAAE,SAAS;AACtC,CAAC;AAEM,IAAM,yBAAyB,mBAAmB,OAAO;AAAA,EAC9D,UAAM,mBAAO,EAAE,SAAS;AAC1B,CAAC;AAEM,IAAM,uBAAuB;AAE7B,IAAM,oBAAoB;AAE1B,IAAM,iCAAiC;AAKvC,IAAM,+BAA+B;AAErC,IAAM,0BAA0B;AAEhC,IAAM,wBAAwB;AAE9B,IAAM,sBAAsB,mBAAmB,OAAO;AAAA,EAC3D,MAAM,aAAE,MAAM,aAAE,QAAQ,CAAC,EAAE,SAAS;AAAA,EACpC,YAAY,aAAE,OAAO,EAAE,SAAS;AAClC,CAAC;AACM,IAAM,oBAAoB,mBAAmB,OAAO;AAAA,EACzD,MAAM,aAAE,MAAM,aAAE,QAAQ,CAAC,EAAE,SAAS;AAAA,EACpC,YAAY,aAAE,OAAO;AACvB,CAAC,EAAE,IAAI,gBAAgB;AAChB,IAAM,wBAAwB;AAC9B,IAAM,sBAAsB;AAC5B,IAAM,uBAAuB;AAC7B,IAAM,qBAAqB;AAC3B,IAAM,uBAAuB;AAC7B,IAAM,qBAAqB;AAC3B,IAAM,0BAA0B;AAChC,IAAM,wBAAwB;;;ACvCrC,IAAAA,cAAwC;AAMjC,IAAM,4BAAwB,oBAAO;AAAA,EAC1C,eAAW,YAAAC,UAAI;AACjB,CAAC;AAwBM,IAAe,qBAAf,MAA6D;AAAA,EAA7D;AAML,8BAAqB,CAAC,aAAyC;AAC7D,WAAK,SAAS,WAAW,KAAK,QAAQ;AAAA,IACxC;AAAA;AAGF;;;AChEA,oBAAyB;AAElB,IAAM,cAAN,cAGG,cAAAC,QAAa;AAAA,EAGrB,YAAqB,MAAc;AACjC,UAAM;AADa;AAFrB,SAAQ,WAA+B,CAAC;AAMxC,qBAAY,IAAI,SAAuB;AACrC,WAAK,KAAK,UAAU,KAAK,IAAI,IAAI,GAAG,IAAI;AAAA,IAC1C;AAEA,mBAAU,CAAC,WAA0C;AACnD,UAAI,QAAQ;AACV,aAAK,GAAG,UAAU,KAAK,IAAI,IAAI,KAAK,gBAAgB,KAAK,MAAM,MAAM,CAAC;AAAA,MACxE;AAAA,IACF;AAEA,iBAAQ,CAAC,WAA0C;AACjD,UAAI,QAAQ;AACV,aAAK,GAAG,QAAQ,KAAK,IAAI,IAAI,KAAK,gBAAgB,KAAK,MAAM,MAAM,CAAC;AAAA,MACtE;AAAA,IACF;AAEA,mBAAU,IAAI,SAAqB;AACjC,WAAK,KAAK,QAAQ,KAAK,IAAI,IAAI,GAAG,IAAI;AAAA,IACxC;AAEA,gBAAO,CAAC,SAAc,UAAe;AACnC,WAAK,QAAQ,OAAO;AACpB,WAAK,MAAM,KAAK;AAAA,IAClB;AAEA,2BAAkB,CAAC,MAAc,WAA4C;AAC3E,aAAO,IAAI,SAAoB;AAC7B,YAAI;AACF,gBAAM,SAAS,OAAO,GAAG,IAAI;AAC7B,cAAI,kBAAkB,SAAS;AAC7B,iBAAK,SAAS,KAAK,MAAM;AAAA,UAC3B;AAAA,QACF,SAAS,GAAG;AACV,kBAAQ;AAAA,YACN,oBAAoB,IAAI,mBAAoB,EAAY,OAAO;AAAA,UACjE;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,2BAAkB,YAAY;AAC5B,YAAM,UAAU,MAAM,QAAQ,WAAW,KAAK,QAAQ;AACtD,aAAO,QAAQ,OAAO,CAAC,OAAO,GAAG,WAAW,UAAU,EAAE;AAAA,IAC1D;AAAA,EA7CA;AA8CF;;;AClCO,IAAM,mBAAN,MAAuB;AAAA,EAAvB;AACL,2BAAkB,IAAI,YAGpB,iBAAiB;AACnB,mBAAU,IAAI,YAA8C,SAAS;AACrE,gBAAO,IAAI,YAAwC,MAAM;AACzD,oBAAW,IAAI,YAAgD,UAAU;AACzE,2BAAkB,IAAI,YAA0B,kBAAkB;AAClE,iBAAQ,IAAI,YAA0C,OAAO;AAC7D,oBAAW,IAAI,YAAgD,UAAU;AACzE,kBAAS,IAAI,YAA4C,QAAQ;AACjE,iBAAQ,IAAI,YAA0C,OAAO;AAC7D,gBAAO,IAAI,YAAwC,MAAM;AAEzD,6BAAoB,YAAY;AAC9B,aAAO,MAAM,QAAQ,WAAW;AAAA,QAC9B,KAAK,gBAAgB,gBAAgB;AAAA,QACrC,KAAK,QAAQ,gBAAgB;AAAA,QAC7B,KAAK,KAAK,gBAAgB;AAAA,QAC1B,KAAK,SAAS,gBAAgB;AAAA,QAC9B,KAAK,gBAAgB,gBAAgB;AAAA,QACrC,KAAK,MAAM,gBAAgB;AAAA,QAC3B,KAAK,SAAS,gBAAgB;AAAA,QAC9B,KAAK,OAAO,gBAAgB;AAAA,QAC5B,KAAK,MAAM,gBAAgB;AAAA,QAC3B,KAAK,KAAK,gBAAgB;AAAA,MAC5B,CAAC;AAAA,IACH;AAEA,gBAAO,CAAC;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,MAAuB;AACrB,WAAK,QAAQ,KAAK,gBAAgB,YAAY;AAC9C,WAAK,KAAK,KAAK,aAAa,SAAS;AACrC,WAAK,gBAAgB,KAAK,wBAAwB,oBAAoB;AACtE,WAAK,SAAS,KAAK,iBAAiB,aAAa;AACjD,WAAK,KAAK,KAAK,aAAa,SAAS;AACrC,WAAK,OAAO,KAAK,eAAe,WAAW;AAC3C,WAAK,MAAM,KAAK,cAAc,UAAU;AACxC,WAAK,MAAM,KAAK,cAAc,UAAU;AACxC,WAAK,SAAS,KAAK,iBAAiB,aAAa;AACjD,WAAK,gBAAgB,KAAK,oBAAoB,iBAAiB;AAAA,IACjE;AAAA;AACF;;;ACrFO,IAAM,SAAS;AAAA,EACpB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AACX;","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.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -49,9 +49,9 @@
|
|
|
49
49
|
"tsyringe": "^4.7.0",
|
|
50
50
|
"uuid": "^9.0.1",
|
|
51
51
|
"zod": "^3.21.4",
|
|
52
|
-
"@autometa/errors": "^0.2.2",
|
|
53
52
|
"@autometa/types": "0.4.1",
|
|
54
|
-
"@autometa/
|
|
53
|
+
"@autometa/errors": "^0.2.2",
|
|
54
|
+
"@autometa/gherkin": "0.7.0"
|
|
55
55
|
},
|
|
56
56
|
"scripts": {
|
|
57
57
|
"test": "vitest run --passWithNoTests",
|