@autometa/events 0.3.1 → 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,336 +0,0 @@
1
- # Gherkin
2
-
3
- ## 0.3.1
4
-
5
- ### Patch Changes
6
-
7
- - @autometa/gherkin@0.7.1
8
-
9
- ## 0.3.0
10
-
11
- ### Minor Changes
12
-
13
- - 7440e9f: feat: new group based hooks for feature, rule, outline and examples
14
-
15
- ### Patch Changes
16
-
17
- - Updated dependencies [7440e9f]
18
- - @autometa/gherkin@0.7.0
19
-
20
- ## 0.2.27
21
-
22
- ### Patch Changes
23
-
24
- - Updated dependencies [205ee3b]
25
- - @autometa/gherkin@0.6.15
26
-
27
- ## 0.2.26
28
-
29
- ### Patch Changes
30
-
31
- - Updated dependencies [6e2203c]
32
- - @autometa/gherkin@0.6.14
33
-
34
- ## 0.2.25
35
-
36
- ### Patch Changes
37
-
38
- - Updated dependencies [bf6e5dd]
39
- - @autometa/gherkin@0.6.13
40
-
41
- ## 0.2.24
42
-
43
- ### Patch Changes
44
-
45
- - Updated dependencies [c9cc41c]
46
- - @autometa/gherkin@0.6.12
47
-
48
- ## 0.2.23
49
-
50
- ### Patch Changes
51
-
52
- - Updated dependencies [be770fc]
53
- - @autometa/gherkin@0.6.11
54
-
55
- ## 0.2.22
56
-
57
- ### Patch Changes
58
-
59
- - Updated dependencies [51ad241]
60
- - @autometa/gherkin@0.6.10
61
-
62
- ## 0.2.21
63
-
64
- ### Patch Changes
65
-
66
- - @autometa/gherkin@0.6.9
67
-
68
- ## 0.2.20
69
-
70
- ### Patch Changes
71
-
72
- - @autometa/gherkin@0.6.8
73
-
74
- ## 0.2.19
75
-
76
- ### Patch Changes
77
-
78
- - @autometa/gherkin@0.6.7
79
-
80
- ## 0.2.18
81
-
82
- ### Patch Changes
83
-
84
- - @autometa/gherkin@0.6.6
85
-
86
- ## 0.2.17
87
-
88
- ### Patch Changes
89
-
90
- - @autometa/gherkin@0.6.5
91
-
92
- ## 0.2.16
93
-
94
- ### Patch Changes
95
-
96
- - @autometa/gherkin@0.6.4
97
-
98
- ## 0.2.15
99
-
100
- ### Patch Changes
101
-
102
- - Updated dependencies
103
- - @autometa/gherkin@0.6.3
104
-
105
- ## 0.2.14
106
-
107
- ### Patch Changes
108
-
109
- - @autometa/gherkin@0.6.2
110
-
111
- ## 0.2.13
112
-
113
- ### Patch Changes
114
-
115
- - @autometa/gherkin@0.6.1
116
-
117
- ## 0.2.12
118
-
119
- ### Patch Changes
120
-
121
- - Updated dependencies [7e9d2bc]
122
- - @autometa/gherkin@0.6.0
123
-
124
- ## 0.2.11
125
-
126
- ### Patch Changes
127
-
128
- - Updated dependencies [d563916]
129
- - @autometa/gherkin@0.5.8
130
-
131
- ## 0.2.10
132
-
133
- ### Patch Changes
134
-
135
- - Updated dependencies [3fe2ad4]
136
- - @autometa/errors@0.2.2
137
- - @autometa/gherkin@0.5.7
138
-
139
- ## 0.2.9
140
-
141
- ### Patch Changes
142
-
143
- - Updated dependencies [3493bb6]
144
- - @autometa/errors@0.2.1
145
- - @autometa/gherkin@0.5.6
146
-
147
- ## 0.2.8
148
-
149
- ### Patch Changes
150
-
151
- - @autometa/gherkin@0.5.5
152
-
153
- ## 0.2.7
154
-
155
- ### Patch Changes
156
-
157
- - Updated dependencies [6fe8f64]
158
- - @autometa/gherkin@0.5.4
159
-
160
- ## 0.2.6
161
-
162
- ### Patch Changes
163
-
164
- - Updated dependencies [b5ce008]
165
- - @autometa/errors@0.2.0
166
- - @autometa/gherkin@0.5.3
167
-
168
- ## 0.2.5
169
-
170
- ### Patch Changes
171
-
172
- - 04ed85d: feat: added HTP client based on axios
173
- - Updated dependencies [04ed85d]
174
- - @autometa/gherkin@0.5.2
175
- - @autometa/errors@0.1.4
176
-
177
- ## 0.2.4
178
-
179
- ### Patch Changes
180
-
181
- - Updated dependencies [4b796f8]
182
- - @autometa/gherkin@0.5.1
183
-
184
- ## 0.2.3
185
-
186
- ### Patch Changes
187
-
188
- - Updated dependencies [329c6b8]
189
- - @autometa/gherkin@0.5.0
190
-
191
- ## 0.2.2
192
-
193
- ### Patch Changes
194
-
195
- - fix: exporting event types
196
-
197
- ## 0.2.1
198
-
199
- ### Patch Changes
200
-
201
- - 3672161c: Fix: export event option types
202
-
203
- ## 0.2.0
204
-
205
- ### Minor Changes
206
-
207
- - 51d88780: Feat: Add Async Test Event support to new runner
208
-
209
- ## 0.1.6
210
-
211
- ### Patch Changes
212
-
213
- - 53f958e1: Fix: steps not executing onStepEnded event when an error was thrown
214
- - Updated dependencies [53f958e1]
215
- - @autometa/errors@0.1.3
216
- - @autometa/gherkin@0.4.5
217
- - @autometa/types@0.4.1
218
-
219
- ## 0.1.5
220
-
221
- ### Patch Changes
222
-
223
- - Updated dependencies [12bd4b1e]
224
- - @autometa/errors@0.1.2
225
- - @autometa/gherkin@0.4.4
226
-
227
- ## 0.1.4
228
-
229
- ### Patch Changes
230
-
231
- - ff45dc43: fix(jest-executor): step text was not correctly logged
232
-
233
- ## 0.1.3
234
-
235
- ### Patch Changes
236
-
237
- - 29ed7239: fix(test-builder): onStepStart event not firing
238
- - Updated dependencies [29ed7239]
239
- - @autometa/gherkin@0.4.3
240
-
241
- ## 0.1.2
242
-
243
- ### Patch Changes
244
-
245
- - @autometa/gherkin@0.4.2
246
-
247
- ## 0.1.1
248
-
249
- ### Patch Changes
250
-
251
- - Updated dependencies [e8f02f3a]
252
- - @autometa/gherkin@0.4.1
253
- - @autometa/errors@0.1.1
254
-
255
- ## 0.1.0
256
-
257
- ### Minor Changes
258
-
259
- - 554b77e: Releasing packages
260
-
261
- ### Patch Changes
262
-
263
- - Updated dependencies [554b77e]
264
- - @autometa/errors@0.1.0
265
- - @autometa/gherkin@0.4.0
266
- - @autometa/types@0.4.0
267
-
268
- ## 0.0.10
269
-
270
- ### Patch Changes
271
-
272
- - @autometa/gherkin@0.3.3
273
-
274
- ## 0.0.9
275
-
276
- ### Patch Changes
277
-
278
- - @autometa/gherkin@0.3.2
279
-
280
- ## 0.0.8
281
-
282
- ### Patch Changes
283
-
284
- - 6a4a9ac: Swapped project type to "composite", unified build system for most projects
285
- - Updated dependencies [6a4a9ac]
286
- - @autometa/gherkin@0.3.1
287
- - @autometa/types@0.3.1
288
-
289
- ## 0.0.7
290
-
291
- ### Patch Changes
292
-
293
- - Updated dependencies [b48f577]
294
- - @autometa/gherkin@0.3.0
295
- - @autometa/types@0.3.0
296
- - @autometa/dto-builder@0.9.1
297
-
298
- ## 0.0.6
299
-
300
- ### Patch Changes
301
-
302
- - Updated dependencies [a874510]
303
- - @autometa/dto-builder@0.9.0
304
- - @autometa/gherkin@0.2.5
305
-
306
- ## 0.0.5
307
-
308
- ### Patch Changes
309
-
310
- - bc5e12c: Added 'overloaded' package for overloaded or pattern matched functins and methods
311
- - Updated dependencies [bc5e12c]
312
- - @autometa/gherkin@0.2.4
313
-
314
- ## 0.0.4
315
-
316
- ### Patch Changes
317
-
318
- - Updated dependencies [64bacd4]
319
- - @autometa/gherkin@0.2.3
320
-
321
- ## 0.0.3
322
-
323
- ### Patch Changes
324
-
325
- - Updated dependencies [064b589]
326
- - @autometa/dto-builder@0.8.0
327
- - @autometa/gherkin@0.2.2
328
-
329
- ## 0.0.2
330
-
331
- ### Patch Changes
332
-
333
- - Updated dependencies [cfc35f4]
334
- - @autometa/dto-builder@0.7.1
335
- - @autometa/gherkin@0.2.1
336
- - @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"]}