@autometa/events 0.3.2 → 1.0.0-rc.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/CHANGELOG.md DELETED
@@ -1,342 +0,0 @@
1
- # Gherkin
2
-
3
- ## 0.3.2
4
-
5
- ### Patch Changes
6
-
7
- - @autometa/gherkin@0.7.2
8
-
9
- ## 0.3.1
10
-
11
- ### Patch Changes
12
-
13
- - @autometa/gherkin@0.7.1
14
-
15
- ## 0.3.0
16
-
17
- ### Minor Changes
18
-
19
- - 7440e9f: feat: new group based hooks for feature, rule, outline and examples
20
-
21
- ### Patch Changes
22
-
23
- - Updated dependencies [7440e9f]
24
- - @autometa/gherkin@0.7.0
25
-
26
- ## 0.2.27
27
-
28
- ### Patch Changes
29
-
30
- - Updated dependencies [205ee3b]
31
- - @autometa/gherkin@0.6.15
32
-
33
- ## 0.2.26
34
-
35
- ### Patch Changes
36
-
37
- - Updated dependencies [6e2203c]
38
- - @autometa/gherkin@0.6.14
39
-
40
- ## 0.2.25
41
-
42
- ### Patch Changes
43
-
44
- - Updated dependencies [bf6e5dd]
45
- - @autometa/gherkin@0.6.13
46
-
47
- ## 0.2.24
48
-
49
- ### Patch Changes
50
-
51
- - Updated dependencies [c9cc41c]
52
- - @autometa/gherkin@0.6.12
53
-
54
- ## 0.2.23
55
-
56
- ### Patch Changes
57
-
58
- - Updated dependencies [be770fc]
59
- - @autometa/gherkin@0.6.11
60
-
61
- ## 0.2.22
62
-
63
- ### Patch Changes
64
-
65
- - Updated dependencies [51ad241]
66
- - @autometa/gherkin@0.6.10
67
-
68
- ## 0.2.21
69
-
70
- ### Patch Changes
71
-
72
- - @autometa/gherkin@0.6.9
73
-
74
- ## 0.2.20
75
-
76
- ### Patch Changes
77
-
78
- - @autometa/gherkin@0.6.8
79
-
80
- ## 0.2.19
81
-
82
- ### Patch Changes
83
-
84
- - @autometa/gherkin@0.6.7
85
-
86
- ## 0.2.18
87
-
88
- ### Patch Changes
89
-
90
- - @autometa/gherkin@0.6.6
91
-
92
- ## 0.2.17
93
-
94
- ### Patch Changes
95
-
96
- - @autometa/gherkin@0.6.5
97
-
98
- ## 0.2.16
99
-
100
- ### Patch Changes
101
-
102
- - @autometa/gherkin@0.6.4
103
-
104
- ## 0.2.15
105
-
106
- ### Patch Changes
107
-
108
- - Updated dependencies
109
- - @autometa/gherkin@0.6.3
110
-
111
- ## 0.2.14
112
-
113
- ### Patch Changes
114
-
115
- - @autometa/gherkin@0.6.2
116
-
117
- ## 0.2.13
118
-
119
- ### Patch Changes
120
-
121
- - @autometa/gherkin@0.6.1
122
-
123
- ## 0.2.12
124
-
125
- ### Patch Changes
126
-
127
- - Updated dependencies [7e9d2bc]
128
- - @autometa/gherkin@0.6.0
129
-
130
- ## 0.2.11
131
-
132
- ### Patch Changes
133
-
134
- - Updated dependencies [d563916]
135
- - @autometa/gherkin@0.5.8
136
-
137
- ## 0.2.10
138
-
139
- ### Patch Changes
140
-
141
- - Updated dependencies [3fe2ad4]
142
- - @autometa/errors@0.2.2
143
- - @autometa/gherkin@0.5.7
144
-
145
- ## 0.2.9
146
-
147
- ### Patch Changes
148
-
149
- - Updated dependencies [3493bb6]
150
- - @autometa/errors@0.2.1
151
- - @autometa/gherkin@0.5.6
152
-
153
- ## 0.2.8
154
-
155
- ### Patch Changes
156
-
157
- - @autometa/gherkin@0.5.5
158
-
159
- ## 0.2.7
160
-
161
- ### Patch Changes
162
-
163
- - Updated dependencies [6fe8f64]
164
- - @autometa/gherkin@0.5.4
165
-
166
- ## 0.2.6
167
-
168
- ### Patch Changes
169
-
170
- - Updated dependencies [b5ce008]
171
- - @autometa/errors@0.2.0
172
- - @autometa/gherkin@0.5.3
173
-
174
- ## 0.2.5
175
-
176
- ### Patch Changes
177
-
178
- - 04ed85d: feat: added HTP client based on axios
179
- - Updated dependencies [04ed85d]
180
- - @autometa/gherkin@0.5.2
181
- - @autometa/errors@0.1.4
182
-
183
- ## 0.2.4
184
-
185
- ### Patch Changes
186
-
187
- - Updated dependencies [4b796f8]
188
- - @autometa/gherkin@0.5.1
189
-
190
- ## 0.2.3
191
-
192
- ### Patch Changes
193
-
194
- - Updated dependencies [329c6b8]
195
- - @autometa/gherkin@0.5.0
196
-
197
- ## 0.2.2
198
-
199
- ### Patch Changes
200
-
201
- - fix: exporting event types
202
-
203
- ## 0.2.1
204
-
205
- ### Patch Changes
206
-
207
- - 3672161c: Fix: export event option types
208
-
209
- ## 0.2.0
210
-
211
- ### Minor Changes
212
-
213
- - 51d88780: Feat: Add Async Test Event support to new runner
214
-
215
- ## 0.1.6
216
-
217
- ### Patch Changes
218
-
219
- - 53f958e1: Fix: steps not executing onStepEnded event when an error was thrown
220
- - Updated dependencies [53f958e1]
221
- - @autometa/errors@0.1.3
222
- - @autometa/gherkin@0.4.5
223
- - @autometa/types@0.4.1
224
-
225
- ## 0.1.5
226
-
227
- ### Patch Changes
228
-
229
- - Updated dependencies [12bd4b1e]
230
- - @autometa/errors@0.1.2
231
- - @autometa/gherkin@0.4.4
232
-
233
- ## 0.1.4
234
-
235
- ### Patch Changes
236
-
237
- - ff45dc43: fix(jest-executor): step text was not correctly logged
238
-
239
- ## 0.1.3
240
-
241
- ### Patch Changes
242
-
243
- - 29ed7239: fix(test-builder): onStepStart event not firing
244
- - Updated dependencies [29ed7239]
245
- - @autometa/gherkin@0.4.3
246
-
247
- ## 0.1.2
248
-
249
- ### Patch Changes
250
-
251
- - @autometa/gherkin@0.4.2
252
-
253
- ## 0.1.1
254
-
255
- ### Patch Changes
256
-
257
- - Updated dependencies [e8f02f3a]
258
- - @autometa/gherkin@0.4.1
259
- - @autometa/errors@0.1.1
260
-
261
- ## 0.1.0
262
-
263
- ### Minor Changes
264
-
265
- - 554b77e: Releasing packages
266
-
267
- ### Patch Changes
268
-
269
- - Updated dependencies [554b77e]
270
- - @autometa/errors@0.1.0
271
- - @autometa/gherkin@0.4.0
272
- - @autometa/types@0.4.0
273
-
274
- ## 0.0.10
275
-
276
- ### Patch Changes
277
-
278
- - @autometa/gherkin@0.3.3
279
-
280
- ## 0.0.9
281
-
282
- ### Patch Changes
283
-
284
- - @autometa/gherkin@0.3.2
285
-
286
- ## 0.0.8
287
-
288
- ### Patch Changes
289
-
290
- - 6a4a9ac: Swapped project type to "composite", unified build system for most projects
291
- - Updated dependencies [6a4a9ac]
292
- - @autometa/gherkin@0.3.1
293
- - @autometa/types@0.3.1
294
-
295
- ## 0.0.7
296
-
297
- ### Patch Changes
298
-
299
- - Updated dependencies [b48f577]
300
- - @autometa/gherkin@0.3.0
301
- - @autometa/types@0.3.0
302
- - @autometa/dto-builder@0.9.1
303
-
304
- ## 0.0.6
305
-
306
- ### Patch Changes
307
-
308
- - Updated dependencies [a874510]
309
- - @autometa/dto-builder@0.9.0
310
- - @autometa/gherkin@0.2.5
311
-
312
- ## 0.0.5
313
-
314
- ### Patch Changes
315
-
316
- - bc5e12c: Added 'overloaded' package for overloaded or pattern matched functins and methods
317
- - Updated dependencies [bc5e12c]
318
- - @autometa/gherkin@0.2.4
319
-
320
- ## 0.0.4
321
-
322
- ### Patch Changes
323
-
324
- - Updated dependencies [64bacd4]
325
- - @autometa/gherkin@0.2.3
326
-
327
- ## 0.0.3
328
-
329
- ### Patch Changes
330
-
331
- - Updated dependencies [064b589]
332
- - @autometa/dto-builder@0.8.0
333
- - @autometa/gherkin@0.2.2
334
-
335
- ## 0.0.2
336
-
337
- ### Patch Changes
338
-
339
- - Updated dependencies [cfc35f4]
340
- - @autometa/dto-builder@0.7.1
341
- - @autometa/gherkin@0.2.1
342
- - @autometa/types@0.2.1
package/dist/esm/index.js DELETED
@@ -1,265 +0,0 @@
1
- // src/event-options.ts
2
- import { object, string, literal, z } from "zod";
3
- var uuidRegex = /^[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;
4
- var UUIDStringSchema = string().regex(uuidRegex).optional();
5
- var StatusSchema = z.union([
6
- literal("FAILED"),
7
- literal("BROKEN"),
8
- literal("PASSED"),
9
- literal("SKIPPED")
10
- ]);
11
- var EventOptionsSchema = object({
12
- title: string().optional(),
13
- keyword: string().optional(),
14
- tags: string().array().optional(),
15
- modifier: literal("skip").or(literal("only")).optional(),
16
- status: StatusSchema.optional()
17
- });
18
- var ErrorEventSchema = EventOptionsSchema.extend({
19
- error: z.instanceof(Error).optional()
20
- });
21
- var ArgsEventSchema = EventOptionsSchema.extend({
22
- args: z.array(z.unknown()).optional()
23
- });
24
- var StartFeatureOptsSchema = EventOptionsSchema.extend({
25
- path: string().optional()
26
- });
27
- var EndFeatureOptsSchema = ErrorEventSchema;
28
- var EndRuleOptsSchema = ErrorEventSchema;
29
- var StartScenarioOutlineOptsSchema = EventOptionsSchema;
30
- var EndScenarioOutlineOptsSchema = ErrorEventSchema;
31
- var StartScenarioOptsSchema = EventOptionsSchema;
32
- var EndScenarioOptsSchema = ErrorEventSchema;
33
- var StartStepOptsSchema = EventOptionsSchema.extend({
34
- args: z.array(z.unknown()).optional(),
35
- expression: z.string().optional()
36
- });
37
- var EndStepOptsSchema = EventOptionsSchema.extend({
38
- args: z.array(z.unknown()).optional(),
39
- expression: z.string()
40
- }).and(ErrorEventSchema);
41
- var StartBeforeOptsSchema = ArgsEventSchema;
42
- var EndBeforeOptsSchema = ErrorEventSchema;
43
- var StartAfterOptsSchema = ArgsEventSchema;
44
- var EndAfterOptsSchema = ErrorEventSchema;
45
- var StartSetupOptsSchema = ArgsEventSchema;
46
- var EndSetupOptsSchema = ErrorEventSchema;
47
- var StartTeardownOptsSchema = ArgsEventSchema;
48
- var EndTeardownOptsSchema = ErrorEventSchema;
49
-
50
- // src/event-subscriber.ts
51
- import { object as object2, function as fun } from "zod";
52
- var EventSubscriberSchema = object2({
53
- onFeature: fun()
54
- });
55
- var ProviderSubscriber = class {
56
- constructor() {
57
- this.addFixtureInstance = (instance) => {
58
- this.fixtures.instances?.push(instance);
59
- };
60
- }
61
- };
62
-
63
- // src/test-emitter.ts
64
- import EventEmitter from "events";
65
- var TestEmitter = class extends EventEmitter {
66
- constructor(name) {
67
- super();
68
- this.name = name;
69
- this.promises = [];
70
- this.emitStart = (...args) => {
71
- this.emit(`onStart${this.name}`, ...args);
72
- };
73
- this.onStart = (action) => {
74
- if (action) {
75
- this.on(`onStart${this.name}`, this.collectPromises(this.name, action));
76
- }
77
- };
78
- this.onEnd = (action) => {
79
- if (action) {
80
- this.on(`onEnd${this.name}`, this.collectPromises(this.name, action));
81
- }
82
- };
83
- this.emitEnd = (...args) => {
84
- this.emit(`onEnd${this.name}`, ...args);
85
- };
86
- this.load = (onStart, onEnd) => {
87
- this.onStart(onStart);
88
- this.onEnd(onEnd);
89
- };
90
- this.collectPromises = (name, action) => {
91
- return (...args) => {
92
- try {
93
- const result = action(...args);
94
- if (result instanceof Promise) {
95
- this.promises.push(result);
96
- }
97
- } catch (e) {
98
- console.error(
99
- `Event Subscriber ${name} threw an error ${e.message}`
100
- );
101
- }
102
- };
103
- };
104
- this.waitForPromises = async () => {
105
- const settled = await Promise.allSettled(this.promises);
106
- return settled.filter((it) => it.status === "rejected").length;
107
- };
108
- }
109
- };
110
-
111
- // src/test-event-emitter.ts
112
- var TestEventEmitter = class {
113
- constructor() {
114
- this.scenarioOutline = new TestEmitter("ScenarioOutline");
115
- this.feature = new TestEmitter("Feature");
116
- this.rule = new TestEmitter("Rule");
117
- this.scenario = new TestEmitter("Scenario");
118
- this.scenarioWrapper = new TestEmitter("Scenario Wrapper");
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
- );
138
- this.teardown = new TestEmitter("Teardown");
139
- this.before = new TestEmitter("Before");
140
- this.after = new TestEmitter("After");
141
- this.step = new TestEmitter("Step");
142
- this.beforeStep = new TestEmitter("BeforeStep");
143
- this.afterStep = new TestEmitter("AfterStep");
144
- this.settleAsyncEvents = async () => {
145
- return await Promise.allSettled([
146
- this.scenarioOutline.waitForPromises(),
147
- this.feature.waitForPromises(),
148
- this.rule.waitForPromises(),
149
- this.scenario.waitForPromises(),
150
- this.scenarioWrapper.waitForPromises(),
151
- this.setup.waitForPromises(),
152
- this.teardown.waitForPromises(),
153
- this.before.waitForPromises(),
154
- this.after.waitForPromises(),
155
- this.step.waitForPromises()
156
- ]);
157
- };
158
- this.load = ({
159
- onFeatureStart,
160
- onFeatureEnd,
161
- onScenarioOutlineStart,
162
- onScenarioOutlineEnd,
163
- onScenarioStart,
164
- onScenarioEnd,
165
- onRuleStart,
166
- onRuleEnd,
167
- onBeforeStart,
168
- onBeforeEnd,
169
- onSetupStart,
170
- onSetupEnd,
171
- onStepStart,
172
- onStepEnd,
173
- onAfterStart,
174
- onAfterEnd,
175
- onTeardownStart,
176
- onTeardownEnd,
177
- onPreScenarioStart,
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
198
- }) => {
199
- this.feature.load(onFeatureStart, onFeatureEnd);
200
- this.rule.load(onRuleStart, onRuleEnd);
201
- this.scenarioOutline.load(onScenarioOutlineStart, onScenarioOutlineEnd);
202
- this.scenario.load(onScenarioStart, onScenarioEnd);
203
- this.step.load(onStepStart, onStepEnd);
204
- this.before.load(onBeforeStart, onBeforeEnd);
205
- this.after.load(onAfterStart, onAfterEnd);
206
- this.setup.load(onSetupStart, onSetupEnd);
207
- this.teardown.load(onTeardownStart, onTeardownEnd);
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);
225
- };
226
- }
227
- };
228
-
229
- // src/test-status.ts
230
- var Status = {
231
- FAILED: "FAILED",
232
- BROKEN: "BROKEN",
233
- PASSED: "PASSED",
234
- SKIPPED: "SKIPPED"
235
- };
236
- export {
237
- ArgsEventSchema,
238
- EndAfterOptsSchema,
239
- EndBeforeOptsSchema,
240
- EndFeatureOptsSchema,
241
- EndRuleOptsSchema,
242
- EndScenarioOptsSchema,
243
- EndScenarioOutlineOptsSchema,
244
- EndSetupOptsSchema,
245
- EndStepOptsSchema,
246
- EndTeardownOptsSchema,
247
- ErrorEventSchema,
248
- EventOptionsSchema,
249
- EventSubscriberSchema,
250
- ProviderSubscriber,
251
- StartAfterOptsSchema,
252
- StartBeforeOptsSchema,
253
- StartFeatureOptsSchema,
254
- StartScenarioOptsSchema,
255
- StartScenarioOutlineOptsSchema,
256
- StartSetupOptsSchema,
257
- StartStepOptsSchema,
258
- StartTeardownOptsSchema,
259
- Status,
260
- StatusSchema,
261
- TestEmitter,
262
- TestEventEmitter,
263
- UUIDStringSchema
264
- };
265
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
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"]}