@datadog/datadog-ci-plugin-synthetics 5.12.0 → 5.13.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.
Files changed (86) hide show
  1. package/dist/bundle.d.ts +2392 -0
  2. package/dist/bundle.js +144530 -0
  3. package/dist/bundle.js.LEGAL.txt +2412 -0
  4. package/dist/bundle.js.map +1 -0
  5. package/dist/commands/deploy-tests.js +2 -125
  6. package/dist/commands/import-tests.js +2 -118
  7. package/dist/commands/run-tests.js +2 -319
  8. package/dist/commands/upload-application.js +2 -138
  9. package/package.json +19 -19
  10. package/dist/api.d.ts +0 -52
  11. package/dist/api.js +0 -333
  12. package/dist/api.js.map +0 -1
  13. package/dist/batch.d.ts +0 -9
  14. package/dist/batch.js +0 -325
  15. package/dist/batch.js.map +0 -1
  16. package/dist/build-and-test.d.ts +0 -25
  17. package/dist/build-and-test.js +0 -196
  18. package/dist/build-and-test.js.map +0 -1
  19. package/dist/commands/deploy-tests.d.ts +0 -19
  20. package/dist/commands/deploy-tests.js.map +0 -1
  21. package/dist/commands/import-tests.d.ts +0 -19
  22. package/dist/commands/import-tests.js.map +0 -1
  23. package/dist/commands/run-tests.d.ts +0 -19
  24. package/dist/commands/run-tests.js.map +0 -1
  25. package/dist/commands/upload-application.d.ts +0 -18
  26. package/dist/commands/upload-application.js.map +0 -1
  27. package/dist/deploy-tests-lib.d.ts +0 -2
  28. package/dist/deploy-tests-lib.js +0 -96
  29. package/dist/deploy-tests-lib.js.map +0 -1
  30. package/dist/errors.d.ts +0 -19
  31. package/dist/errors.js +0 -31
  32. package/dist/errors.js.map +0 -1
  33. package/dist/import-tests-lib.d.ts +0 -2
  34. package/dist/import-tests-lib.js +0 -71
  35. package/dist/import-tests-lib.js.map +0 -1
  36. package/dist/index.d.ts +0 -8
  37. package/dist/index.js +0 -46
  38. package/dist/index.js.map +0 -1
  39. package/dist/interfaces.d.ts +0 -759
  40. package/dist/interfaces.js +0 -27
  41. package/dist/interfaces.js.map +0 -1
  42. package/dist/local-test-definition.d.ts +0 -2
  43. package/dist/local-test-definition.js +0 -16
  44. package/dist/local-test-definition.js.map +0 -1
  45. package/dist/mobile.d.ts +0 -28
  46. package/dist/mobile.js +0 -275
  47. package/dist/mobile.js.map +0 -1
  48. package/dist/multilocator.d.ts +0 -2
  49. package/dist/multilocator.js +0 -88
  50. package/dist/multilocator.js.map +0 -1
  51. package/dist/reporters/constants.d.ts +0 -6
  52. package/dist/reporters/constants.js +0 -14
  53. package/dist/reporters/constants.js.map +0 -1
  54. package/dist/reporters/default.d.ts +0 -33
  55. package/dist/reporters/default.js +0 -461
  56. package/dist/reporters/default.js.map +0 -1
  57. package/dist/reporters/junit.d.ts +0 -100
  58. package/dist/reporters/junit.js +0 -425
  59. package/dist/reporters/junit.js.map +0 -1
  60. package/dist/reporters/mobile/app-upload.d.ts +0 -14
  61. package/dist/reporters/mobile/app-upload.js +0 -54
  62. package/dist/reporters/mobile/app-upload.js.map +0 -1
  63. package/dist/run-tests-lib.d.ts +0 -28
  64. package/dist/run-tests-lib.js +0 -281
  65. package/dist/run-tests-lib.js.map +0 -1
  66. package/dist/test.d.ts +0 -29
  67. package/dist/test.js +0 -200
  68. package/dist/test.js.map +0 -1
  69. package/dist/tunnel/crypto.d.ts +0 -6
  70. package/dist/tunnel/crypto.js +0 -48
  71. package/dist/tunnel/crypto.js.map +0 -1
  72. package/dist/tunnel/index.d.ts +0 -1
  73. package/dist/tunnel/index.js +0 -6
  74. package/dist/tunnel/index.js.map +0 -1
  75. package/dist/tunnel/tunnel.d.ts +0 -49
  76. package/dist/tunnel/tunnel.js +0 -329
  77. package/dist/tunnel/tunnel.js.map +0 -1
  78. package/dist/tunnel/websocket.d.ts +0 -39
  79. package/dist/tunnel/websocket.js +0 -154
  80. package/dist/tunnel/websocket.js.map +0 -1
  81. package/dist/utils/internal.d.ts +0 -58
  82. package/dist/utils/internal.js +0 -317
  83. package/dist/utils/internal.js.map +0 -1
  84. package/dist/utils/public.d.ts +0 -81
  85. package/dist/utils/public.js +0 -524
  86. package/dist/utils/public.js.map +0 -1
@@ -1,461 +0,0 @@
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.getTunnelReporter = exports.DefaultReporter = exports.getResultUrlSuffix = exports.renderApiRequestDescription = void 0;
7
- const app_1 = require("@datadog/datadog-ci-base/helpers/app");
8
- const tags_1 = require("@datadog/datadog-ci-base/helpers/tags");
9
- const chalk_1 = __importDefault(require("chalk"));
10
- const ora_1 = __importDefault(require("ora"));
11
- const interfaces_1 = require("../interfaces");
12
- const internal_1 = require("../utils/internal");
13
- const public_1 = require("../utils/public");
14
- const constants_1 = require("./constants");
15
- // Step rendering
16
- const renderStepDuration = (duration) => {
17
- const getColor = () => {
18
- if (duration > 10000) {
19
- return chalk_1.default.bold.red;
20
- }
21
- if (duration > 5000) {
22
- return chalk_1.default.bold.yellow;
23
- }
24
- return chalk_1.default.bold;
25
- };
26
- const color = getColor();
27
- return `${color(duration.toString())}ms`;
28
- };
29
- const renderStepIcon = (step) => {
30
- if (step.failure) {
31
- return constants_1.ICONS.FAILED;
32
- }
33
- if (step.status === 'skipped') {
34
- return constants_1.ICONS.SKIPPED;
35
- }
36
- return constants_1.ICONS.SUCCESS;
37
- };
38
- const renderStep = (step) => {
39
- const duration = renderStepDuration(step.duration);
40
- const icon = renderStepIcon(step);
41
- const value = step.value ? `\n ${chalk_1.default.dim(step.value)}` : '';
42
- const error = step.failure ? `\n ${chalk_1.default.red.dim(step.failure.message)}` : '';
43
- return ` ${icon} | ${duration} - ${step.description}${value}${error}`;
44
- };
45
- const renderSkippedSteps = (steps) => {
46
- if (!steps.length) {
47
- return;
48
- }
49
- if (steps.length === 1) {
50
- return renderStep(steps[0]);
51
- }
52
- return ` ${constants_1.ICONS.SKIPPED} | ${steps.length} skipped steps`;
53
- };
54
- const renderApiError = (errorCode, errorMessage, color) => {
55
- if (errorCode === 'INCORRECT_ASSERTION') {
56
- try {
57
- const assertionsErrors = JSON.parse(errorMessage);
58
- const output = [` - ${(0, public_1.pluralize)('Assertion', assertionsErrors.length)} failed:`];
59
- output.push(...assertionsErrors.map((error) => {
60
- const expected = chalk_1.default.underline(`${error.target}`);
61
- const actual = chalk_1.default.underline(`${error.actual}`);
62
- return `▶ ${error.type} ${public_1.readableOperation[error.operator]} ${expected}. Actual: ${actual}`;
63
- }));
64
- return color(output.join('\n '));
65
- }
66
- catch (e) {
67
- // JSON parsing failed, do nothing to return the raw error
68
- }
69
- }
70
- return chalk_1.default.red(` [${chalk_1.default.bold(errorCode)}] - ${chalk_1.default.dim(errorMessage)}`);
71
- };
72
- // Test execution rendering
73
- const renderResultOutcome = (result, test, icon, color) => {
74
- if (result === null || result === void 0 ? void 0 : result.unhealthy) {
75
- const error = result.failure && result.failure.message !== 'Unknown error' ? result.failure.message : 'General Error';
76
- return [
77
- ` ${chalk_1.default.yellow(`${constants_1.ICONS.SKIPPED} | ${error}`)}`,
78
- ` ${chalk_1.default.yellow('We had an error during the execution of this test. The result will be ignored')}`,
79
- ].join('\n');
80
- }
81
- if (test.type === 'api') {
82
- const requestDescription = (0, exports.renderApiRequestDescription)(test.subtype, test.config);
83
- if (result === null || result === void 0 ? void 0 : result.failure) {
84
- return [
85
- ` ${icon} ${color(requestDescription)}`,
86
- renderApiError(result.failure.code, result.failure.message, color),
87
- ].join('\n');
88
- }
89
- return ` ${icon} ${color(requestDescription)}`;
90
- }
91
- if (test.type === 'browser') {
92
- const lines = [];
93
- if (result === null || result === void 0 ? void 0 : result.failure) {
94
- lines.push(chalk_1.default.red(` [${chalk_1.default.bold(result.failure.code)}] - ${chalk_1.default.dim(result.failure.message)}`));
95
- }
96
- // We render the step only if the test hasn't passed to avoid cluttering the output.
97
- if (result && result.status !== 'passed' && 'steps' in result) {
98
- const steps = result.steps;
99
- const criticalFailedStepIndex = result.steps.findIndex((s) => s.failure && !s.allow_failure) + 1;
100
- lines.push(...steps.slice(0, criticalFailedStepIndex).map(renderStep));
101
- const skippedStepDisplay = renderSkippedSteps(steps.slice(criticalFailedStepIndex));
102
- if (skippedStepDisplay) {
103
- lines.push(skippedStepDisplay);
104
- }
105
- }
106
- return lines.join('\n');
107
- }
108
- };
109
- const renderApiRequestDescription = (subType, { request, steps, }) => {
110
- // DNS result
111
- if (subType === 'dns') {
112
- if (!(request === null || request === void 0 ? void 0 : request.host)) {
113
- return 'Invalid DNS result';
114
- }
115
- const text = `Query for ${request.host}`;
116
- if (request.dnsServer) {
117
- const dnsServerPort = request.dnsServerPort ? `:${request.dnsServerPort}` : '';
118
- return `${text} on server ${request.dnsServer}${dnsServerPort}`;
119
- }
120
- return text;
121
- }
122
- // Multistep result
123
- if (subType === 'multi') {
124
- if (!steps) {
125
- return 'Invalid multistep result';
126
- }
127
- const stepsDescription = Object.entries(steps
128
- .map((step) => step.subtype)
129
- .reduce((counts, type) => {
130
- counts[type] = (counts[type] || 0) + 1;
131
- return counts;
132
- }, {}))
133
- .map(([type, count]) => `${count} ${type.toUpperCase()} test`)
134
- .join(', ');
135
- return `Multistep test containing ${stepsDescription}`;
136
- }
137
- // Fallbacks by order of priority:
138
- // - Any result with Host + Port
139
- if ((request === null || request === void 0 ? void 0 : request.host) && (request === null || request === void 0 ? void 0 : request.port)) {
140
- return `Host: ${request.host}:${request.port}`;
141
- }
142
- else if (subType === 'ssl' || subType === 'tcp') {
143
- return `Invalid ${subType.toUpperCase()} result`;
144
- }
145
- // - Any result with Method + URL
146
- if ((request === null || request === void 0 ? void 0 : request.method) && (request === null || request === void 0 ? void 0 : request.url)) {
147
- return `${chalk_1.default.bold(request.method)} - ${request.url}`;
148
- }
149
- else if (subType === 'http') {
150
- return 'Invalid HTTP result';
151
- }
152
- // - Result with any subtype
153
- return `${chalk_1.default.bold(subType)} test`;
154
- };
155
- exports.renderApiRequestDescription = renderApiRequestDescription;
156
- const renderExecutionResult = (test, execution, baseUrl, batchId) => {
157
- var _a, _b;
158
- const { executionRule, test: overriddenTest, resultId } = execution;
159
- const resultOutcome = (0, public_1.getResultOutcome)(execution);
160
- const [icon, setColor] = getResultIconAndColor(resultOutcome);
161
- const editedText = ((_a = execution.selectiveRerun) === null || _a === void 0 ? void 0 : _a.decision) === 'run' && execution.selectiveRerun.reason === 'edited'
162
- ? chalk_1.default.dim('(edited) ')
163
- : '';
164
- const executionRuleText = public_1.PASSED_RESULT_OUTCOMES.includes(resultOutcome)
165
- ? ''
166
- : `[${setColor(executionRule === interfaces_1.ExecutionRule.BLOCKING ? 'blocking' : 'non-blocking')}] `;
167
- const publicId = (0, internal_1.getPublicIdOrPlaceholder)(test);
168
- const testLabel = `${editedText}${executionRuleText}[${chalk_1.default.bold.dim(publicId)}] ${chalk_1.default.bold(test.name)}`;
169
- const resultIdentificationSuffix = getResultIdentificationSuffix(execution, setColor);
170
- const resultIdentification = `${icon} ${testLabel}${resultIdentificationSuffix}`;
171
- const outputLines = [resultIdentification];
172
- // Unhealthy test results don't have a duration or result URL
173
- if ((0, internal_1.isBaseResult)(execution) && !((_b = execution.result) === null || _b === void 0 ? void 0 : _b.unhealthy)) {
174
- const durationText = execution.duration ? ` Total duration: ${execution.duration} ms -` : '';
175
- const resultUrl = (0, public_1.getResultUrl)(baseUrl, test, resultId, batchId);
176
- const resultUrlStatus = (0, exports.getResultUrlSuffix)(execution);
177
- outputLines.push(` •${durationText} View test run details:`);
178
- outputLines.push(` ⎋ ${chalk_1.default.dim.cyan(resultUrl)}${resultUrlStatus}`);
179
- }
180
- if ((0, public_1.isResultSkippedBySelectiveRerun)(execution)) {
181
- const resultUrl = (0, public_1.getResultUrl)(baseUrl, test, resultId, batchId);
182
- outputLines.push(chalk_1.default.dim(` ${setColor('◀')} Successful result from a ${setColor('previous')} CI batch:`));
183
- outputLines.push(` ⎋ ${chalk_1.default.dim.cyan(resultUrl)}`);
184
- }
185
- else {
186
- const resultOutcomeText = renderResultOutcome(execution.result, overriddenTest || test, icon, setColor);
187
- if (resultOutcomeText) {
188
- outputLines.push(resultOutcomeText);
189
- }
190
- }
191
- return outputLines.join('\n');
192
- };
193
- const getResultIdentificationSuffix = (execution, setColor) => {
194
- if ((0, internal_1.isBaseResult)(execution)) {
195
- const { result, passed, retries, maxRetries, timedOut } = execution;
196
- const location = execution.location ? setColor(`location: ${chalk_1.default.bold(execution.location)}`) : '';
197
- const device = result && (0, public_1.isDeviceIdSet)(execution) ? ` - ${setColor(`device: ${chalk_1.default.bold(execution.device.id)}`)}` : '';
198
- const attempt = getAttemptSuffix(passed, retries, maxRetries, timedOut);
199
- return ` - ${location}${device}${attempt}`;
200
- }
201
- return '';
202
- };
203
- const getResultUrlSuffix = (execution) => {
204
- if ((0, internal_1.isBaseResult)(execution)) {
205
- const { retries, maxRetries, timedOut } = execution;
206
- const timedOutRetry = (0, internal_1.isTimedOutRetry)(retries, maxRetries, timedOut);
207
- if (timedOutRetry) {
208
- return ' (previous attempt)';
209
- }
210
- if (timedOut) {
211
- return ' (not yet received)';
212
- }
213
- }
214
- return '';
215
- };
216
- exports.getResultUrlSuffix = getResultUrlSuffix;
217
- const getAttemptSuffix = (passed, retries, maxRetries, timedOut) => {
218
- const currentAttempt = retries + 1;
219
- const maxAttempts = maxRetries + 1;
220
- if (maxAttempts === 1) {
221
- // No need to talk about "attempts" if retries aren't configured.
222
- return '';
223
- }
224
- if (passed && retries === 0) {
225
- // No need to display anything if the test passed on the first attempt.
226
- return '';
227
- }
228
- const attempt = (current, max) => {
229
- if (!passed && current < max) {
230
- return chalk_1.default.dim(`attempt ${current} of ${max}, retrying…`);
231
- }
232
- return chalk_1.default.dim(`attempt ${current}, done`);
233
- };
234
- if ((0, internal_1.isTimedOutRetry)(retries, maxRetries, timedOut)) {
235
- // Current attempt is still that of the last received result, so we increment it to refer to the expected retry.
236
- return ` (${attempt(currentAttempt + 1, maxAttempts)})`;
237
- }
238
- return ` (${attempt(currentAttempt, maxAttempts)})`;
239
- };
240
- const getResultIconAndColor = (resultOutcome) => {
241
- if (public_1.PASSED_RESULT_OUTCOMES.includes(resultOutcome)) {
242
- return [constants_1.ICONS.SUCCESS, chalk_1.default.bold.green];
243
- }
244
- if (resultOutcome === "failed-non-blocking" /* ResultOutcome.FailedNonBlocking */) {
245
- return [constants_1.ICONS.FAILED_NON_BLOCKING, chalk_1.default.bold.yellow];
246
- }
247
- return [constants_1.ICONS.FAILED, chalk_1.default.bold.red];
248
- };
249
- class DefaultReporter {
250
- constructor({ context }) {
251
- this.context = context;
252
- this.write = context.stdout.write.bind(context.stdout);
253
- }
254
- error(error) {
255
- this.removeSpinner();
256
- this.write(error);
257
- }
258
- initErrors(errors) {
259
- this.removeSpinner();
260
- this.write(errors.join('\n') + '\n\n');
261
- }
262
- log(log) {
263
- this.removeSpinner();
264
- this.write(log);
265
- }
266
- reportStart(timings) {
267
- this.totalDuration = Date.now() - timings.startTime;
268
- this.removeSpinner();
269
- this.write(['', chalk_1.default.bold.cyan('=== REPORT ==='), `Took ${chalk_1.default.bold(this.totalDuration).toString()}ms`, '\n'].join('\n'));
270
- }
271
- resultEnd(result, baseUrl, batchId) {
272
- var _a;
273
- // Stop the spinner so it doesn't show multiple times in a burst of received results.
274
- (_a = this.testWaitSpinner) === null || _a === void 0 ? void 0 : _a.stop();
275
- this.write(renderExecutionResult(result.test, result, baseUrl, batchId) + '\n\n');
276
- }
277
- resultReceived(result) {
278
- return;
279
- }
280
- dryRunEnd(summary, testPlan, config, orgSettings) {
281
- const { bold: b, gray, red, yellow } = chalk_1.default;
282
- const lines = [];
283
- if (summary.testsNotFound.size > 0) {
284
- const testsNotFoundListStr = gray(`(${[...summary.testsNotFound].join(', ')})`);
285
- lines.push(`${yellow(`${b(summary.testsNotFound.size)} ${(0, public_1.pluralize)('test', summary.testsNotFound.size)} not found`)} ${testsNotFoundListStr}\n`);
286
- }
287
- if (summary.testsNotAuthorized.size > 0) {
288
- const testsNotAuthorizedListStr = gray(`(${[...summary.testsNotAuthorized].join(', ')})`);
289
- lines.push(`${red(`${b(summary.testsNotAuthorized.size)} ${(0, public_1.pluralize)('test', summary.testsNotAuthorized.size)} not authorized`)} ${testsNotAuthorizedListStr}\n`);
290
- }
291
- const testsToTriggerCount = testPlan.filter((item) => item.executionRule !== interfaces_1.ExecutionRule.SKIPPED).length;
292
- lines.push(`${b('Dry Run Summary:')}`);
293
- lines.push(`• Would trigger ${b(testsToTriggerCount)} ${(0, public_1.pluralize)('test', testsToTriggerCount)}`);
294
- const skippedCount = testPlan.filter((item) => item.executionRule === interfaces_1.ExecutionRule.SKIPPED).length;
295
- if (skippedCount) {
296
- lines.push(`• ${b(skippedCount)} skipped`);
297
- }
298
- if (config.defaultTestOverrides) {
299
- const defaultOverrideKeys = Object.keys(config.defaultTestOverrides);
300
- if (defaultOverrideKeys.length > 0) {
301
- lines.push(`• Default overrides applied to all tests: ${gray(defaultOverrideKeys.join(', '))}`);
302
- }
303
- }
304
- if (config) {
305
- const { batchTimeout, failOnCriticalErrors, failOnMissingTests, failOnTimeout, selectiveRerun, tunnel } = config;
306
- lines.push(`• Fail on timeout: ${b(failOnTimeout)}`);
307
- lines.push(`• Fail on missing tests: ${b(failOnMissingTests)}`);
308
- lines.push(`• Fail on critical errors: ${b(failOnCriticalErrors)}`);
309
- if (selectiveRerun !== undefined) {
310
- lines.push(`• Selective rerun: ${b(selectiveRerun)}`);
311
- }
312
- if (tunnel) {
313
- lines.push(`• Tunnel: ${b('enabled')}`);
314
- }
315
- if (batchTimeout !== undefined) {
316
- lines.push(`• Batch timeout: ${b(batchTimeout)}ms`);
317
- }
318
- }
319
- if (orgSettings && orgSettings.onDemandConcurrencyCap > 0) {
320
- const cap = orgSettings.onDemandConcurrencyCap;
321
- lines.push(`• Max parallelization configured: ${b(cap)} ${(0, public_1.pluralize)('test', cap)} running at the same time`);
322
- }
323
- this.write(lines.join('\n') + '\n');
324
- }
325
- runEnd(summary, baseUrl, orgSettings) {
326
- var _a, _b, _c, _d;
327
- const { bold: b, gray, green, red, yellow } = chalk_1.default;
328
- const lines = [];
329
- const runSummary = [];
330
- if (summary.previouslyPassed) {
331
- runSummary.push(green(`${b(summary.passed)} passed (${b(summary.previouslyPassed)} in a previous CI batch)`));
332
- }
333
- else {
334
- runSummary.push(green(`${b(summary.passed)} passed`));
335
- }
336
- runSummary.push(red(`${b(summary.failed)} failed`));
337
- if (summary.failedNonBlocking) {
338
- runSummary.push(yellow(`${b(summary.failedNonBlocking)} failed (non-blocking)`));
339
- }
340
- if (summary.skipped) {
341
- runSummary.push(`${b(summary.skipped)} skipped`);
342
- }
343
- if (summary.testsNotFound.size > 0) {
344
- const testsNotFoundListStr = gray(`(${[...summary.testsNotFound].join(', ')})`);
345
- lines.push(`${yellow(`${b(summary.testsNotFound.size)} ${(0, public_1.pluralize)('test', summary.testsNotFound.size)} not found`)} ${testsNotFoundListStr}\n`);
346
- }
347
- if (summary.testsNotAuthorized.size > 0) {
348
- const testsNotAuthorizedListStr = gray(`(${[...summary.testsNotAuthorized].join(', ')})`);
349
- lines.push(`${red(`${b(summary.testsNotAuthorized.size)} ${(0, public_1.pluralize)('test', summary.testsNotAuthorized.size)} not authorized`)} ${testsNotAuthorizedListStr}\n`);
350
- }
351
- const extraInfo = [];
352
- if (summary.timedOut) {
353
- extraInfo.push(yellow(`${b(summary.timedOut)} timed out`));
354
- }
355
- if (summary.criticalErrors) {
356
- extraInfo.push(red(`${b(summary.criticalErrors)} critical errors`));
357
- }
358
- const extraInfoStr = extraInfo.length ? ' (' + extraInfo.join(', ') + ')' : '';
359
- if (summary.batchId) {
360
- const batchUrl = (0, public_1.getBatchUrl)(baseUrl, summary.batchId);
361
- lines.push('View full summary in Datadog: ' + chalk_1.default.dim.cyan(batchUrl));
362
- }
363
- lines.push(`\n${b('Continuous Testing Summary:')}`);
364
- lines.push(`• Test Results: ${runSummary.join(', ')}${extraInfoStr}`);
365
- if (orgSettings && orgSettings.onDemandConcurrencyCap > 0) {
366
- lines.push(`• Max parallelization configured: ${orgSettings.onDemandConcurrencyCap} test${orgSettings.onDemandConcurrencyCap > 1 ? 's' : ''} running at the same time`);
367
- }
368
- if (summary.previouslyPassed) {
369
- lines.push(`• Selective rerun: ran ${summary.expected - summary.previouslyPassed} out of ${summary.expected} tests`);
370
- }
371
- if (this.totalDuration) {
372
- const min = Math.floor(this.totalDuration / (60 * 1000));
373
- const sec = Math.round((this.totalDuration % (60 * 1000)) / 1000);
374
- lines.push(`• Total Duration:${min > 0 ? ' ' + min.toString() + 'm' : ''}${sec > 0 ? ' ' + sec.toString() + 's' : ''}`);
375
- }
376
- const testRunsUrlPath = (0, app_1.getTestRunsUrlPath)({
377
- [tags_1.CI_JOB_URL]: (_b = (_a = summary.metadata) === null || _a === void 0 ? void 0 : _a.ci.job) === null || _b === void 0 ? void 0 : _b.url,
378
- [tags_1.CI_PIPELINE_URL]: (_d = (_c = summary.metadata) === null || _c === void 0 ? void 0 : _c.ci.pipeline) === null || _d === void 0 ? void 0 : _d.url,
379
- }, '@test.framework:synthetics');
380
- if (testRunsUrlPath) {
381
- lines.push(`\nView test runs in Test Optimization: ${chalk_1.default.dim.cyan(baseUrl + testRunsUrlPath)}`);
382
- }
383
- if (orgSettings && orgSettings.onDemandConcurrencyCap > 0) {
384
- lines.push(`\nIncrease your parallelization to reduce the CI batch duration: ${chalk_1.default.dim.cyan(baseUrl + 'synthetics/settings/continuous-testing')}`);
385
- }
386
- this.write(lines.join('\n') + '\n');
387
- }
388
- testsWait(tests, baseUrl, batchId, skippedCount) {
389
- const testsList = tests.map((t) => (0, internal_1.getPublicIdOrPlaceholder)(t));
390
- if (testsList.length > 10) {
391
- testsList.splice(10);
392
- testsList.push('…');
393
- }
394
- const testsDisplay = chalk_1.default.gray(`(${testsList.join(', ')})`);
395
- const testCountText = (0, public_1.pluralize)('test', tests.length);
396
- const skippingCountText = skippedCount ? ` (skipping ${chalk_1.default.bold.cyan(skippedCount)} already successful)` : '';
397
- const text = tests.length > 0
398
- ? `Waiting for ${chalk_1.default.bold.cyan(tests.length)} ${testCountText}${skippingCountText} ${testsDisplay}…\n`
399
- : 'Waiting for the batch to end…\n';
400
- if (this.testWaitSpinner) {
401
- // Only refresh the spinner when the text changes.
402
- // The refreshed text will be persisted in the CI logs.
403
- if (this.testWaitSpinner.text !== text) {
404
- this.testWaitSpinner.text = text;
405
- this.testWaitSpinner.start();
406
- }
407
- return;
408
- }
409
- const batchUrl = (0, public_1.getBatchUrl)(baseUrl, batchId);
410
- this.write(`View pending summary in Datadog: ${chalk_1.default.dim.cyan(batchUrl)}\n\n`);
411
- this.testWaitSpinner = (0, ora_1.default)({
412
- stream: this.context.stdout,
413
- prefixText: '\n',
414
- text,
415
- });
416
- this.testWaitSpinner.start();
417
- }
418
- testTrigger(test, testId, executionRule, testOverrides) {
419
- const idDisplay = `[${chalk_1.default.bold.dim(testId)}]`;
420
- const getMessage = () => {
421
- if (executionRule === interfaces_1.ExecutionRule.SKIPPED) {
422
- // Test is either skipped from datadog-ci config or from test config
423
- const isSkippedByCIConfig = testOverrides.executionRule === interfaces_1.ExecutionRule.SKIPPED;
424
- if (isSkippedByCIConfig) {
425
- return `Skipped test "${chalk_1.default.yellow.dim(test.name)}"`;
426
- }
427
- else {
428
- return `Skipped test "${chalk_1.default.yellow.dim(test.name)}" because of execution rule configuration in Datadog`;
429
- }
430
- }
431
- if (executionRule === interfaces_1.ExecutionRule.NON_BLOCKING) {
432
- return `Found test "${chalk_1.default.green.bold(test.name)}" (non-blocking)`;
433
- }
434
- return `Found test "${chalk_1.default.green.bold(test.name)}"`;
435
- };
436
- const getTestOverridesPart = () => {
437
- const nbConfigsOverridden = (0, public_1.getTestOverridesCount)(testOverrides);
438
- if (nbConfigsOverridden === 0 || executionRule === interfaces_1.ExecutionRule.SKIPPED) {
439
- return '';
440
- }
441
- return ' ' + chalk_1.default.gray(`(${nbConfigsOverridden} test ${(0, public_1.pluralize)('override', nbConfigsOverridden)})`);
442
- };
443
- this.write(`${idDisplay} ${getMessage()}${getTestOverridesPart()}\n`);
444
- }
445
- testWait(test) {
446
- return;
447
- }
448
- removeSpinner() {
449
- var _a;
450
- (_a = this.testWaitSpinner) === null || _a === void 0 ? void 0 : _a.stop();
451
- delete this.testWaitSpinner;
452
- }
453
- }
454
- exports.DefaultReporter = DefaultReporter;
455
- const getTunnelReporter = (reporter) => ({
456
- log: (message) => reporter.log(`[${chalk_1.default.bold.blue('Tunnel')}] ${message}\n`),
457
- error: (message) => reporter.error(`[${chalk_1.default.bold.yellow('Tunnel')}] ${message}\n`),
458
- warn: (message) => reporter.error(`[${chalk_1.default.bold.red('Tunnel')}] ${message}\n`),
459
- });
460
- exports.getTunnelReporter = getTunnelReporter;
461
- //# sourceMappingURL=default.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"default.js","sourceRoot":"","sources":["../../src/reporters/default.ts"],"names":[],"mappings":"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"}
@@ -1,100 +0,0 @@
1
- import type { Reporter, ReporterContext, Result, Summary, Test, UserConfigOverride } from '../interfaces';
2
- import { ExecutionRule } from '../interfaces';
3
- interface SuiteStats {
4
- errors: number;
5
- failures: number;
6
- skipped: number;
7
- tests: number;
8
- }
9
- interface TestCaseStats {
10
- steps_allowfailures: number;
11
- steps_count: number;
12
- steps_errors: number;
13
- steps_failures: number;
14
- steps_skipped: number;
15
- steps_warnings: number;
16
- }
17
- interface XMLSuiteProperties extends SuiteStats {
18
- name: string;
19
- }
20
- interface XMLSuite {
21
- $: XMLSuiteProperties;
22
- testcase: XMLTestCase[];
23
- }
24
- interface XMLTestCaseProperties extends TestCaseStats {
25
- classname: string | undefined;
26
- file: string | undefined;
27
- name: string;
28
- time: number | undefined;
29
- timestamp: string;
30
- }
31
- export interface XMLTestCase {
32
- $: XMLTestCaseProperties;
33
- allowed_error: XMLError[];
34
- browser_error: XMLError[];
35
- error: XMLError[];
36
- failure: XMLError[];
37
- properties: {
38
- property: {
39
- $: {
40
- name: string;
41
- value: any;
42
- };
43
- }[];
44
- };
45
- skipped: string[];
46
- warning: XMLError[];
47
- }
48
- export interface XMLJSON {
49
- testsuites: {
50
- $: {
51
- batch_id: string;
52
- batch_url: string;
53
- name: string;
54
- tests_critical_error: number;
55
- tests_failed: number;
56
- tests_failed_non_blocking: number;
57
- tests_not_authorized: number;
58
- tests_not_found: number;
59
- tests_passed: number;
60
- tests_skipped: number;
61
- tests_timed_out: number;
62
- };
63
- testsuite: XMLSuite[];
64
- };
65
- }
66
- interface XMLError {
67
- $: {
68
- [key: string]: string;
69
- type: string;
70
- };
71
- _: string;
72
- }
73
- export interface Args {
74
- context: ReporterContext;
75
- jUnitReport?: string;
76
- runName?: string;
77
- }
78
- export declare const getDefaultTestCaseStats: () => TestCaseStats;
79
- export declare const getDefaultSuiteStats: () => SuiteStats;
80
- export declare class JUnitReporter implements Reporter {
81
- private builder;
82
- private destination;
83
- private json;
84
- private write;
85
- constructor({ context, jUnitReport, runName }: Args);
86
- resultEnd(result: Result, baseUrl: string, batchId: string): void;
87
- runEnd(summary: Summary, baseUrl: string): void;
88
- testTrigger(test: Test, testId: string, executionRule: ExecutionRule, testOverrides: UserConfigOverride): void;
89
- private addTestCaseToSuite;
90
- private getApiStepStats;
91
- private getApiTestErrors;
92
- private getBrowserStepStats;
93
- private getBrowserTestErrors;
94
- private getMultiStepTestErrors;
95
- private getSkippedTestCase;
96
- private getSuiteByName;
97
- private getTestCase;
98
- private getTestCaseStats;
99
- }
100
- export {};