testit-adapter-cucumber 4.0.4 → 4.1.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/README.md +5 -0
- package/dist/formatter.d.ts +8 -1
- package/dist/formatter.js +94 -30
- package/dist/formatter.js.map +1 -1
- package/dist/mappers.d.ts +15 -1
- package/dist/mappers.js +170 -1
- package/dist/mappers.js.map +1 -1
- package/dist/storage.d.ts +13 -1
- package/dist/storage.js +129 -57
- package/dist/storage.js.map +1 -1
- package/dist/types/storage.type.d.ts +10 -0
- package/package.json +7 -2
package/README.md
CHANGED
|
@@ -12,6 +12,10 @@ npm install testit-adapter-cucumber
|
|
|
12
12
|
|
|
13
13
|
### Configuration
|
|
14
14
|
|
|
15
|
+
#### Log level
|
|
16
|
+
|
|
17
|
+
The adapter includes a custom logger; the default level is `warn`. Set another level at runtime with the `LOG_LEVEL` environment variable: `error`, `warn`, `info`, or `debug`.
|
|
18
|
+
|
|
15
19
|
| Description | File property | Environment variable |
|
|
16
20
|
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------|--------------------------------------------|
|
|
17
21
|
| Location of the TMS instance | url | TMS_URL |
|
|
@@ -24,6 +28,7 @@ npm install testit-adapter-cucumber
|
|
|
24
28
|
| It enables/disables certificate validation (**It's optional**). Default value - true | certValidation | TMS_CERT_VALIDATION |
|
|
25
29
|
| Mode of automatic creation test cases (**It's optional**). Default value - false. The adapter supports following modes:<br/>true - in this mode, the adapter will create a test case linked to the created autotest (not to the updated autotest)<br/>false - in this mode, the adapter will not create a test case | automaticCreationTestCases | TMS_AUTOMATIC_CREATION_TEST_CASES |
|
|
26
30
|
| Mode of automatic updation links to test cases (**It's optional**). Default value - false. The adapter supports following modes:<br/>true - in this mode, the adapter will update links to test cases<br/>false - in this mode, the adapter will not update link to test cases | automaticUpdationLinksToTestCases | TMS_AUTOMATIC_UPDATION_LINKS_TO_TEST_CASES |
|
|
31
|
+
| Logger level, default value is `warn`, available values: [`error`, `warn`, `info`, `debug`] | | LOG_LEVEL |
|
|
27
32
|
|
|
28
33
|
Create `tms.config.json` file in the root directory of the project:
|
|
29
34
|
```json
|
package/dist/formatter.d.ts
CHANGED
|
@@ -8,6 +8,10 @@ export default class TestItFormatter extends Formatter implements IFormatter {
|
|
|
8
8
|
private readonly additions;
|
|
9
9
|
private readonly storage;
|
|
10
10
|
private readonly setupPromise;
|
|
11
|
+
private readonly importRealtime;
|
|
12
|
+
/** One TMS publish per Cucumber test execution (testCaseStarted.id). */
|
|
13
|
+
private readonly sentTestCaseStartedIds;
|
|
14
|
+
private realtimeSendChain;
|
|
11
15
|
private currentTestCaseId;
|
|
12
16
|
private attachmentsQueue;
|
|
13
17
|
constructor(options: IFormatterOptions);
|
|
@@ -19,9 +23,12 @@ export default class TestItFormatter extends Formatter implements IFormatter {
|
|
|
19
23
|
onTestCaseStarted(testCaseStarted: TestCaseStarted): void;
|
|
20
24
|
testStepStarted(testStepStarted: TestStepStarted): void;
|
|
21
25
|
onTestStepFinished(testStepFinished: TestStepFinished): void;
|
|
22
|
-
testCaseFinished(testCaseFinished: TestCaseFinished): void
|
|
26
|
+
testCaseFinished(testCaseFinished: TestCaseFinished): Promise<void>;
|
|
23
27
|
onTestRunFinished(_testRunFinished: TestRunFinished): Promise<void>;
|
|
24
28
|
addMessage(message: string): void;
|
|
25
29
|
addLinks(links: Link[]): void;
|
|
26
30
|
addAttachments(attachments: string[]): void;
|
|
31
|
+
private enqueueRealtimeSend;
|
|
32
|
+
private publishRealtimeResult;
|
|
33
|
+
private catchUpRealtimeResults;
|
|
27
34
|
}
|
package/dist/formatter.js
CHANGED
|
@@ -12,13 +12,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
const testit_js_commons_1 = require("testit-js-commons");
|
|
13
13
|
const cucumber_1 = require("@cucumber/cucumber");
|
|
14
14
|
const storage_1 = require("./storage");
|
|
15
|
-
const
|
|
15
|
+
const testit_js_commons_2 = require("testit-js-commons");
|
|
16
16
|
class TestItFormatter extends cucumber_1.Formatter {
|
|
17
17
|
constructor(options) {
|
|
18
18
|
super(options);
|
|
19
|
+
/** One TMS publish per Cucumber test execution (testCaseStarted.id). */
|
|
20
|
+
this.sentTestCaseStartedIds = new Set();
|
|
21
|
+
this.realtimeSendChain = Promise.resolve();
|
|
19
22
|
this.attachmentsQueue = [];
|
|
20
23
|
this.installUnhandledRejectionHandler();
|
|
21
24
|
const config = new testit_js_commons_1.ConfigComposer().compose(options.parsedArgvOptions);
|
|
25
|
+
this.importRealtime = Boolean(config.importRealtime);
|
|
26
|
+
testit_js_commons_2.logger.debug("[cucumber] formatter init", { importRealtime: this.importRealtime });
|
|
22
27
|
this.strategy = testit_js_commons_1.StrategyFactory.create(config);
|
|
23
28
|
this.additions = new testit_js_commons_1.Additions(config);
|
|
24
29
|
this.storage = new storage_1.Storage();
|
|
@@ -26,7 +31,7 @@ class TestItFormatter extends cucumber_1.Formatter {
|
|
|
26
31
|
options.eventBroadcaster.on("envelope", (envelope) => {
|
|
27
32
|
void this.handleEnvelope(envelope).catch((err) => {
|
|
28
33
|
var _a, _b;
|
|
29
|
-
|
|
34
|
+
testit_js_commons_2.logger.error("Unhandled async error in Cucumber formatter envelope handler:", (_b = (_a = err === null || err === void 0 ? void 0 : err.body) !== null && _a !== void 0 ? _a : err === null || err === void 0 ? void 0 : err.error) !== null && _b !== void 0 ? _b : err);
|
|
30
35
|
});
|
|
31
36
|
});
|
|
32
37
|
options.supportCodeLibrary.World.prototype.addMessage = this.addMessage.bind(this);
|
|
@@ -41,7 +46,7 @@ class TestItFormatter extends cucumber_1.Formatter {
|
|
|
41
46
|
process.on("unhandledRejection", (reason) => {
|
|
42
47
|
var _a, _b;
|
|
43
48
|
const normalized = (_b = (_a = reason === null || reason === void 0 ? void 0 : reason.body) !== null && _a !== void 0 ? _a : reason === null || reason === void 0 ? void 0 : reason.error) !== null && _b !== void 0 ? _b : reason;
|
|
44
|
-
|
|
49
|
+
testit_js_commons_2.logger.error("Unhandled promise rejection in Cucumber formatter:", normalized);
|
|
45
50
|
});
|
|
46
51
|
}
|
|
47
52
|
handleEnvelope(envelope) {
|
|
@@ -53,13 +58,14 @@ class TestItFormatter extends cucumber_1.Formatter {
|
|
|
53
58
|
if (envelope.pickle) {
|
|
54
59
|
const resolvedAutotests = yield this.strategy.testsInRun;
|
|
55
60
|
if (resolvedAutotests !== undefined) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
61
|
+
this.onPickle(envelope.pickle);
|
|
62
|
+
const pickleExternalId = this.storage.resolvePickleExternalId(envelope.pickle);
|
|
63
|
+
for (const resolvedExternalId of resolvedAutotests) {
|
|
64
|
+
if (resolvedExternalId === pickleExternalId) {
|
|
60
65
|
return;
|
|
61
66
|
}
|
|
62
67
|
}
|
|
68
|
+
return;
|
|
63
69
|
}
|
|
64
70
|
else {
|
|
65
71
|
this.onPickle(envelope.pickle);
|
|
@@ -83,7 +89,7 @@ class TestItFormatter extends cucumber_1.Formatter {
|
|
|
83
89
|
return;
|
|
84
90
|
}
|
|
85
91
|
if (envelope.testCaseFinished) {
|
|
86
|
-
this.testCaseFinished(envelope.testCaseFinished);
|
|
92
|
+
yield this.testCaseFinished(envelope.testCaseFinished);
|
|
87
93
|
return;
|
|
88
94
|
}
|
|
89
95
|
if (envelope.testRunFinished) {
|
|
@@ -111,8 +117,13 @@ class TestItFormatter extends cucumber_1.Formatter {
|
|
|
111
117
|
this.storage.saveTestStepFinished(testStepFinished);
|
|
112
118
|
}
|
|
113
119
|
testCaseFinished(testCaseFinished) {
|
|
114
|
-
this
|
|
115
|
-
|
|
120
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
121
|
+
this.currentTestCaseId = undefined;
|
|
122
|
+
this.storage.saveTestCaseFinished(testCaseFinished);
|
|
123
|
+
if (this.importRealtime) {
|
|
124
|
+
yield this.enqueueRealtimeSend(testCaseFinished.testCaseStartedId);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
116
127
|
}
|
|
117
128
|
onTestRunFinished(_testRunFinished) {
|
|
118
129
|
var _a, _b;
|
|
@@ -121,29 +132,36 @@ class TestItFormatter extends cucumber_1.Formatter {
|
|
|
121
132
|
yield this.setupPromise;
|
|
122
133
|
yield this.strategy.testRunId;
|
|
123
134
|
yield Promise.allSettled(this.attachmentsQueue);
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
135
|
+
if (this.importRealtime) {
|
|
136
|
+
yield this.realtimeSendChain;
|
|
137
|
+
yield this.catchUpRealtimeResults();
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
testit_js_commons_2.logger.debug("[cucumber] onTestRunFinished batch");
|
|
141
|
+
const results = this.storage.getTestRunResults();
|
|
142
|
+
const autotests = this.storage.getAutotests();
|
|
143
|
+
yield Promise.allSettled(autotests.map((autotestPost) => {
|
|
144
|
+
const result = results.find((r) => r.autoTestExternalId === autotestPost.externalId);
|
|
145
|
+
if (result !== undefined) {
|
|
146
|
+
return this.strategy.loadAutotest(autotestPost, result.outcome).catch((err) => {
|
|
147
|
+
var _a, _b;
|
|
148
|
+
testit_js_commons_2.logger.error("Cucumber loadAutotest failed:", (_b = (_a = err === null || err === void 0 ? void 0 : err.body) !== null && _a !== void 0 ? _a : err === null || err === void 0 ? void 0 : err.error) !== null && _b !== void 0 ? _b : err);
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
return Promise.resolve();
|
|
152
|
+
}));
|
|
153
|
+
yield this.strategy.loadTestRun(results).catch((err) => {
|
|
154
|
+
var _a, _b;
|
|
155
|
+
testit_js_commons_2.logger.error("Cucumber loadTestRun failed:", (_b = (_a = err === null || err === void 0 ? void 0 : err.body) !== null && _a !== void 0 ? _a : err === null || err === void 0 ? void 0 : err.error) !== null && _b !== void 0 ? _b : err);
|
|
156
|
+
});
|
|
157
|
+
}
|
|
140
158
|
yield this.strategy.teardown().catch((err) => {
|
|
141
159
|
var _a, _b;
|
|
142
|
-
|
|
160
|
+
testit_js_commons_2.logger.error("Cucumber teardown failed:", (_b = (_a = err === null || err === void 0 ? void 0 : err.body) !== null && _a !== void 0 ? _a : err === null || err === void 0 ? void 0 : err.error) !== null && _b !== void 0 ? _b : err);
|
|
143
161
|
});
|
|
144
162
|
}
|
|
145
163
|
catch (err) {
|
|
146
|
-
|
|
164
|
+
testit_js_commons_2.logger.error("Cucumber onTestRunFinished failed:", (_b = (_a = err === null || err === void 0 ? void 0 : err.body) !== null && _a !== void 0 ? _a : err === null || err === void 0 ? void 0 : err.error) !== null && _b !== void 0 ? _b : err);
|
|
147
165
|
}
|
|
148
166
|
});
|
|
149
167
|
}
|
|
@@ -176,16 +194,62 @@ class TestItFormatter extends cucumber_1.Formatter {
|
|
|
176
194
|
}
|
|
177
195
|
catch (err) {
|
|
178
196
|
lastErr = err;
|
|
179
|
-
|
|
197
|
+
testit_js_commons_2.logger.debug("[cucumber] attachment upload retry", { attempt, attachments });
|
|
198
|
+
testit_js_commons_2.logger.log("Error load attachments (attempt): \n", attachments, "\n", attempt, "\n", err);
|
|
180
199
|
if (attempt < maxAttempts) {
|
|
181
200
|
yield new Promise((r) => setTimeout(r, 400 * attempt));
|
|
182
201
|
}
|
|
183
202
|
}
|
|
184
203
|
}
|
|
185
|
-
|
|
204
|
+
testit_js_commons_2.logger.error("Error load attachments (gave up): \n", attachments, "\n", lastErr);
|
|
186
205
|
}))();
|
|
187
206
|
this.attachmentsQueue.push(promise);
|
|
188
207
|
}
|
|
208
|
+
enqueueRealtimeSend(testCaseStartedId) {
|
|
209
|
+
const task = this.realtimeSendChain.then(() => this.publishRealtimeResult(testCaseStartedId));
|
|
210
|
+
this.realtimeSendChain = task.catch(() => undefined);
|
|
211
|
+
return task;
|
|
212
|
+
}
|
|
213
|
+
publishRealtimeResult(testCaseStartedId) {
|
|
214
|
+
var _a, _b;
|
|
215
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
216
|
+
if (this.sentTestCaseStartedIds.has(testCaseStartedId)) {
|
|
217
|
+
testit_js_commons_2.logger.debug("[cucumber] realtime skip: already sent", { testCaseStartedId });
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
yield Promise.allSettled(this.attachmentsQueue);
|
|
221
|
+
const payload = this.storage.getRealtimePayload(testCaseStartedId);
|
|
222
|
+
if (payload === undefined) {
|
|
223
|
+
testit_js_commons_2.logger.debug("[cucumber] realtime skip: not ready", { testCaseStartedId });
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
this.sentTestCaseStartedIds.add(testCaseStartedId);
|
|
227
|
+
const { autotest, result } = payload;
|
|
228
|
+
testit_js_commons_2.logger.debug("[cucumber] realtime send", {
|
|
229
|
+
testCaseStartedId,
|
|
230
|
+
externalId: autotest.externalId,
|
|
231
|
+
outcome: result.outcome,
|
|
232
|
+
});
|
|
233
|
+
try {
|
|
234
|
+
yield this.strategy.loadAutotest(autotest, result.outcome);
|
|
235
|
+
yield this.strategy.loadTestRun([result]);
|
|
236
|
+
}
|
|
237
|
+
catch (err) {
|
|
238
|
+
this.sentTestCaseStartedIds.delete(testCaseStartedId);
|
|
239
|
+
testit_js_commons_2.logger.error("Cucumber realtime publish failed:", (_b = (_a = err === null || err === void 0 ? void 0 : err.body) !== null && _a !== void 0 ? _a : err === null || err === void 0 ? void 0 : err.error) !== null && _b !== void 0 ? _b : err);
|
|
240
|
+
throw err;
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
catchUpRealtimeResults() {
|
|
245
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
246
|
+
const pending = this.storage.listCatchUpRealtimePayloads(this.sentTestCaseStartedIds);
|
|
247
|
+
testit_js_commons_2.logger.debug("[cucumber] catch-up realtime", { pending: pending.length, sent: this.sentTestCaseStartedIds.size });
|
|
248
|
+
for (const { testCaseStartedId } of pending) {
|
|
249
|
+
yield this.publishRealtimeResult(testCaseStartedId);
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
}
|
|
189
253
|
}
|
|
190
254
|
exports.default = TestItFormatter;
|
|
191
255
|
TestItFormatter.unhandledRejectionHandlerInstalled = false;
|
package/dist/formatter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,yDAA+G;AAC/G,iDAAkE;AAalE,uCAAoC;
|
|
1
|
+
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"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"}
|
package/dist/mappers.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Background, DataTable, Examples, GherkinDocument, Rule, Scenario, Step as CucumberStep } from "@cucumber/messages";
|
|
1
|
+
import { Background, DataTable, Examples, GherkinDocument, Pickle, PickleStep, Rule, Scenario, Step as CucumberStep } from "@cucumber/messages";
|
|
2
2
|
import { AutotestPost, ShortStep } from "testit-js-commons";
|
|
3
3
|
export declare function mapDate(date: number): Date;
|
|
4
4
|
export declare function mapDocument(document: GherkinDocument): AutotestPost[];
|
|
@@ -7,4 +7,18 @@ export declare function mapRule(document: GherkinDocument, rule: Rule, setup: Sh
|
|
|
7
7
|
export declare function mapScenario(document: GherkinDocument, scenario: Scenario, setup: ShortStep[]): AutotestPost;
|
|
8
8
|
export declare function mapExamples(examples: Examples): ShortStep;
|
|
9
9
|
export declare function mapStep(step: CucumberStep): ShortStep;
|
|
10
|
+
export declare function findGherkinStep(documents: GherkinDocument[], pickleStep: PickleStep): CucumberStep | undefined;
|
|
11
|
+
export declare function findGherkinDocument(documents: GherkinDocument[], pickle: Pickle): GherkinDocument | undefined;
|
|
12
|
+
export declare function findScenarioForPickle(document: GherkinDocument, pickle: Pickle): Scenario | undefined;
|
|
13
|
+
/** Same setup chain as mapScenario: Examples + feature/rule backgrounds. */
|
|
14
|
+
export declare function buildSetupForScenario(document: GherkinDocument, scenario: Scenario): ShortStep[];
|
|
15
|
+
/** @ExternalId from tags (pickle → scenario → feature) or hash(name). Never append suffixes. */
|
|
16
|
+
export declare function resolvePickleExternalId(documents: GherkinDocument[], pickle: Pickle): string;
|
|
17
|
+
/**
|
|
18
|
+
* Build autotest metadata for a pickle (same tag/fallback rules as mapScenario).
|
|
19
|
+
* Resolves document by pickle.uri and scenario by pickle.astNodeIds.
|
|
20
|
+
*/
|
|
21
|
+
export declare function mapPickleToAutotestPost(documents: GherkinDocument[], pickle: Pickle, stepTitleFn: (step: PickleStep) => string): AutotestPost;
|
|
22
|
+
/** Pickle steps have text only; keyword comes from the linked Gherkin step. */
|
|
23
|
+
export declare function formatPickleStepTitle(documents: GherkinDocument[], pickleStep: PickleStep): string;
|
|
10
24
|
export declare function mapDataTable(dataTable: DataTable | undefined): string | undefined;
|
package/dist/mappers.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mapDataTable = exports.mapStep = exports.mapExamples = exports.mapScenario = exports.mapRule = exports.mapBackground = exports.mapDocument = exports.mapDate = void 0;
|
|
3
|
+
exports.mapDataTable = exports.formatPickleStepTitle = exports.mapPickleToAutotestPost = exports.resolvePickleExternalId = exports.buildSetupForScenario = exports.findScenarioForPickle = exports.findGherkinDocument = exports.findGherkinStep = exports.mapStep = exports.mapExamples = exports.mapScenario = exports.mapRule = exports.mapBackground = exports.mapDocument = exports.mapDate = void 0;
|
|
4
4
|
const utils_1 = require("./utils");
|
|
5
5
|
const testit_js_commons_1 = require("testit-js-commons");
|
|
6
|
+
function normalizeUri(uri) {
|
|
7
|
+
return uri.replace(/\\/g, "/");
|
|
8
|
+
}
|
|
6
9
|
function mapDate(date) {
|
|
7
10
|
return new Date(date * 1000);
|
|
8
11
|
}
|
|
@@ -101,6 +104,172 @@ function mapStep(step) {
|
|
|
101
104
|
};
|
|
102
105
|
}
|
|
103
106
|
exports.mapStep = mapStep;
|
|
107
|
+
function collectGherkinSteps(document) {
|
|
108
|
+
const steps = [];
|
|
109
|
+
const feature = document.feature;
|
|
110
|
+
if (feature === undefined) {
|
|
111
|
+
return steps;
|
|
112
|
+
}
|
|
113
|
+
for (const child of feature.children) {
|
|
114
|
+
if (child.background !== undefined) {
|
|
115
|
+
steps.push(...child.background.steps);
|
|
116
|
+
}
|
|
117
|
+
if (child.scenario !== undefined) {
|
|
118
|
+
steps.push(...child.scenario.steps);
|
|
119
|
+
}
|
|
120
|
+
if (child.rule !== undefined) {
|
|
121
|
+
for (const ruleChild of child.rule.children) {
|
|
122
|
+
if (ruleChild.background !== undefined) {
|
|
123
|
+
steps.push(...ruleChild.background.steps);
|
|
124
|
+
}
|
|
125
|
+
if (ruleChild.scenario !== undefined) {
|
|
126
|
+
steps.push(...ruleChild.scenario.steps);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return steps;
|
|
132
|
+
}
|
|
133
|
+
function findGherkinStep(documents, pickleStep) {
|
|
134
|
+
for (const document of documents) {
|
|
135
|
+
for (const step of collectGherkinSteps(document)) {
|
|
136
|
+
if (pickleStep.astNodeIds.includes(step.id)) {
|
|
137
|
+
return step;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return undefined;
|
|
142
|
+
}
|
|
143
|
+
exports.findGherkinStep = findGherkinStep;
|
|
144
|
+
function collectScenarios(document) {
|
|
145
|
+
const scenarios = [];
|
|
146
|
+
const feature = document.feature;
|
|
147
|
+
if (feature === undefined) {
|
|
148
|
+
return scenarios;
|
|
149
|
+
}
|
|
150
|
+
for (const child of feature.children) {
|
|
151
|
+
if (child.scenario !== undefined) {
|
|
152
|
+
scenarios.push(child.scenario);
|
|
153
|
+
}
|
|
154
|
+
if (child.rule !== undefined) {
|
|
155
|
+
for (const ruleChild of child.rule.children) {
|
|
156
|
+
if (ruleChild.scenario !== undefined) {
|
|
157
|
+
scenarios.push(ruleChild.scenario);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return scenarios;
|
|
163
|
+
}
|
|
164
|
+
function findGherkinDocument(documents, pickle) {
|
|
165
|
+
const pickleUri = normalizeUri(pickle.uri);
|
|
166
|
+
return documents.find((document) => document.uri !== undefined && normalizeUri(document.uri) === pickleUri);
|
|
167
|
+
}
|
|
168
|
+
exports.findGherkinDocument = findGherkinDocument;
|
|
169
|
+
function findScenarioForPickle(document, pickle) {
|
|
170
|
+
for (const scenario of collectScenarios(document)) {
|
|
171
|
+
if (pickle.astNodeIds.includes(scenario.id)) {
|
|
172
|
+
return scenario;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return undefined;
|
|
176
|
+
}
|
|
177
|
+
exports.findScenarioForPickle = findScenarioForPickle;
|
|
178
|
+
function collectFeatureBackgrounds(document) {
|
|
179
|
+
if (document.feature === undefined) {
|
|
180
|
+
return [];
|
|
181
|
+
}
|
|
182
|
+
return document.feature.children
|
|
183
|
+
.map((child) => child.background)
|
|
184
|
+
.filter((background) => background !== undefined)
|
|
185
|
+
.map((background) => mapBackground(background));
|
|
186
|
+
}
|
|
187
|
+
function findRuleForScenario(document, scenario) {
|
|
188
|
+
var _a;
|
|
189
|
+
if (document.feature === undefined) {
|
|
190
|
+
return undefined;
|
|
191
|
+
}
|
|
192
|
+
for (const child of document.feature.children) {
|
|
193
|
+
if (child.rule === undefined) {
|
|
194
|
+
continue;
|
|
195
|
+
}
|
|
196
|
+
for (const ruleChild of child.rule.children) {
|
|
197
|
+
if (((_a = ruleChild.scenario) === null || _a === void 0 ? void 0 : _a.id) === scenario.id) {
|
|
198
|
+
return child.rule;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return undefined;
|
|
203
|
+
}
|
|
204
|
+
/** Same setup chain as mapScenario: Examples + feature/rule backgrounds. */
|
|
205
|
+
function buildSetupForScenario(document, scenario) {
|
|
206
|
+
let setup = collectFeatureBackgrounds(document);
|
|
207
|
+
const rule = findRuleForScenario(document, scenario);
|
|
208
|
+
if (rule !== undefined) {
|
|
209
|
+
setup = setup.concat(rule.children
|
|
210
|
+
.map((child) => child.background)
|
|
211
|
+
.filter((background) => background !== undefined)
|
|
212
|
+
.map((background) => mapBackground(background)));
|
|
213
|
+
}
|
|
214
|
+
return scenario.examples.map(mapExamples).concat(setup);
|
|
215
|
+
}
|
|
216
|
+
exports.buildSetupForScenario = buildSetupForScenario;
|
|
217
|
+
/** @ExternalId from tags (pickle → scenario → feature) or hash(name). Never append suffixes. */
|
|
218
|
+
function resolvePickleExternalId(documents, pickle) {
|
|
219
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
220
|
+
const document = findGherkinDocument(documents, pickle);
|
|
221
|
+
const scenario = document !== undefined ? findScenarioForPickle(document, pickle) : undefined;
|
|
222
|
+
const pickleTags = (0, utils_1.parseTags)(pickle.tags);
|
|
223
|
+
const scenarioTags = scenario !== undefined ? (0, utils_1.parseTags)(scenario.tags) : (0, utils_1.parseTags)([]);
|
|
224
|
+
const docTags = (document === null || document === void 0 ? void 0 : document.feature) !== undefined ? (0, utils_1.parseTags)(document.feature.tags) : (0, utils_1.parseTags)([]);
|
|
225
|
+
const name = (_d = (_c = (_b = (_a = pickleTags.name) !== null && _a !== void 0 ? _a : scenarioTags.name) !== null && _b !== void 0 ? _b : docTags.name) !== null && _c !== void 0 ? _c : scenario === null || scenario === void 0 ? void 0 : scenario.name) !== null && _d !== void 0 ? _d : pickle.name;
|
|
226
|
+
return (_g = (_f = (_e = pickleTags.externalId) !== null && _e !== void 0 ? _e : scenarioTags.externalId) !== null && _f !== void 0 ? _f : docTags.externalId) !== null && _g !== void 0 ? _g : testit_js_commons_1.Utils.getHash(name);
|
|
227
|
+
}
|
|
228
|
+
exports.resolvePickleExternalId = resolvePickleExternalId;
|
|
229
|
+
/**
|
|
230
|
+
* Build autotest metadata for a pickle (same tag/fallback rules as mapScenario).
|
|
231
|
+
* Resolves document by pickle.uri and scenario by pickle.astNodeIds.
|
|
232
|
+
*/
|
|
233
|
+
function mapPickleToAutotestPost(documents, pickle, stepTitleFn) {
|
|
234
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
|
|
235
|
+
const document = findGherkinDocument(documents, pickle);
|
|
236
|
+
const scenario = document !== undefined ? findScenarioForPickle(document, pickle) : undefined;
|
|
237
|
+
const externalId = resolvePickleExternalId(documents, pickle);
|
|
238
|
+
const pickleTags = (0, utils_1.parseTags)(pickle.tags);
|
|
239
|
+
const scenarioTags = scenario !== undefined ? (0, utils_1.parseTags)(scenario.tags) : (0, utils_1.parseTags)([]);
|
|
240
|
+
const docTags = (document === null || document === void 0 ? void 0 : document.feature) !== undefined ? (0, utils_1.parseTags)(document.feature.tags) : (0, utils_1.parseTags)([]);
|
|
241
|
+
return {
|
|
242
|
+
externalId,
|
|
243
|
+
name: (_d = (_c = (_b = (_a = pickleTags.name) !== null && _a !== void 0 ? _a : scenarioTags.name) !== null && _b !== void 0 ? _b : docTags.name) !== null && _c !== void 0 ? _c : scenario === null || scenario === void 0 ? void 0 : scenario.name) !== null && _d !== void 0 ? _d : pickle.name,
|
|
244
|
+
title: (_f = (_e = pickleTags.title) !== null && _e !== void 0 ? _e : scenarioTags.title) !== null && _f !== void 0 ? _f : docTags.title,
|
|
245
|
+
description: (_j = (_h = (_g = pickleTags.description) !== null && _g !== void 0 ? _g : scenarioTags.description) !== null && _h !== void 0 ? _h : docTags.description) !== null && _j !== void 0 ? _j : scenario === null || scenario === void 0 ? void 0 : scenario.description,
|
|
246
|
+
links: pickleTags.links.length > 0 ? pickleTags.links : scenarioTags.links.length > 0 ? scenarioTags.links : docTags.links,
|
|
247
|
+
labels: (_k = (pickleTags.labels.length > 0 ? pickleTags.labels : scenarioTags.labels.length > 0 ? scenarioTags.labels : docTags.labels)) === null || _k === void 0 ? void 0 : _k.map((label) => ({ name: label })),
|
|
248
|
+
tags: pickleTags.tags.length > 0 ? pickleTags.tags : scenarioTags.tags.length > 0 ? scenarioTags.tags : docTags.tags,
|
|
249
|
+
workItemIds: ((_m = (_l = pickleTags.workItemIds) === null || _l === void 0 ? void 0 : _l.length) !== null && _m !== void 0 ? _m : 0) > 0
|
|
250
|
+
? pickleTags.workItemIds
|
|
251
|
+
: ((_p = (_o = scenarioTags.workItemIds) === null || _o === void 0 ? void 0 : _o.length) !== null && _p !== void 0 ? _p : 0) > 0
|
|
252
|
+
? scenarioTags.workItemIds
|
|
253
|
+
: docTags.workItemIds,
|
|
254
|
+
namespace: (_r = (_q = pickleTags.nameSpace) !== null && _q !== void 0 ? _q : scenarioTags.nameSpace) !== null && _r !== void 0 ? _r : docTags.nameSpace,
|
|
255
|
+
classname: (_w = (_u = (_t = (_s = pickleTags.className) !== null && _s !== void 0 ? _s : scenarioTags.className) !== null && _t !== void 0 ? _t : docTags.className) !== null && _u !== void 0 ? _u : (_v = document === null || document === void 0 ? void 0 : document.feature) === null || _v === void 0 ? void 0 : _v.name) !== null && _w !== void 0 ? _w : scenario === null || scenario === void 0 ? void 0 : scenario.name,
|
|
256
|
+
setup: document !== undefined && scenario !== undefined
|
|
257
|
+
? buildSetupForScenario(document, scenario)
|
|
258
|
+
: [],
|
|
259
|
+
steps: pickle.steps.map((step) => ({ title: stepTitleFn(step) })),
|
|
260
|
+
externalKey: (_x = scenario === null || scenario === void 0 ? void 0 : scenario.name) !== null && _x !== void 0 ? _x : pickle.name,
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
exports.mapPickleToAutotestPost = mapPickleToAutotestPost;
|
|
264
|
+
/** Pickle steps have text only; keyword comes from the linked Gherkin step. */
|
|
265
|
+
function formatPickleStepTitle(documents, pickleStep) {
|
|
266
|
+
const gherkinStep = findGherkinStep(documents, pickleStep);
|
|
267
|
+
if (gherkinStep !== undefined) {
|
|
268
|
+
return mapStep(gherkinStep).title;
|
|
269
|
+
}
|
|
270
|
+
return pickleStep.text;
|
|
271
|
+
}
|
|
272
|
+
exports.formatPickleStepTitle = formatPickleStepTitle;
|
|
104
273
|
function mapDataTable(dataTable) {
|
|
105
274
|
if (dataTable === undefined) {
|
|
106
275
|
return undefined;
|
package/dist/mappers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mappers.js","sourceRoot":"","sources":["../src/mappers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mappers.js","sourceRoot":"","sources":["../src/mappers.ts"],"names":[],"mappings":"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"}
|
package/dist/storage.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export declare class Storage implements IStorage {
|
|
|
12
12
|
private messages;
|
|
13
13
|
private links;
|
|
14
14
|
private attachments;
|
|
15
|
+
resolvePickleExternalId(pickle: Pickle): string;
|
|
15
16
|
isResolvedTestCase(testCase: TestCase): boolean;
|
|
16
17
|
saveGherkinDocument(document: GherkinDocument): void;
|
|
17
18
|
savePickle(pickle: Pickle): void;
|
|
@@ -22,7 +23,18 @@ export declare class Storage implements IStorage {
|
|
|
22
23
|
saveTestStepFinished(testStepFinished: TestStepFinished): void;
|
|
23
24
|
getAutotests(): AutotestPost[];
|
|
24
25
|
getTestRunResults(): AutotestResult[];
|
|
25
|
-
|
|
26
|
+
getRealtimePayload(testCaseStartedId: string): {
|
|
27
|
+
autotest: AutotestPost;
|
|
28
|
+
result: AutotestResult;
|
|
29
|
+
} | undefined;
|
|
30
|
+
listCatchUpRealtimePayloads(sentTestCaseStartedIds: ReadonlySet<string>): Array<{
|
|
31
|
+
testCaseStartedId: string;
|
|
32
|
+
autotest: AutotestPost;
|
|
33
|
+
result: AutotestResult;
|
|
34
|
+
}>;
|
|
35
|
+
private buildRealtimePayload;
|
|
36
|
+
private formatStepTitle;
|
|
37
|
+
getStepResult(pickleStep: PickleStep, testCase: TestCase): Step | undefined;
|
|
26
38
|
getStepMessage(pickleStep: PickleStep, testCase: TestCase): string | undefined;
|
|
27
39
|
addMessage(testCaseId: string, message: string): void;
|
|
28
40
|
addLinks(testCaseId: string, links: Link[]): void;
|
package/dist/storage.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Storage = void 0;
|
|
4
|
-
const testit_js_commons_1 = require("testit-js-commons");
|
|
5
4
|
const mappers_1 = require("./mappers");
|
|
6
5
|
const utils_1 = require("./utils");
|
|
7
6
|
class Storage {
|
|
@@ -17,6 +16,9 @@ class Storage {
|
|
|
17
16
|
this.links = {};
|
|
18
17
|
this.attachments = {};
|
|
19
18
|
}
|
|
19
|
+
resolvePickleExternalId(pickle) {
|
|
20
|
+
return (0, mappers_1.resolvePickleExternalId)(this.gherkinDocuments, pickle);
|
|
21
|
+
}
|
|
20
22
|
isResolvedTestCase(testCase) {
|
|
21
23
|
for (const pickle of this.pickles) {
|
|
22
24
|
const tags = (0, utils_1.parseTags)(pickle.tags);
|
|
@@ -27,94 +29,164 @@ class Storage {
|
|
|
27
29
|
return false;
|
|
28
30
|
}
|
|
29
31
|
saveGherkinDocument(document) {
|
|
32
|
+
if (document.uri === undefined) {
|
|
33
|
+
this.gherkinDocuments.push(document);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const uri = document.uri.replace(/\\/g, "/");
|
|
37
|
+
const idx = this.gherkinDocuments.findIndex((d) => d.uri !== undefined && d.uri.replace(/\\/g, "/") === uri);
|
|
38
|
+
if (idx >= 0) {
|
|
39
|
+
this.gherkinDocuments[idx] = document;
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
30
42
|
this.gherkinDocuments.push(document);
|
|
31
43
|
}
|
|
32
44
|
savePickle(pickle) {
|
|
45
|
+
// Envelopes can be replayed/out-of-order; keep pickles unique by id.
|
|
46
|
+
const idx = this.pickles.findIndex((p) => p.id === pickle.id);
|
|
47
|
+
if (idx >= 0) {
|
|
48
|
+
this.pickles[idx] = pickle;
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
33
51
|
this.pickles.push(pickle);
|
|
34
52
|
}
|
|
35
53
|
saveTestCase(testCase) {
|
|
54
|
+
const idx = this.testCases.findIndex((t) => t.id === testCase.id);
|
|
55
|
+
if (idx >= 0) {
|
|
56
|
+
this.testCases[idx] = testCase;
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
36
59
|
this.testCases.push(testCase);
|
|
37
60
|
}
|
|
38
61
|
saveTestCaseStarted(testCaseStarted) {
|
|
62
|
+
const idx = this.testCasesStarted.findIndex((t) => t.id === testCaseStarted.id);
|
|
63
|
+
if (idx >= 0) {
|
|
64
|
+
this.testCasesStarted[idx] = testCaseStarted;
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
39
67
|
this.testCasesStarted.push(testCaseStarted);
|
|
40
68
|
}
|
|
41
69
|
saveTestCaseFinished(testCaseFinished) {
|
|
70
|
+
const idx = this.testCasesFinished.findIndex((t) => t.testCaseStartedId === testCaseFinished.testCaseStartedId);
|
|
71
|
+
if (idx >= 0) {
|
|
72
|
+
this.testCasesFinished[idx] = testCaseFinished;
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
42
75
|
this.testCasesFinished.push(testCaseFinished);
|
|
43
76
|
}
|
|
44
77
|
saveTestStepStarted(testStepStarted) {
|
|
78
|
+
const idx = this.testStepsStarted.findIndex((t) => t.testStepId === testStepStarted.testStepId);
|
|
79
|
+
if (idx >= 0) {
|
|
80
|
+
this.testStepsStarted[idx] = testStepStarted;
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
45
83
|
this.testStepsStarted.push(testStepStarted);
|
|
46
84
|
}
|
|
47
85
|
saveTestStepFinished(testStepFinished) {
|
|
86
|
+
const idx = this.testStepsFinished.findIndex((t) => t.testStepId === testStepFinished.testStepId);
|
|
87
|
+
if (idx >= 0) {
|
|
88
|
+
this.testStepsFinished[idx] = testStepFinished;
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
48
91
|
this.testStepsFinished.push(testStepFinished);
|
|
49
92
|
}
|
|
50
93
|
getAutotests() {
|
|
51
|
-
return this.
|
|
94
|
+
return this.pickles.map((pickle) => (0, mappers_1.mapPickleToAutotestPost)(this.gherkinDocuments, pickle, (step) => this.formatStepTitle(step)));
|
|
52
95
|
}
|
|
53
96
|
getTestRunResults() {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
throw new Error("TestCaseFinished not found");
|
|
67
|
-
}
|
|
68
|
-
const steps = pickle.steps
|
|
69
|
-
.map((step) => this.getStepResult(step, testCase))
|
|
70
|
-
.filter((item, i, arr) => {
|
|
71
|
-
var _a;
|
|
72
|
-
const prevOutcome = (_a = arr[i - 1]) === null || _a === void 0 ? void 0 : _a.outcome;
|
|
73
|
-
return !(item.outcome === "Skipped" &&
|
|
74
|
-
prevOutcome !== undefined &&
|
|
75
|
-
["Failed", "Skipped"].includes(prevOutcome));
|
|
76
|
-
});
|
|
77
|
-
const messages = [];
|
|
78
|
-
for (const step of pickle.steps) {
|
|
79
|
-
const message = this.getStepMessage(step, testCase);
|
|
80
|
-
if (message !== undefined) {
|
|
81
|
-
messages.push(message);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
const links = (_a = this.links[testCase.id]) !== null && _a !== void 0 ? _a : [];
|
|
85
|
-
links.push(...tags.links);
|
|
86
|
-
const result = {
|
|
87
|
-
autoTestExternalId: (_b = tags.externalId) !== null && _b !== void 0 ? _b : testit_js_commons_1.Utils.getHash((_c = tags.name) !== null && _c !== void 0 ? _c : pickle.name),
|
|
88
|
-
links,
|
|
89
|
-
stepResults: steps,
|
|
90
|
-
outcome: (0, utils_1.calculateResultOutcome)(steps.map((step) => step.outcome).filter((outcome) => outcome !== undefined)),
|
|
91
|
-
startedOn: (0, mappers_1.mapDate)(testCaseStarted.timestamp.seconds),
|
|
92
|
-
completedOn: (0, mappers_1.mapDate)(testCaseFinished.timestamp.seconds),
|
|
93
|
-
duration: testCaseFinished.timestamp.seconds - testCaseStarted.timestamp.seconds,
|
|
94
|
-
message: (_d = this.messages[testCase.id]) === null || _d === void 0 ? void 0 : _d.join("\n"),
|
|
95
|
-
traces: messages.join("\n"),
|
|
96
|
-
attachments: this.attachments[testCase.id],
|
|
97
|
-
};
|
|
98
|
-
results.push(result);
|
|
97
|
+
return this.testCasesFinished
|
|
98
|
+
.map((finished) => { var _a; return (_a = this.buildRealtimePayload(finished.testCaseStartedId)) === null || _a === void 0 ? void 0 : _a.result; })
|
|
99
|
+
.filter((result) => result !== undefined);
|
|
100
|
+
}
|
|
101
|
+
getRealtimePayload(testCaseStartedId) {
|
|
102
|
+
return this.buildRealtimePayload(testCaseStartedId);
|
|
103
|
+
}
|
|
104
|
+
listCatchUpRealtimePayloads(sentTestCaseStartedIds) {
|
|
105
|
+
const payloads = [];
|
|
106
|
+
for (const finished of this.testCasesFinished) {
|
|
107
|
+
if (sentTestCaseStartedIds.has(finished.testCaseStartedId)) {
|
|
108
|
+
continue;
|
|
99
109
|
}
|
|
110
|
+
const payload = this.buildRealtimePayload(finished.testCaseStartedId);
|
|
111
|
+
if (payload !== undefined) {
|
|
112
|
+
payloads.push(Object.assign({ testCaseStartedId: finished.testCaseStartedId }, payload));
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return payloads;
|
|
116
|
+
}
|
|
117
|
+
buildRealtimePayload(testCaseStartedId) {
|
|
118
|
+
var _a, _b, _c;
|
|
119
|
+
const testCaseStarted = this.testCasesStarted.find((started) => started.id === testCaseStartedId);
|
|
120
|
+
if (testCaseStarted === undefined) {
|
|
121
|
+
return undefined;
|
|
122
|
+
}
|
|
123
|
+
const testCaseFinished = this.testCasesFinished.find((finished) => finished.testCaseStartedId === testCaseStartedId);
|
|
124
|
+
if (testCaseFinished === undefined) {
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
const testCase = this.testCases.find((tc) => tc.id === testCaseStarted.testCaseId);
|
|
128
|
+
if (testCase === undefined) {
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
const pickle = this.pickles.find((p) => p.id === testCase.pickleId);
|
|
132
|
+
if (pickle === undefined) {
|
|
133
|
+
return undefined;
|
|
100
134
|
}
|
|
101
|
-
|
|
135
|
+
const tags = (0, utils_1.parseTags)(pickle.tags);
|
|
136
|
+
const stepResults = pickle.steps
|
|
137
|
+
.map((step) => this.getStepResult(step, testCase))
|
|
138
|
+
.filter((step) => step !== undefined);
|
|
139
|
+
if (stepResults.length !== pickle.steps.length) {
|
|
140
|
+
return undefined;
|
|
141
|
+
}
|
|
142
|
+
const steps = stepResults.filter((item, i, arr) => {
|
|
143
|
+
var _a;
|
|
144
|
+
const prevOutcome = (_a = arr[i - 1]) === null || _a === void 0 ? void 0 : _a.outcome;
|
|
145
|
+
return !(item.outcome === "Skipped" &&
|
|
146
|
+
prevOutcome !== undefined &&
|
|
147
|
+
["Failed", "Skipped"].includes(prevOutcome));
|
|
148
|
+
});
|
|
149
|
+
const messages = [];
|
|
150
|
+
for (const step of pickle.steps) {
|
|
151
|
+
const message = this.getStepMessage(step, testCase);
|
|
152
|
+
if (message !== undefined) {
|
|
153
|
+
messages.push(message);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
const links = [...((_a = this.links[testCase.id]) !== null && _a !== void 0 ? _a : []), ...((_b = tags.links) !== null && _b !== void 0 ? _b : [])];
|
|
157
|
+
const result = {
|
|
158
|
+
autoTestExternalId: (0, mappers_1.resolvePickleExternalId)(this.gherkinDocuments, pickle),
|
|
159
|
+
links,
|
|
160
|
+
stepResults: steps,
|
|
161
|
+
outcome: (0, utils_1.calculateResultOutcome)(steps.map((step) => step.outcome).filter((outcome) => outcome !== undefined)),
|
|
162
|
+
startedOn: (0, mappers_1.mapDate)(testCaseStarted.timestamp.seconds),
|
|
163
|
+
completedOn: (0, mappers_1.mapDate)(testCaseFinished.timestamp.seconds),
|
|
164
|
+
duration: testCaseFinished.timestamp.seconds - testCaseStarted.timestamp.seconds,
|
|
165
|
+
message: (_c = this.messages[testCase.id]) === null || _c === void 0 ? void 0 : _c.join("\n"),
|
|
166
|
+
traces: messages.join("\n"),
|
|
167
|
+
attachments: this.attachments[testCase.id],
|
|
168
|
+
};
|
|
169
|
+
const autotest = (0, mappers_1.mapPickleToAutotestPost)(this.gherkinDocuments, pickle, (step) => this.formatStepTitle(step));
|
|
170
|
+
return { autotest, result };
|
|
171
|
+
}
|
|
172
|
+
formatStepTitle(pickleStep) {
|
|
173
|
+
return (0, mappers_1.formatPickleStepTitle)(this.gherkinDocuments, pickleStep);
|
|
102
174
|
}
|
|
103
175
|
getStepResult(pickleStep, testCase) {
|
|
104
176
|
const testStep = testCase.testSteps.find((step) => step.pickleStepId === pickleStep.id);
|
|
105
177
|
if (testStep === undefined) {
|
|
106
|
-
|
|
178
|
+
return undefined;
|
|
107
179
|
}
|
|
108
180
|
const testStepStarted = this.testStepsStarted.find((step) => step.testStepId === testStep.id);
|
|
109
181
|
if (testStepStarted === undefined) {
|
|
110
|
-
|
|
182
|
+
return undefined;
|
|
111
183
|
}
|
|
112
184
|
const testStepFinished = this.testStepsFinished.find((step) => step.testStepId === testStepStarted.testStepId);
|
|
113
185
|
if (testStepFinished === undefined) {
|
|
114
|
-
|
|
186
|
+
return undefined;
|
|
115
187
|
}
|
|
116
188
|
return {
|
|
117
|
-
title: pickleStep
|
|
189
|
+
title: this.formatStepTitle(pickleStep),
|
|
118
190
|
startedOn: (0, mappers_1.mapDate)(testStepStarted.timestamp.seconds),
|
|
119
191
|
duration: testStepFinished.testStepResult.duration.seconds,
|
|
120
192
|
completedOn: (0, mappers_1.mapDate)(testStepFinished.timestamp.seconds),
|
|
@@ -124,15 +196,15 @@ class Storage {
|
|
|
124
196
|
getStepMessage(pickleStep, testCase) {
|
|
125
197
|
const testStep = testCase.testSteps.find((step) => step.pickleStepId === pickleStep.id);
|
|
126
198
|
if (testStep === undefined) {
|
|
127
|
-
|
|
199
|
+
return undefined;
|
|
128
200
|
}
|
|
129
201
|
const testStepStarted = this.testStepsStarted.find((step) => step.testStepId === testStep.id);
|
|
130
202
|
if (testStepStarted === undefined) {
|
|
131
|
-
|
|
203
|
+
return undefined;
|
|
132
204
|
}
|
|
133
205
|
const testStepFinished = this.testStepsFinished.find((step) => step.testStepId === testStepStarted.testStepId);
|
|
134
206
|
if (testStepFinished === undefined) {
|
|
135
|
-
|
|
207
|
+
return undefined;
|
|
136
208
|
}
|
|
137
209
|
return testStepFinished.testStepResult.message;
|
|
138
210
|
}
|
|
@@ -149,7 +221,7 @@ class Storage {
|
|
|
149
221
|
this.links[testCaseId] = links;
|
|
150
222
|
}
|
|
151
223
|
else {
|
|
152
|
-
this.links[testCaseId].
|
|
224
|
+
this.links[testCaseId].push(...links);
|
|
153
225
|
}
|
|
154
226
|
}
|
|
155
227
|
addAttachments(testCaseId, attachments) {
|
|
@@ -157,7 +229,7 @@ class Storage {
|
|
|
157
229
|
this.attachments[testCaseId] = attachments;
|
|
158
230
|
}
|
|
159
231
|
else {
|
|
160
|
-
this.attachments[testCaseId].
|
|
232
|
+
this.attachments[testCaseId].push(...attachments);
|
|
161
233
|
}
|
|
162
234
|
}
|
|
163
235
|
}
|
package/dist/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,18 @@ export interface IStorage {
|
|
|
9
9
|
saveTestStepStarted(testStepStarted: TestStepStarted): void;
|
|
10
10
|
saveTestStepFinished(testStepFinished: TestStepFinished): void;
|
|
11
11
|
isResolvedTestCase(testCase: TestCase): boolean;
|
|
12
|
+
resolvePickleExternalId(pickle: Pickle): string;
|
|
12
13
|
getAutotests(): AutotestPost[];
|
|
13
14
|
getTestRunResults(): AutotestResult[];
|
|
15
|
+
getRealtimePayload(testCaseStartedId: string): {
|
|
16
|
+
autotest: AutotestPost;
|
|
17
|
+
result: AutotestResult;
|
|
18
|
+
} | undefined;
|
|
19
|
+
listCatchUpRealtimePayloads(sentTestCaseStartedIds: ReadonlySet<string>): Array<{
|
|
20
|
+
testCaseStartedId: string;
|
|
21
|
+
autotest: AutotestPost;
|
|
22
|
+
result: AutotestResult;
|
|
23
|
+
}>;
|
|
14
24
|
addMessage(testCaseId: string, message: string): void;
|
|
15
25
|
addLinks(testCaseId: string, links: Link[]): void;
|
|
16
26
|
addAttachments(testCaseId: string, attachments: Attachment[]): void;
|
package/package.json
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "testit-adapter-cucumber",
|
|
3
|
-
"version": "4.0
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "Cucumber adapter for Test IT",
|
|
5
5
|
"main": "dist/formatter.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"clean": "rimraf dist",
|
|
8
8
|
"prebuild": "npm --prefix ../testit-js-commons run build && npm link ../testit-js-commons",
|
|
9
9
|
"build": "tsc",
|
|
10
|
+
"pretest": "npm --prefix ../testit-js-commons run build",
|
|
11
|
+
"test": "jest",
|
|
10
12
|
"start": "npm run build && cd demo && npm run test",
|
|
11
13
|
"lint": "eslint . --ext=.ts"
|
|
12
14
|
},
|
|
@@ -23,11 +25,12 @@
|
|
|
23
25
|
"dependencies": {
|
|
24
26
|
"@cucumber/cucumber": "^7.3.1",
|
|
25
27
|
"@cucumber/messages": "^17.1.1",
|
|
26
|
-
"testit-js-commons": "4.0
|
|
28
|
+
"testit-js-commons": "4.1.0"
|
|
27
29
|
},
|
|
28
30
|
"devDependencies": {
|
|
29
31
|
"@babel/preset-env": "^7.15.8",
|
|
30
32
|
"@babel/preset-typescript": "^7.15.0",
|
|
33
|
+
"@types/jest": "^27.5.2",
|
|
31
34
|
"@types/node": "^16.10.3",
|
|
32
35
|
"@typescript-eslint/eslint-plugin": "^5.0.0",
|
|
33
36
|
"@typescript-eslint/parser": "^5.0.0",
|
|
@@ -36,7 +39,9 @@
|
|
|
36
39
|
"eslint-config-prettier": "^8.3.0",
|
|
37
40
|
"eslint-plugin-import": "^2.25.1",
|
|
38
41
|
"eslint-plugin-prettier": "^4.0.0",
|
|
42
|
+
"jest": "^29.7.0",
|
|
39
43
|
"prettier": "^2.4.1",
|
|
44
|
+
"ts-jest": "^29.2.5",
|
|
40
45
|
"rimraf": "^3.0.2",
|
|
41
46
|
"ts-node": "^10.3.0",
|
|
42
47
|
"typescript": "^4.4.3"
|