@cloudbeat/cucumber 1.0.0-beta.1

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/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # `client`
2
+
3
+ > TODO: description
4
+
5
+ ## Usage
6
+
7
+ ```
8
+ const client = require('client');
9
+
10
+ // TODO: DEMONSTRATE API
11
+ ```
@@ -0,0 +1,40 @@
1
+ import { Formatter } from '@cucumber/cucumber';
2
+ import { ReporterOptions } from './types';
3
+ declare class CbCucumberReporter extends Formatter {
4
+ private readonly options;
5
+ private stats;
6
+ private cbTestResult?;
7
+ private playwrightSteps;
8
+ private acceptedPickleIds;
9
+ private parsedGherkinDocumentMap;
10
+ private parsedPickleMap;
11
+ private parsedTestCaseMap;
12
+ private parsedStepDefinitionMap;
13
+ private startedTestCaseMap;
14
+ private startedCbSuiteMap;
15
+ private startedCbCaseMap;
16
+ private startedCbStepMap;
17
+ private attachmentsByTestStepIdMap;
18
+ private runId?;
19
+ private instanceId?;
20
+ private agentId?;
21
+ private resultFilePath?;
22
+ constructor(options: ReporterOptions);
23
+ private setupEventListeners;
24
+ private handleEnvelope;
25
+ private onTestRunHookStarted;
26
+ private onTestCase;
27
+ private onGherkinDocument;
28
+ private onPickle;
29
+ private onAttachment;
30
+ private onTestRunStarted;
31
+ private onTestRunFinished;
32
+ private onTestCaseStarted;
33
+ private onTestCaseFinished;
34
+ private onTestStepStarted;
35
+ private onTestStepFinished;
36
+ private getStatusInfo;
37
+ private updateScenarioStats;
38
+ private updateStepStats;
39
+ }
40
+ export default CbCucumberReporter;
@@ -0,0 +1,350 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const types_1 = require("@cloudbeat/types");
4
+ const cucumber_1 = require("@cucumber/cucumber");
5
+ const utils_1 = require("./utils");
6
+ class CbCucumberReporter extends cucumber_1.Formatter {
7
+ constructor(options) {
8
+ super(options);
9
+ this.stats = {
10
+ scenarios: { total: 0, passed: 0, failed: 0, skipped: 0 },
11
+ steps: { total: 0, passed: 0, failed: 0, skipped: 0, pending: 0 },
12
+ };
13
+ this.playwrightSteps = new Map();
14
+ this.acceptedPickleIds = new Set();
15
+ this.parsedGherkinDocumentMap = new Map();
16
+ this.parsedPickleMap = new Map();
17
+ this.parsedTestCaseMap = new Map();
18
+ this.parsedStepDefinitionMap = new Map();
19
+ this.startedTestCaseMap = new Map();
20
+ this.startedCbSuiteMap = new Map();
21
+ this.startedCbCaseMap = new Map();
22
+ this.startedCbStepMap = new Map();
23
+ this.attachmentsByTestStepIdMap = new Map();
24
+ this.options = options;
25
+ if (process.env.CB_AGENT
26
+ && process.env.CB_AGENT === 'true'
27
+ && (options.runId || process.env.CB_RUN_ID)
28
+ && (options.instanceId || process.env.CB_INSTANCE_ID)
29
+ && (options.agentId || process.env.CB_AGENT_ID)) {
30
+ this.runId = options.runId || process.env.CB_RUN_ID;
31
+ this.instanceId = options.instanceId || process.env.CB_INSTANCE_ID;
32
+ this.agentId = options.agentId || process.env.CB_AGENT_ID;
33
+ this.resultFilePath = (0, utils_1.getResultFilePath)(options.outputDir);
34
+ this.cbTestResult = {
35
+ startTime: (new Date()).getTime(),
36
+ runId: this.runId,
37
+ instanceId: this.instanceId,
38
+ agentId: this.agentId,
39
+ suites: [],
40
+ metadata: {
41
+ framework: 'Cucumber',
42
+ language: 'JavaScript',
43
+ },
44
+ };
45
+ this.setupEventListeners();
46
+ }
47
+ }
48
+ setupEventListeners() {
49
+ this.options.eventBroadcaster.on('envelope', this.handleEnvelope.bind(this));
50
+ }
51
+ handleEnvelope(envelope) {
52
+ if (envelope.testRunStarted) {
53
+ this.onTestRunStarted(envelope.testRunStarted);
54
+ }
55
+ else if (envelope.testRunFinished) {
56
+ this.onTestRunFinished(envelope.testRunFinished);
57
+ }
58
+ else if (envelope.testCase) {
59
+ this.onTestCase(envelope.testCase);
60
+ }
61
+ else if (envelope.gherkinDocument) {
62
+ this.onGherkinDocument(envelope.gherkinDocument);
63
+ }
64
+ else if (envelope.pickle) {
65
+ this.onPickle(envelope.pickle);
66
+ }
67
+ else if (envelope.attachment) {
68
+ this.onAttachment(envelope.attachment);
69
+ }
70
+ else if (envelope.stepDefinition) {
71
+ this.parsedStepDefinitionMap.set(envelope.stepDefinition.id, envelope.stepDefinition);
72
+ }
73
+ else if (envelope.testCaseStarted) {
74
+ this.onTestCaseStarted(envelope.testCaseStarted);
75
+ }
76
+ else if (envelope.testCaseFinished) {
77
+ this.onTestCaseFinished(envelope.testCaseFinished);
78
+ }
79
+ else if (envelope.testStepStarted) {
80
+ this.onTestStepStarted(envelope.testStepStarted);
81
+ }
82
+ else if (envelope.testStepFinished) {
83
+ this.onTestStepFinished(envelope.testStepFinished);
84
+ }
85
+ else {
86
+ if (envelope.meta || envelope.source || envelope.hook || envelope.attachment) {
87
+ return;
88
+ }
89
+ console.log('Other envelope', envelope);
90
+ }
91
+ }
92
+ onTestRunHookStarted(testRunHookStarted) {
93
+ console.log('testRunHookStarted', testRunHookStarted);
94
+ process.exit(0);
95
+ }
96
+ onTestCase(testCase) {
97
+ this.acceptedPickleIds.add(testCase.pickleId);
98
+ this.parsedTestCaseMap.set(testCase.id, testCase);
99
+ }
100
+ onGherkinDocument(gherkinDocument) {
101
+ var _a;
102
+ if (!gherkinDocument.feature || !gherkinDocument.uri) {
103
+ return;
104
+ }
105
+ this.parsedGherkinDocumentMap.set(gherkinDocument.uri, gherkinDocument);
106
+ const cbSuite = {
107
+ id: (0, utils_1.generateId)(),
108
+ name: (_a = gherkinDocument.feature) === null || _a === void 0 ? void 0 : _a.name,
109
+ startTime: (new Date()).getTime(),
110
+ duration: 0,
111
+ fqn: gherkinDocument.uri,
112
+ status: types_1.ResultStatusEnum.SKIPPED,
113
+ iterationNum: 1,
114
+ suites: [],
115
+ hooks: [],
116
+ cases: [],
117
+ };
118
+ cbSuite.endTime = cbSuite.startTime;
119
+ this.startedCbSuiteMap.set(gherkinDocument.uri, cbSuite);
120
+ this.cbTestResult.suites.push(cbSuite);
121
+ }
122
+ onPickle(pickle) {
123
+ this.parsedPickleMap.set(pickle.id, pickle);
124
+ }
125
+ onAttachment(attachment) {
126
+ const { testStepId } = attachment;
127
+ if (testStepId) {
128
+ if (!this.attachmentsByTestStepIdMap.has(testStepId)) {
129
+ this.attachmentsByTestStepIdMap.set(testStepId, []);
130
+ }
131
+ const attachments = this.attachmentsByTestStepIdMap.get(testStepId);
132
+ attachments.push(attachment);
133
+ }
134
+ }
135
+ onTestRunStarted(testRunStarted) {
136
+ this.cbTestResult.startTime = (new Date()).getTime();
137
+ }
138
+ onTestRunFinished(testRunFinished) {
139
+ if (!this.cbTestResult) {
140
+ return;
141
+ }
142
+ this.cbTestResult.endTime = (new Date()).getTime();
143
+ this.cbTestResult.duration = this.cbTestResult.endTime - this.cbTestResult.startTime;
144
+ const hasFailures = this.stats.scenarios.failed > 0 || this.stats.steps.failed > 0;
145
+ this.cbTestResult.status = testRunFinished.success === false || hasFailures
146
+ ? types_1.ResultStatusEnum.FAILED : types_1.ResultStatusEnum.PASSED;
147
+ (0, utils_1.generateResultFile)(this.cbTestResult, this.resultFilePath);
148
+ if (testRunFinished.success === false || hasFailures) {
149
+ console.log('❌ Test run completed with failures');
150
+ }
151
+ else {
152
+ console.log('✅ Test run completed successfully');
153
+ }
154
+ }
155
+ onTestCaseStarted(testCaseStarted) {
156
+ const testCase = this.parsedTestCaseMap.get(testCaseStarted.testCaseId);
157
+ if (!testCase) {
158
+ return;
159
+ }
160
+ const pickle = this.parsedPickleMap.get(testCase.pickleId);
161
+ if (!pickle) {
162
+ return;
163
+ }
164
+ const gherkinDocument = this.parsedGherkinDocumentMap.get(pickle.uri);
165
+ if (!gherkinDocument) {
166
+ return;
167
+ }
168
+ this.startedTestCaseMap.set(testCaseStarted.id, testCaseStarted);
169
+ const cbCaseResult = {
170
+ id: (0, utils_1.generateId)(),
171
+ name: pickle.name,
172
+ startTime: (new Date()).getTime(),
173
+ fqn: `${pickle.uri}:${pickle.name}`,
174
+ iterationNum: 1,
175
+ reRunCount: testCaseStarted.attempt,
176
+ steps: [],
177
+ };
178
+ const cbParentSuite = this.startedCbSuiteMap.get(gherkinDocument.uri);
179
+ if (!cbParentSuite) {
180
+ return;
181
+ }
182
+ if (cbParentSuite.duration === 0) {
183
+ cbParentSuite.startTime = cbCaseResult.startTime;
184
+ cbParentSuite.endTime = undefined;
185
+ cbParentSuite.duration = undefined;
186
+ cbParentSuite.status = types_1.ResultStatusEnum.PASSED;
187
+ }
188
+ cbParentSuite.cases.push(cbCaseResult);
189
+ this.startedCbCaseMap.set(testCaseStarted.id, cbCaseResult);
190
+ }
191
+ onTestCaseFinished(testCaseFinished) {
192
+ const cbCaseResult = this.startedCbCaseMap.get(testCaseFinished.testCaseStartedId);
193
+ if (!cbCaseResult) {
194
+ return;
195
+ }
196
+ const startedTestCase = this.startedTestCaseMap.get(testCaseFinished.testCaseStartedId);
197
+ if (!startedTestCase) {
198
+ return;
199
+ }
200
+ const testCase = this.parsedTestCaseMap.get(startedTestCase.testCaseId);
201
+ if (!testCase) {
202
+ return;
203
+ }
204
+ const pickle = this.parsedPickleMap.get(testCase.pickleId);
205
+ if (!pickle) {
206
+ return;
207
+ }
208
+ const gherkinDoc = this.parsedGherkinDocumentMap.get(pickle.uri);
209
+ if (!gherkinDoc) {
210
+ return;
211
+ }
212
+ const cbParentSuite = this.startedCbSuiteMap.get(gherkinDoc.uri);
213
+ if (!cbParentSuite) {
214
+ return;
215
+ }
216
+ cbCaseResult.endTime = (new Date()).getTime();
217
+ cbCaseResult.duration = cbCaseResult.endTime - cbCaseResult.startTime;
218
+ cbParentSuite.endTime = cbCaseResult.endTime;
219
+ cbParentSuite.duration = cbParentSuite.endTime - cbParentSuite.startTime;
220
+ const cukeResult = testCaseFinished.result;
221
+ if (cukeResult) {
222
+ cbCaseResult.status = cukeResult.status === 'FAILED' ? types_1.ResultStatusEnum.FAILED : types_1.ResultStatusEnum.PASSED;
223
+ if (cukeResult.message) {
224
+ cbCaseResult.failure = {
225
+ type: 'CUCUMBER_ERROR',
226
+ message: cukeResult.message,
227
+ };
228
+ }
229
+ }
230
+ else {
231
+ cbCaseResult.status = (0, utils_1.determineTestCaseStatus)(cbCaseResult);
232
+ }
233
+ if (cbCaseResult.status === types_1.ResultStatusEnum.FAILED) {
234
+ cbParentSuite.status = types_1.ResultStatusEnum.FAILED;
235
+ }
236
+ }
237
+ onTestStepStarted(testStepStarted) {
238
+ var _a;
239
+ const startedTestCase = this.startedTestCaseMap.get(testStepStarted.testCaseStartedId);
240
+ if (!startedTestCase) {
241
+ return;
242
+ }
243
+ const cbCaseResult = this.startedCbCaseMap.get(testStepStarted.testCaseStartedId);
244
+ if (!cbCaseResult) {
245
+ return;
246
+ }
247
+ const testCase = this.parsedTestCaseMap.get(startedTestCase.testCaseId);
248
+ if (!testCase) {
249
+ return;
250
+ }
251
+ const pickle = this.parsedPickleMap.get(testCase.pickleId);
252
+ if (!pickle) {
253
+ return;
254
+ }
255
+ if (!testStepStarted.testStepId) {
256
+ return;
257
+ }
258
+ const testCaseStartedStep = testCase.testSteps.find(step => step.id === testStepStarted.testStepId);
259
+ if (!(testCaseStartedStep === null || testCaseStartedStep === void 0 ? void 0 : testCaseStartedStep.stepDefinitionIds) || !testCaseStartedStep.stepDefinitionIds.length) {
260
+ return;
261
+ }
262
+ const pickleStepId = testCaseStartedStep.pickleStepId;
263
+ const pickleStep = pickle.steps.find(step => step.id === pickleStepId);
264
+ if (!pickleStep) {
265
+ return;
266
+ }
267
+ const cbStepResult = {
268
+ id: (0, utils_1.generateId)(),
269
+ name: pickleStep.text,
270
+ type: types_1.StepTypeEnum.GHERKIN,
271
+ startTime: (new Date()).getTime(),
272
+ fqn: `${cbCaseResult.fqn}:${pickleStep.text}`,
273
+ location: pickleStep.locations && pickleStep.locations.length ? `${pickle.uri}:${pickleStep.locations[0].line}` : undefined,
274
+ extra: {
275
+ gherkin: {
276
+ type: (0, utils_1.getGherkinStepExtraType)(pickleStep.type),
277
+ },
278
+ },
279
+ steps: [],
280
+ };
281
+ (_a = cbCaseResult.steps) === null || _a === void 0 ? void 0 : _a.push(cbStepResult);
282
+ this.startedCbStepMap.set(testStepStarted.testStepId, cbStepResult);
283
+ }
284
+ onTestStepFinished(testStepFinished) {
285
+ const { testStepResult, testStepId, testCaseStartedId } = testStepFinished;
286
+ const cbStepResult = this.startedCbStepMap.get(testStepId);
287
+ if (!cbStepResult) {
288
+ return;
289
+ }
290
+ const attachments = this.attachmentsByTestStepIdMap.get(testStepId);
291
+ cbStepResult.endTime = (new Date()).getTime();
292
+ cbStepResult.duration = cbStepResult.endTime - cbStepResult.startTime;
293
+ cbStepResult.status = types_1.ResultStatusEnum.PASSED;
294
+ (0, utils_1.addPlaywrightStepsFromAttachments)(cbStepResult, attachments);
295
+ if (testStepResult && testStepResult.status === 'FAILED') {
296
+ cbStepResult.status = types_1.ResultStatusEnum.FAILED;
297
+ if (testStepResult.exception) {
298
+ cbStepResult.failure = (0, utils_1.getFailureFromException)(testStepResult.exception);
299
+ }
300
+ else if (testStepResult.message) {
301
+ cbStepResult.failure = (0, utils_1.getFailureFromMessage)(testStepResult.message);
302
+ }
303
+ }
304
+ }
305
+ getStatusInfo(status) {
306
+ switch (status) {
307
+ case 'PASSED':
308
+ return { status: 'PASSED', emoji: '✅' };
309
+ case 'FAILED':
310
+ return { status: 'FAILED', emoji: '❌' };
311
+ case 'SKIPPED':
312
+ return { status: 'SKIPPED', emoji: '⏭️' };
313
+ case 'PENDING':
314
+ return { status: 'PENDING', emoji: '⏳' };
315
+ default:
316
+ return { status, emoji: '❓' };
317
+ }
318
+ }
319
+ updateScenarioStats(status) {
320
+ switch (status) {
321
+ case 'PASSED':
322
+ this.stats.scenarios.passed++;
323
+ break;
324
+ case 'FAILED':
325
+ this.stats.scenarios.failed++;
326
+ break;
327
+ case 'SKIPPED':
328
+ this.stats.scenarios.skipped++;
329
+ break;
330
+ }
331
+ }
332
+ updateStepStats(status) {
333
+ switch (status) {
334
+ case 'PASSED':
335
+ this.stats.steps.passed++;
336
+ break;
337
+ case 'FAILED':
338
+ this.stats.steps.failed++;
339
+ break;
340
+ case 'SKIPPED':
341
+ this.stats.steps.skipped++;
342
+ break;
343
+ case 'PENDING':
344
+ this.stats.steps.pending++;
345
+ break;
346
+ }
347
+ }
348
+ }
349
+ exports.default = CbCucumberReporter;
350
+ //# sourceMappingURL=CbCucumberReporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CbCucumberReporter.js","sourceRoot":"","sources":["../src/CbCucumberReporter.ts"],"names":[],"mappings":"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"}
package/out/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ import CbCucumberReporter from './CbCucumberReporter';
2
+ import { wrapExpect, wrapPlaywrightPage } from './pw-utils';
3
+ export default CbCucumberReporter;
4
+ export { wrapPlaywrightPage, wrapExpect };
package/out/index.js ADDED
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.wrapExpect = exports.wrapPlaywrightPage = void 0;
7
+ const CbCucumberReporter_1 = __importDefault(require("./CbCucumberReporter"));
8
+ const pw_utils_1 = require("./pw-utils");
9
+ Object.defineProperty(exports, "wrapExpect", { enumerable: true, get: function () { return pw_utils_1.wrapExpect; } });
10
+ Object.defineProperty(exports, "wrapPlaywrightPage", { enumerable: true, get: function () { return pw_utils_1.wrapPlaywrightPage; } });
11
+ exports.default = CbCucumberReporter_1.default;
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,8EAAsD;AACtD,yCAA4D;AAI/B,2FAJpB,qBAAU,OAIoB;AAA9B,mGAJY,6BAAkB,OAIZ;AAF3B,kBAAe,4BAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { World } from '@cucumber/cucumber';
2
+ export declare function wrapPlaywrightPage(page: any, world: World): any;
3
+ export declare function wrapExpect(originalExpect: any, world: World): any;
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.wrapPlaywrightPage = wrapPlaywrightPage;
4
+ exports.wrapExpect = wrapExpect;
5
+ const CAPTURE_METHODS = [
6
+ 'goto', 'click', 'fill', 'type', 'press', 'waitForSelector',
7
+ 'waitForTimeout', 'screenshot', 'evaluate', 'locator',
8
+ 'getByText', 'getByRole', 'getByTestId', 'getByPlaceholder',
9
+ 'selectOption', 'check', 'uncheck', 'hover', 'focus', 'blur',
10
+ 'waitFor', 'getAttribute',
11
+ ];
12
+ function shouldCaptureMethod(method) {
13
+ return CAPTURE_METHODS.includes(method);
14
+ }
15
+ function shouldCaptureExpectationMethod(method) {
16
+ const captureMethods = [
17
+ 'toBe', 'toEqual', 'toStrictEqual', 'toBeTruthy', 'toBeFalsy', 'toBeNull',
18
+ 'toBeUndefined', 'toBeDefined', 'toContain', 'toHaveLength', 'toMatch',
19
+ 'toThrow', 'toHaveBeenCalled', 'toHaveBeenCalledWith', 'toHaveBeenCalledTimes',
20
+ 'toBeVisible', 'toBeHidden', 'toBeEnabled', 'toBeDisabled', 'toBeEditable',
21
+ 'toBeEmpty', 'toBeChecked', 'toBeFocused', 'toContainText', 'toHaveAttribute',
22
+ 'toHaveClass', 'toHaveCSS', 'toHaveId', 'toHaveJSProperty', 'toHaveText',
23
+ 'toHaveValue', 'toHaveTitle', 'toHaveURL', 'toHaveCount', 'toHaveScreenshot',
24
+ 'not',
25
+ ];
26
+ return captureMethods.includes(method);
27
+ }
28
+ function wrapPlaywrightPage(page, world) {
29
+ return new Proxy(page, {
30
+ get(target, prop, receiver) {
31
+ const originalValue = Reflect.get(target, prop, receiver);
32
+ if (prop === 'locator') {
33
+ return function (...args) {
34
+ const locator = originalValue.apply(target, args);
35
+ return createLocatorProxy(locator, args[0], world);
36
+ };
37
+ }
38
+ if (typeof prop === 'string' && typeof originalValue === 'function' && shouldCaptureMethod(prop)) {
39
+ return function (...args) {
40
+ const event = {
41
+ type: 'page_action',
42
+ method: prop,
43
+ args: serializeArgs(args),
44
+ start: new Date().getTime(),
45
+ success: true,
46
+ };
47
+ try {
48
+ const result = originalValue.apply(this, args);
49
+ if (result && typeof result.then === 'function') {
50
+ return result.then((value) => {
51
+ event.end = new Date().getTime();
52
+ event.result = sanitizeResult(value);
53
+ attachEvent(world, event);
54
+ return value;
55
+ }, (error) => {
56
+ event.end = new Date().getTime();
57
+ event.success = false;
58
+ event.error = {
59
+ type: error.name,
60
+ message: error.message,
61
+ stack: error.stack,
62
+ };
63
+ attachEvent(world, event);
64
+ throw error;
65
+ });
66
+ }
67
+ else {
68
+ event.end = new Date().getTime();
69
+ event.result = sanitizeResult(result);
70
+ attachEvent(world, event);
71
+ return result;
72
+ }
73
+ }
74
+ catch (error) {
75
+ event.end = new Date().getTime();
76
+ event.success = false;
77
+ event.error = {
78
+ type: error.name,
79
+ message: error.message,
80
+ stack: error.stack,
81
+ };
82
+ attachEvent(world, event);
83
+ throw error;
84
+ }
85
+ };
86
+ }
87
+ return originalValue;
88
+ },
89
+ });
90
+ }
91
+ function createLocatorProxy(locator, selector, world) {
92
+ return new Proxy(locator, {
93
+ get(target, prop) {
94
+ const originalValue = target[prop];
95
+ if (typeof originalValue === 'function' && shouldCaptureMethod(prop)) {
96
+ return function (...args) {
97
+ const event = {
98
+ type: 'locator_action',
99
+ method: prop,
100
+ selector: selector,
101
+ args: serializeArgs(args),
102
+ start: new Date().getTime(),
103
+ success: true,
104
+ };
105
+ const result = originalValue.apply(target, args);
106
+ if (result && typeof result.then === 'function') {
107
+ return result.then((value) => {
108
+ event.end = new Date().getTime();
109
+ event.result = sanitizeResult(value);
110
+ attachEvent(world, event);
111
+ return value;
112
+ }, (error) => {
113
+ event.end = new Date().getTime();
114
+ event.success = false;
115
+ event.error = {
116
+ type: error.name,
117
+ message: error.message,
118
+ stack: error.stack,
119
+ };
120
+ attachEvent(world, event);
121
+ throw error;
122
+ });
123
+ }
124
+ event.end = new Date().getTime();
125
+ event.result = sanitizeResult(result);
126
+ attachEvent(world, event);
127
+ return result;
128
+ };
129
+ }
130
+ return originalValue;
131
+ },
132
+ });
133
+ }
134
+ function attachEvent(world, event) {
135
+ try {
136
+ const jsonData = JSON.stringify(event);
137
+ world.attach(jsonData, 'application/json;x-origin=cloudbeat');
138
+ }
139
+ catch (error) {
140
+ console.warn('Failed to attach Playwright event:', error.message);
141
+ }
142
+ }
143
+ function serializeArgs(args) {
144
+ return args.map(arg => {
145
+ return serializeValue(arg);
146
+ });
147
+ }
148
+ function serializeValue(value) {
149
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || value == null) {
150
+ return value;
151
+ }
152
+ if (typeof value === 'object') {
153
+ try {
154
+ return JSON.parse(JSON.stringify(value));
155
+ }
156
+ catch (_a) {
157
+ if (value.constructor && value.constructor.name) {
158
+ return `[${value.constructor.name}]`;
159
+ }
160
+ return '[Object]';
161
+ }
162
+ }
163
+ return '[Unknown]';
164
+ }
165
+ function sanitizeResult(result) {
166
+ if (result == null) {
167
+ return result;
168
+ }
169
+ if (typeof result === 'string' || typeof result === 'number' || typeof result === 'boolean') {
170
+ return result;
171
+ }
172
+ if (typeof result === 'object' && result.constructor && result.constructor.name) {
173
+ return `[${result.constructor.name}]`;
174
+ }
175
+ return '[Unknown]';
176
+ }
177
+ function isPlaywrightExpect(expectFunction) {
178
+ return expectFunction && expectFunction.name === 'expect' &&
179
+ expectFunction.toString().includes('playwright') ||
180
+ expectFunction.soft !== undefined;
181
+ }
182
+ function wrapExpect(originalExpect, world) {
183
+ return new Proxy(originalExpect, {
184
+ apply(target, thisArg, argumentsList) {
185
+ const actual = argumentsList[0];
186
+ const event = {
187
+ type: 'assertion',
188
+ method: 'expect',
189
+ args: serializeArgs(argumentsList),
190
+ start: new Date().getTime(),
191
+ success: true,
192
+ assertionType: isPlaywrightExpect(target) ? 'playwright_expect' : 'expect',
193
+ actual: serializeValue(actual),
194
+ };
195
+ try {
196
+ const result = target.apply(thisArg, argumentsList);
197
+ if (result && typeof result === 'object') {
198
+ return createExpectationProxy(result, event, world);
199
+ }
200
+ event.end = new Date().getTime();
201
+ attachEvent(world, event);
202
+ return result;
203
+ }
204
+ catch (error) {
205
+ event.end = new Date().getTime();
206
+ event.success = false;
207
+ event.error = {
208
+ type: error.name,
209
+ message: error.message,
210
+ stack: error.stack,
211
+ };
212
+ attachEvent(world, event);
213
+ throw error;
214
+ }
215
+ },
216
+ });
217
+ }
218
+ function createExpectationProxy(expectation, baseEvent, world) {
219
+ return new Proxy(expectation, {
220
+ get(target, prop) {
221
+ const originalValue = target[prop];
222
+ if (typeof originalValue === 'function' && shouldCaptureExpectationMethod(prop)) {
223
+ return function (...args) {
224
+ const event = Object.assign(Object.assign({}, baseEvent), { method: `expect.${prop}`, args: serializeArgs(args), start: new Date().getTime(), expected: args.length > 0 ? serializeValue(args[0]) : undefined, success: true });
225
+ try {
226
+ const result = originalValue.apply(target, args);
227
+ if (result && typeof result.then === 'function') {
228
+ return result.then((value) => {
229
+ event.end = new Date().getTime();
230
+ attachEvent(world, event);
231
+ return value;
232
+ }, (error) => {
233
+ event.end = new Date().getTime();
234
+ event.success = false;
235
+ event.error = {
236
+ type: error.name,
237
+ message: error.message,
238
+ stack: error.stack,
239
+ };
240
+ attachEvent(world, event);
241
+ throw error;
242
+ });
243
+ }
244
+ event.end = new Date().getTime();
245
+ attachEvent(world, event);
246
+ return result;
247
+ }
248
+ catch (error) {
249
+ event.end = new Date().getTime();
250
+ event.success = false;
251
+ event.error = {
252
+ type: error.name,
253
+ message: error.message,
254
+ stack: error.stack,
255
+ };
256
+ attachEvent(world, event);
257
+ throw error;
258
+ }
259
+ };
260
+ }
261
+ return originalValue;
262
+ },
263
+ });
264
+ }
265
+ //# sourceMappingURL=pw-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pw-utils.js","sourceRoot":"","sources":["../src/pw-utils.ts"],"names":[],"mappings":"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"}
package/out/types.d.ts ADDED
@@ -0,0 +1,282 @@
1
+ import { EventEmitter } from 'events';
2
+ import { IFormatterOptions } from '@cucumber/cucumber';
3
+ import StepDefinition from '@cucumber/cucumber/lib/models/step_definition';
4
+ export interface Envelope {
5
+ testRunStarted?: TestRunStarted;
6
+ testRunFinished?: TestRunFinished;
7
+ testRunHookStarted?: TestRunHookStarted;
8
+ testRunHookFinished?: TestRunHookFinished;
9
+ testCaseStarted?: TestCaseStarted;
10
+ testCaseFinished?: TestCaseFinished;
11
+ testStepStarted?: TestStepStarted;
12
+ testStepFinished?: TestStepFinished;
13
+ gherkinDocument?: GherkinDocument;
14
+ testCase?: TestCase;
15
+ pickle?: Pickle;
16
+ stepDefinition?: StepDefinition;
17
+ attachment?: Attachment;
18
+ }
19
+ export interface Attachment {
20
+ testCaseStartedId?: string;
21
+ testStepId?: string;
22
+ body: string;
23
+ mediaType: string;
24
+ contentEncoding?: 'IDENTITY' | 'BASE64';
25
+ fileName?: string;
26
+ source?: string;
27
+ }
28
+ export interface TestRunHookStarted {
29
+ id: string;
30
+ hookId: string;
31
+ testRunStartedId: string;
32
+ timestamp: {
33
+ seconds: number;
34
+ nanos: number;
35
+ };
36
+ }
37
+ export interface TestRunHookFinished {
38
+ testRunHookStartedId: string;
39
+ result: {
40
+ status: "UNKNOWN" | "PASSED" | "SKIPPED" | "PENDING" | "UNDEFINED" | "AMBIGUOUS" | "FAILED";
41
+ duration?: {
42
+ seconds: number;
43
+ nanos: number;
44
+ };
45
+ message?: string;
46
+ };
47
+ timestamp: {
48
+ seconds: number;
49
+ nanos: number;
50
+ };
51
+ }
52
+ export interface TestCaseLocation {
53
+ line: number;
54
+ column: number;
55
+ }
56
+ export interface TestCaseTag {
57
+ name: string;
58
+ location: TestCaseLocation;
59
+ }
60
+ export interface TestStep {
61
+ id: string;
62
+ pickleStepId?: string;
63
+ hookId?: string;
64
+ stepDefinitionIds?: string[];
65
+ }
66
+ export interface TestCase {
67
+ id: string;
68
+ pickleId: string;
69
+ testSteps: TestStep[];
70
+ tags: TestCaseTag[];
71
+ }
72
+ export interface GherkinDocumentLocation {
73
+ line: number;
74
+ column: number;
75
+ }
76
+ export interface GherkinTag {
77
+ name: string;
78
+ location: GherkinDocumentLocation;
79
+ }
80
+ export interface GherkinStep {
81
+ location: GherkinDocumentLocation;
82
+ keyword: string;
83
+ text: string;
84
+ docString?: {
85
+ location: GherkinDocumentLocation;
86
+ contentType?: string;
87
+ content: string;
88
+ };
89
+ dataTable?: {
90
+ location: GherkinDocumentLocation;
91
+ rows: {
92
+ location: GherkinDocumentLocation;
93
+ cells: {
94
+ location: GherkinDocumentLocation;
95
+ value: string;
96
+ }[];
97
+ }[];
98
+ };
99
+ }
100
+ export interface GherkinScenarioExample {
101
+ location: GherkinDocumentLocation;
102
+ tags: GherkinTag[];
103
+ keyword: string;
104
+ name: string;
105
+ description: string;
106
+ tableHeader: {
107
+ location: GherkinDocumentLocation;
108
+ cells: {
109
+ location: GherkinDocumentLocation;
110
+ value: string;
111
+ }[];
112
+ };
113
+ tableBody: {
114
+ location: GherkinDocumentLocation;
115
+ cells: {
116
+ location: GherkinDocumentLocation;
117
+ value: string;
118
+ }[];
119
+ }[];
120
+ }
121
+ export interface GherkinScenario {
122
+ location: GherkinDocumentLocation;
123
+ tags: GherkinTag[];
124
+ keyword: string;
125
+ name: string;
126
+ description: string;
127
+ steps: GherkinStep[];
128
+ examples?: GherkinScenarioExample[];
129
+ }
130
+ export interface GherkinFeatureChild {
131
+ scenario?: GherkinScenario;
132
+ }
133
+ export interface GherkinFeature {
134
+ location: GherkinDocumentLocation;
135
+ tags: GherkinTag[];
136
+ language: string;
137
+ keyword: string;
138
+ name: string;
139
+ description: string;
140
+ children: GherkinFeatureChild[];
141
+ }
142
+ export interface GherkinComment {
143
+ location: GherkinDocumentLocation;
144
+ text: string;
145
+ }
146
+ export interface GherkinDocument {
147
+ uri: string;
148
+ feature?: GherkinFeature;
149
+ comments?: GherkinComment[];
150
+ }
151
+ interface PickleLocation {
152
+ line: number;
153
+ column: number;
154
+ }
155
+ interface PickleTag {
156
+ name: string;
157
+ location: PickleLocation;
158
+ }
159
+ interface PickleStepArgument {
160
+ }
161
+ export interface PickleStep {
162
+ id: string;
163
+ text: string;
164
+ type: string;
165
+ arguments: PickleStepArgument[];
166
+ locations: PickleLocation[];
167
+ }
168
+ export interface Pickle {
169
+ id: string;
170
+ uri: string;
171
+ name: string;
172
+ language: string;
173
+ steps: PickleStep[];
174
+ tags: PickleTag[];
175
+ locations: PickleLocation[];
176
+ }
177
+ export interface TestRunStarted {
178
+ timestamp: {
179
+ seconds: number;
180
+ nanos: number;
181
+ };
182
+ }
183
+ export interface TestRunFinished {
184
+ timestamp: {
185
+ seconds: number;
186
+ nanos: number;
187
+ };
188
+ success: boolean;
189
+ }
190
+ export interface TestCaseStarted {
191
+ id: string;
192
+ testCaseId: string;
193
+ attempt: number;
194
+ timestamp: {
195
+ seconds: number;
196
+ nanos: number;
197
+ };
198
+ }
199
+ export interface TestCaseFinished {
200
+ testCaseStartedId: string;
201
+ timestamp: {
202
+ seconds: number;
203
+ nanos: number;
204
+ };
205
+ result: TestResult;
206
+ }
207
+ export interface TestStepStarted {
208
+ testCaseStartedId: string;
209
+ testStepId?: string;
210
+ hookId?: string;
211
+ timestamp: {
212
+ seconds: number;
213
+ nanos: number;
214
+ };
215
+ }
216
+ export interface TestStepFinished {
217
+ testCaseStartedId: string;
218
+ testStepId: string;
219
+ testStepResult: {
220
+ status: 'PASSED' | 'FAILED' | 'SKIPPED' | 'PENDING' | 'UNDEFINED';
221
+ message: string;
222
+ exception: {
223
+ type: string;
224
+ message: string;
225
+ stackTrace: string;
226
+ };
227
+ };
228
+ timestamp: {
229
+ seconds: number;
230
+ nanos: number;
231
+ };
232
+ result: TestResult;
233
+ }
234
+ export interface TestResult {
235
+ status: 'PASSED' | 'FAILED' | 'SKIPPED' | 'PENDING' | 'UNDEFINED';
236
+ duration?: {
237
+ seconds: number;
238
+ nanos: number;
239
+ };
240
+ message?: string;
241
+ }
242
+ export interface TestStats {
243
+ scenarios: {
244
+ total: number;
245
+ passed: number;
246
+ failed: number;
247
+ skipped: number;
248
+ };
249
+ steps: {
250
+ total: number;
251
+ passed: number;
252
+ failed: number;
253
+ skipped: number;
254
+ pending: number;
255
+ };
256
+ }
257
+ export interface ParsedTestCase {
258
+ pickle: {
259
+ id: string;
260
+ name: string;
261
+ steps: {
262
+ id: string;
263
+ text: string;
264
+ }[];
265
+ };
266
+ gherkinDocument: {
267
+ feature: {
268
+ name: string;
269
+ };
270
+ };
271
+ }
272
+ export interface ReporterOptions extends IFormatterOptions {
273
+ eventBroadcaster: EventEmitter;
274
+ parsedTestCaseMap: {
275
+ [key: string]: ParsedTestCase;
276
+ };
277
+ runId?: string;
278
+ instanceId?: string;
279
+ agentId?: string;
280
+ outputDir?: string;
281
+ }
282
+ export {};
package/out/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/out/utils.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ import { CaseResult as CbCaseResult, StepResult as CbStepResult, TestResult as CbTestResult, FailureResult, ResultStatusEnum } from '@cloudbeat/types';
2
+ export declare function generateResultFile(result: CbTestResult, filePath: string): void;
3
+ export declare function getResultFilePath(outputDir?: string): string;
4
+ export declare function generateId(): string;
5
+ export declare function determineTestCaseStatus(result: CbCaseResult): ResultStatusEnum;
6
+ export declare function getFailureFromException(exception: any): FailureResult | undefined;
7
+ export declare function getFailureFromMessage(message: string): FailureResult | undefined;
8
+ export declare function getGherkinStepExtraType(type: string): any;
9
+ export declare function addPlaywrightStepsFromAttachments(cbStepResult: CbStepResult, attachments: any): void;
package/out/utils.js ADDED
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateResultFile = generateResultFile;
7
+ exports.getResultFilePath = getResultFilePath;
8
+ exports.generateId = generateId;
9
+ exports.determineTestCaseStatus = determineTestCaseStatus;
10
+ exports.getFailureFromException = getFailureFromException;
11
+ exports.getFailureFromMessage = getFailureFromMessage;
12
+ exports.getGherkinStepExtraType = getGherkinStepExtraType;
13
+ exports.addPlaywrightStepsFromAttachments = addPlaywrightStepsFromAttachments;
14
+ const fs_1 = __importDefault(require("fs"));
15
+ const path_1 = __importDefault(require("path"));
16
+ const types_1 = require("@cloudbeat/types");
17
+ const uuid_1 = require("uuid");
18
+ const CB_TEST_RESULT_FILE_NAME = '.CB_TEST_RESULTS.json';
19
+ function generateResultFile(result, filePath) {
20
+ const fileContent = JSON.stringify(result, null, 4);
21
+ fs_1.default.writeFileSync(filePath, fileContent);
22
+ }
23
+ function getResultFilePath(outputDir) {
24
+ let resultFileDir;
25
+ if (outputDir) {
26
+ if (!path_1.default.isAbsolute(outputDir)) {
27
+ outputDir = path_1.default.join(process.cwd(), outputDir);
28
+ }
29
+ if (!fs_1.default.existsSync(outputDir)) {
30
+ fs_1.default.mkdirSync(outputDir, { recursive: true });
31
+ }
32
+ resultFileDir = outputDir;
33
+ }
34
+ else {
35
+ resultFileDir = process.cwd();
36
+ }
37
+ return path_1.default.join(resultFileDir, CB_TEST_RESULT_FILE_NAME);
38
+ }
39
+ function generateId() {
40
+ return (0, uuid_1.v4)();
41
+ }
42
+ function determineTestCaseStatus(result) {
43
+ var _a;
44
+ if (!result.steps) {
45
+ return types_1.ResultStatusEnum.PASSED;
46
+ }
47
+ const hasFailedSteps = (_a = result.steps) === null || _a === void 0 ? void 0 : _a.some(step => step.status === types_1.ResultStatusEnum.FAILED);
48
+ return hasFailedSteps ? types_1.ResultStatusEnum.FAILED : types_1.ResultStatusEnum.PASSED;
49
+ }
50
+ function getFailureFromException(exception) {
51
+ if (!exception) {
52
+ return undefined;
53
+ }
54
+ const failure = {
55
+ type: 'CUCUMBER_ERROR',
56
+ };
57
+ if (exception.type === 'TimeoutError') {
58
+ failure.type = 'TIMEOUT_ERROR';
59
+ }
60
+ failure.subtype = exception.type;
61
+ failure.message = exception.message;
62
+ failure.stacktrace = exception.stackTrace;
63
+ return failure;
64
+ }
65
+ function getFailureFromMessage(message) {
66
+ if (!message) {
67
+ return undefined;
68
+ }
69
+ const failure = {
70
+ type: 'CUCUMBER_ERROR',
71
+ message,
72
+ };
73
+ return failure;
74
+ }
75
+ function getGherkinStepExtraType(type) {
76
+ switch (type) {
77
+ case 'Action':
78
+ return 'WHEN';
79
+ case 'Context':
80
+ return 'GIVEN';
81
+ case 'Outcome':
82
+ return 'THEN';
83
+ }
84
+ return undefined;
85
+ }
86
+ function addPlaywrightStepsFromAttachments(cbStepResult, attachments) {
87
+ var _a;
88
+ if (!attachments || !attachments.length) {
89
+ return;
90
+ }
91
+ for (const attachment of attachments) {
92
+ if (attachment.mediaType !== 'application/json;x-origin=cloudbeat') {
93
+ continue;
94
+ }
95
+ try {
96
+ const event = JSON.parse(attachment.body);
97
+ let stepName;
98
+ const extra = {};
99
+ if (event.type === 'locator_action' || event.type === 'page_action') {
100
+ stepName = `${event.method} "${event.selector}"`;
101
+ }
102
+ else if (event.type === 'assertion') {
103
+ stepName = `${event.method.replace('expect.', '')}`;
104
+ extra.assert = {
105
+ actual: event.actual,
106
+ expected: event.expected,
107
+ };
108
+ }
109
+ else {
110
+ continue;
111
+ }
112
+ let failure = undefined;
113
+ if (event.error) {
114
+ failure = {
115
+ type: event.type === 'assertion' ? 'ASSERTION_ERROR' : 'PLAYWRIGHT_ERROR',
116
+ subtype: event.error.type,
117
+ message: event.error.message,
118
+ stacktrace: event.error.stack,
119
+ };
120
+ }
121
+ (_a = cbStepResult.steps) === null || _a === void 0 ? void 0 : _a.push({
122
+ id: generateId(),
123
+ name: stepName,
124
+ type: event.type === 'assertion' ? types_1.StepTypeEnum.ASSERTION : types_1.StepTypeEnum.GENERAL,
125
+ startTime: event.start,
126
+ endTime: event.end,
127
+ duration: event.end - event.start,
128
+ extra: extra,
129
+ status: event.success ? types_1.ResultStatusEnum.PASSED : types_1.ResultStatusEnum.FAILED,
130
+ failure,
131
+ });
132
+ }
133
+ catch (_b) { }
134
+ }
135
+ }
136
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@cloudbeat/cucumber",
3
+ "version": "1.0.0-beta.1",
4
+ "description": "CloudBeat Test Reporting Kit for Cucumber.js",
5
+ "keywords": [
6
+ "cloudbeat",
7
+ "cucumber",
8
+ "test reporting"
9
+ ],
10
+ "author": {
11
+ "name": "CBNR Cloud Solutions LTD",
12
+ "email": "info@cloudbeat.io",
13
+ "url": "https://cloudbeat.io"
14
+ },
15
+ "homepage": "https://cloudbeat.io",
16
+ "license": "GPL-3.0",
17
+ "private": false,
18
+ "main": "out/index",
19
+ "types": "out/index",
20
+ "directories": {
21
+ "lib": "lib",
22
+ "test": "__tests__"
23
+ },
24
+ "files": [
25
+ "out"
26
+ ],
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "git+https://github.com/cloudbeat-io/cb-kit-nodejs.git"
30
+ },
31
+ "scripts": {
32
+ "build": "npm run clean && npm run compile",
33
+ "compile": "tsc -b",
34
+ "lint": "eslint ./src --ext .js",
35
+ "clean": "rimraf ./dist ./out tsconfig.tsbuildinfo"
36
+ },
37
+ "publishConfig": {
38
+ "access": "public",
39
+ "registry": "https://registry.npmjs.org/"
40
+ },
41
+ "peerDependencies": {
42
+ "@cucumber/cucumber": "^12.0.0"
43
+ },
44
+ "dependencies": {
45
+ "@cloudbeat/types": "^1.0.7",
46
+ "debug": "^4.3.4",
47
+ "moment": "^2.30.1"
48
+ },
49
+ "devDependencies": {
50
+ "@cucumber/cucumber": "^12.0.0",
51
+ "@types/node": "^24.0.13",
52
+ "typescript": "^5.8.3"
53
+ }
54
+ }