@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,524 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.filterTestPlan = exports.reportCiError = exports.pluralize = exports.getDatadogHost = exports.toExitCode = exports.getExitReason = exports.reportExitLogs = exports.renderResults = exports.sortResultsByOutcome = exports.getResultUrl = exports.getBatchUrl = exports.getAppBaseURL = exports.retry = exports.fetchTest = exports.isDeviceIdSet = exports.getReporter = exports.createInitialSummary = exports.isResultSkippedBySelectiveRerun = exports.getOrgSettings = exports.parsePublicIdWithVersion = exports.normalizePublicId = exports.getFilePathRelativeToRepo = exports.getSuites = exports.getResultOutcome = exports.PASSED_RESULT_OUTCOMES = exports.isTestSupportedByTunnel = exports.getStrictestExecutionRule = exports.getExecutionRule = exports.setCiTriggerApp = exports.getTestOverridesCount = exports.makeTestPayload = exports.ciTriggerApp = exports.readableOperation = exports.PUBLIC_ID_REGEX = void 0;
39
- const child_process_1 = require("child_process");
40
- const fs = __importStar(require("fs"));
41
- const process_1 = __importDefault(require("process"));
42
- const util_1 = require("util");
43
- const app_1 = require("@datadog/datadog-ci-base/helpers/app");
44
- const glob_1 = require("@datadog/datadog-ci-base/helpers/glob");
45
- const chalk_1 = __importDefault(require("chalk"));
46
- const upath_1 = __importDefault(require("upath"));
47
- const api_1 = require("../api");
48
- const errors_1 = require("../errors");
49
- const interfaces_1 = require("../interfaces");
50
- const internal_1 = require("./internal");
51
- exports.PUBLIC_ID_REGEX = /\b[a-z0-9]{3}-[a-z0-9]{3}-[a-z0-9]{3}\b/;
52
- exports.readableOperation = {
53
- [interfaces_1.Operator.contains]: 'should contain',
54
- [interfaces_1.Operator.doesNotContain]: 'should not contain',
55
- [interfaces_1.Operator.is]: 'should be',
56
- [interfaces_1.Operator.isNot]: 'should not be',
57
- [interfaces_1.Operator.lessThan]: 'should be less than',
58
- [interfaces_1.Operator.matches]: 'should match',
59
- [interfaces_1.Operator.doesNotMatch]: 'should not match',
60
- [interfaces_1.Operator.isInLessThan]: 'will expire in less than',
61
- [interfaces_1.Operator.isInMoreThan]: 'will expire in more than',
62
- [interfaces_1.Operator.lessThanOrEqual]: 'should be less than or equal to',
63
- [interfaces_1.Operator.moreThan]: 'should be more than',
64
- [interfaces_1.Operator.moreThanOrEqual]: 'should be less than or equal to',
65
- [interfaces_1.Operator.validatesJSONPath]: 'assert on JSONPath extracted value',
66
- [interfaces_1.Operator.validatesXPath]: 'assert on XPath extracted value',
67
- };
68
- exports.ciTriggerApp = process_1.default.env.DATADOG_SYNTHETICS_CI_TRIGGER_APP || 'npm_package';
69
- const makeTestPayload = (test, triggerConfig, publicId) => {
70
- if ((0, internal_1.isLocalTriggerConfig)(triggerConfig)) {
71
- return Object.assign(Object.assign({}, (0, internal_1.getBasePayload)(test, triggerConfig.testOverrides)), { local_test_definition: triggerConfig.localTestDefinition });
72
- }
73
- return Object.assign(Object.assign({}, (0, internal_1.getBasePayload)(test, triggerConfig.testOverrides)), { public_id: publicId, version: triggerConfig.version });
74
- };
75
- exports.makeTestPayload = makeTestPayload;
76
- const getTestOverridesCount = (testOverrides) => {
77
- return Object.keys(testOverrides).reduce((count) => count + 1, 0);
78
- };
79
- exports.getTestOverridesCount = getTestOverridesCount;
80
- const setCiTriggerApp = (source) => {
81
- exports.ciTriggerApp = source;
82
- };
83
- exports.setCiTriggerApp = setCiTriggerApp;
84
- const getExecutionRule = (test, configOverride) => {
85
- var _a, _b, _c, _d;
86
- if (configOverride && configOverride.executionRule) {
87
- return (0, exports.getStrictestExecutionRule)(configOverride.executionRule, (_b = (_a = test === null || test === void 0 ? void 0 : test.options) === null || _a === void 0 ? void 0 : _a.ci) === null || _b === void 0 ? void 0 : _b.executionRule);
88
- }
89
- return ((_d = (_c = test === null || test === void 0 ? void 0 : test.options) === null || _c === void 0 ? void 0 : _c.ci) === null || _d === void 0 ? void 0 : _d.executionRule) || interfaces_1.ExecutionRule.BLOCKING;
90
- };
91
- exports.getExecutionRule = getExecutionRule;
92
- const getStrictestExecutionRule = (configRule, testRule) => {
93
- if (configRule === interfaces_1.ExecutionRule.SKIPPED || testRule === interfaces_1.ExecutionRule.SKIPPED) {
94
- return interfaces_1.ExecutionRule.SKIPPED;
95
- }
96
- if (configRule === interfaces_1.ExecutionRule.NON_BLOCKING || testRule === interfaces_1.ExecutionRule.NON_BLOCKING) {
97
- return interfaces_1.ExecutionRule.NON_BLOCKING;
98
- }
99
- if (configRule === interfaces_1.ExecutionRule.BLOCKING || testRule === interfaces_1.ExecutionRule.BLOCKING) {
100
- return interfaces_1.ExecutionRule.BLOCKING;
101
- }
102
- return interfaces_1.ExecutionRule.BLOCKING;
103
- };
104
- exports.getStrictestExecutionRule = getStrictestExecutionRule;
105
- const isTestSupportedByTunnel = (test) => {
106
- var _a;
107
- // Test public IDs are required by the tunnel.
108
- if (!test.public_id) {
109
- return false;
110
- }
111
- return (test.type === 'browser' ||
112
- test.subtype === 'http' ||
113
- (test.subtype === 'multi' && ((_a = test.config.steps) === null || _a === void 0 ? void 0 : _a.every((step) => step.subtype === 'http'))));
114
- };
115
- exports.isTestSupportedByTunnel = isTestSupportedByTunnel;
116
- exports.PASSED_RESULT_OUTCOMES = [
117
- "passed" /* ResultOutcome.Passed */,
118
- "passed-non-blocking" /* ResultOutcome.PassedNonBlocking */,
119
- "previously-passed" /* ResultOutcome.PreviouslyPassed */,
120
- ];
121
- const getResultOutcome = (result) => {
122
- if ((0, exports.isResultSkippedBySelectiveRerun)(result)) {
123
- return "previously-passed" /* ResultOutcome.PreviouslyPassed */;
124
- }
125
- const executionRule = result.executionRule;
126
- if (result.passed) {
127
- if (executionRule === interfaces_1.ExecutionRule.NON_BLOCKING) {
128
- return "passed-non-blocking" /* ResultOutcome.PassedNonBlocking */;
129
- }
130
- return "passed" /* ResultOutcome.Passed */;
131
- }
132
- if (executionRule === interfaces_1.ExecutionRule.NON_BLOCKING) {
133
- return "failed-non-blocking" /* ResultOutcome.FailedNonBlocking */;
134
- }
135
- return "failed" /* ResultOutcome.Failed */;
136
- };
137
- exports.getResultOutcome = getResultOutcome;
138
- const getSuites = (pattern, reporter) => __awaiter(void 0, void 0, void 0, function* () {
139
- reporter.log(`Finding files matching ${upath_1.default.resolve(process_1.default.cwd(), pattern)}\n`);
140
- const files = (0, glob_1.globSync)(pattern);
141
- if (files.length) {
142
- reporter.log(`\nGot test files:\n${files.map((file) => ` - ${file}\n`).join('')}\n`);
143
- }
144
- else {
145
- reporter.log('\nNo test files found.\n\n');
146
- }
147
- return Promise.all(files.map((file) => __awaiter(void 0, void 0, void 0, function* () {
148
- try {
149
- const content = yield (0, util_1.promisify)(fs.readFile)(file, 'utf8');
150
- const suiteName = yield (0, exports.getFilePathRelativeToRepo)(file);
151
- return { name: suiteName, content: JSON.parse(content) };
152
- }
153
- catch (e) {
154
- throw new Error(`Unable to read and parse the test file ${file}`);
155
- }
156
- })));
157
- });
158
- exports.getSuites = getSuites;
159
- const getFilePathRelativeToRepo = (filePath) => __awaiter(void 0, void 0, void 0, function* () {
160
- const parentDirectory = upath_1.default.dirname(filePath);
161
- const filename = upath_1.default.basename(filePath);
162
- let relativeDirectory;
163
- try {
164
- const { stdout } = yield (0, util_1.promisify)(child_process_1.exec)('git rev-parse --show-toplevel');
165
- const repoTopLevel = stdout.trim();
166
- relativeDirectory = upath_1.default.relative(repoTopLevel, parentDirectory);
167
- }
168
- catch (_a) {
169
- // We aren't in a git repository: fall back to the given path, relative to the process working directory.
170
- relativeDirectory = upath_1.default.relative(process_1.default.cwd(), parentDirectory);
171
- }
172
- return upath_1.default.join(relativeDirectory, filename);
173
- });
174
- exports.getFilePathRelativeToRepo = getFilePathRelativeToRepo;
175
- const normalizePublicId = (id) => { var _a; return id === internal_1.LOCAL_TEST_DEFINITION_PUBLIC_ID_PLACEHOLDER ? id : (_a = id.match(exports.PUBLIC_ID_REGEX)) === null || _a === void 0 ? void 0 : _a[0]; };
176
- exports.normalizePublicId = normalizePublicId;
177
- const parsePublicIdWithVersion = (id) => {
178
- // Check if the ID contains a version (format: <public-id>@<version-id>)
179
- const versionMatch = id.match(/^([a-z0-9]{3}-[a-z0-9]{3}-[a-z0-9]{3})@(\d+)$/);
180
- if (versionMatch) {
181
- const [, matchedId, versionStr] = versionMatch;
182
- const version = parseInt(versionStr, 10);
183
- return { publicId: matchedId, version };
184
- }
185
- const plainId = (0, exports.normalizePublicId)(id);
186
- if (plainId) {
187
- return { publicId: plainId };
188
- }
189
- return undefined;
190
- };
191
- exports.parsePublicIdWithVersion = parsePublicIdWithVersion;
192
- const getOrgSettings = (reporter, config) => __awaiter(void 0, void 0, void 0, function* () {
193
- const api = (0, api_1.getApiHelper)(config);
194
- try {
195
- return yield api.getSyntheticsOrgSettings();
196
- }
197
- catch (e) {
198
- reporter.error(`Failed to get settings: ${(0, api_1.formatBackendErrors)(e, 'synthetics_default_settings_read')}`);
199
- }
200
- });
201
- exports.getOrgSettings = getOrgSettings;
202
- const isResultSkippedBySelectiveRerun = (result) => {
203
- var _a;
204
- return ((_a = result.selectiveRerun) === null || _a === void 0 ? void 0 : _a.decision) === 'skip';
205
- };
206
- exports.isResultSkippedBySelectiveRerun = isResultSkippedBySelectiveRerun;
207
- const createInitialSummary = () => ({
208
- criticalErrors: 0,
209
- expected: 0,
210
- failed: 0,
211
- failedNonBlocking: 0,
212
- passed: 0,
213
- previouslyPassed: 0,
214
- skipped: 0,
215
- testsNotFound: new Set(),
216
- testsNotAuthorized: new Set(),
217
- timedOut: 0,
218
- });
219
- exports.createInitialSummary = createInitialSummary;
220
- const getReporter = (reporters) => ({
221
- error: (error) => {
222
- for (const reporter of reporters) {
223
- if (typeof reporter.error === 'function') {
224
- reporter.error(error);
225
- }
226
- }
227
- },
228
- initErrors: (errors) => {
229
- for (const reporter of reporters) {
230
- if (typeof reporter.initErrors === 'function') {
231
- reporter.initErrors(errors);
232
- }
233
- }
234
- },
235
- log: (log) => {
236
- for (const reporter of reporters) {
237
- if (typeof reporter.log === 'function') {
238
- reporter.log(log);
239
- }
240
- }
241
- },
242
- reportStart: (timings) => {
243
- for (const reporter of reporters) {
244
- if (typeof reporter.reportStart === 'function') {
245
- reporter.reportStart(timings);
246
- }
247
- }
248
- },
249
- resultEnd: (result, baseUrl, batchId) => {
250
- for (const reporter of reporters) {
251
- if (typeof reporter.resultEnd === 'function') {
252
- reporter.resultEnd(result, baseUrl, batchId);
253
- }
254
- }
255
- },
256
- resultReceived: (result) => {
257
- for (const reporter of reporters) {
258
- if (typeof reporter.resultReceived === 'function') {
259
- reporter.resultReceived(result);
260
- }
261
- }
262
- },
263
- dryRunEnd: (summary, testPlan, config, orgSettings) => {
264
- for (const reporter of reporters) {
265
- if (typeof reporter.dryRunEnd === 'function') {
266
- reporter.dryRunEnd(summary, testPlan, config, orgSettings);
267
- }
268
- }
269
- },
270
- runEnd: (summary, baseUrl, orgSettings) => {
271
- for (const reporter of reporters) {
272
- if (typeof reporter.runEnd === 'function') {
273
- reporter.runEnd(summary, baseUrl, orgSettings);
274
- }
275
- }
276
- },
277
- testTrigger: (test, testId, executionRule, testOverrides) => {
278
- for (const reporter of reporters) {
279
- if (typeof reporter.testTrigger === 'function') {
280
- reporter.testTrigger(test, testId, executionRule, testOverrides);
281
- }
282
- }
283
- },
284
- testWait: (test) => {
285
- for (const reporter of reporters) {
286
- if (typeof reporter.testWait === 'function') {
287
- reporter.testWait(test);
288
- }
289
- }
290
- },
291
- testsWait: (tests, baseUrl, batchId, skippedCount) => {
292
- for (const reporter of reporters) {
293
- if (typeof reporter.testsWait === 'function') {
294
- reporter.testsWait(tests, baseUrl, batchId, skippedCount);
295
- }
296
- }
297
- },
298
- });
299
- exports.getReporter = getReporter;
300
- const isDeviceIdSet = (result) => 'device' in result && result.device !== undefined;
301
- exports.isDeviceIdSet = isDeviceIdSet;
302
- const fetchTest = (publicId, config) => __awaiter(void 0, void 0, void 0, function* () {
303
- const api = (0, api_1.getApiHelper)(config);
304
- return api.getTest(publicId);
305
- });
306
- exports.fetchTest = fetchTest;
307
- const retry = (func, shouldRetryAfterWait) => __awaiter(void 0, void 0, void 0, function* () {
308
- const trier = (retries = 0) => __awaiter(void 0, void 0, void 0, function* () {
309
- try {
310
- return yield func();
311
- }
312
- catch (e) {
313
- const waiter = shouldRetryAfterWait(retries, e);
314
- if (waiter) {
315
- yield (0, internal_1.wait)(waiter);
316
- return trier(retries + 1);
317
- }
318
- throw e;
319
- }
320
- });
321
- return trier();
322
- });
323
- exports.retry = retry;
324
- const getAppBaseURL = ({ datadogSite, subdomain }) => {
325
- return (0, app_1.getCommonAppBaseURL)(datadogSite, subdomain);
326
- };
327
- exports.getAppBaseURL = getAppBaseURL;
328
- const getBatchUrl = (baseUrl, batchId) => `${baseUrl}synthetics/explorer/ci?batchResultId=${batchId}`;
329
- exports.getBatchUrl = getBatchUrl;
330
- const getResultUrl = (baseUrl, test, resultId, batchId) => {
331
- const ciQueryParam = `batch_id=${batchId}&from_ci=true`;
332
- const testDetailUrl = `${baseUrl}synthetics/details/${test.public_id}`;
333
- if (test.type === 'browser') {
334
- return `${testDetailUrl}/result/${resultId}?${ciQueryParam}`;
335
- }
336
- return `${testDetailUrl}?resultId=${resultId}&${ciQueryParam}`;
337
- };
338
- exports.getResultUrl = getResultUrl;
339
- /**
340
- * Sort results with the following rules:
341
- * - Passed results come first
342
- * - Then non-blocking failed results
343
- * - And finally failed results
344
- */
345
- const sortResultsByOutcome = () => {
346
- const outcomeWeight = {
347
- ["previously-passed" /* ResultOutcome.PreviouslyPassed */]: 1,
348
- ["passed-non-blocking" /* ResultOutcome.PassedNonBlocking */]: 2,
349
- ["passed" /* ResultOutcome.Passed */]: 3,
350
- ["failed-non-blocking" /* ResultOutcome.FailedNonBlocking */]: 4,
351
- ["failed" /* ResultOutcome.Failed */]: 5,
352
- };
353
- return (r1, r2) => outcomeWeight[(0, exports.getResultOutcome)(r1)] - outcomeWeight[(0, exports.getResultOutcome)(r2)];
354
- };
355
- exports.sortResultsByOutcome = sortResultsByOutcome;
356
- const renderResults = ({ config, orgSettings, reporter, results, startTime, summary, }) => {
357
- reporter.reportStart({ startTime });
358
- if (!config.failOnTimeout) {
359
- if (!summary.timedOut) {
360
- summary.timedOut = 0;
361
- }
362
- }
363
- if (!config.failOnCriticalErrors) {
364
- if (!summary.criticalErrors) {
365
- summary.criticalErrors = 0;
366
- }
367
- }
368
- for (const result of results) {
369
- if (!config.failOnTimeout && result.timedOut) {
370
- summary.timedOut++;
371
- }
372
- if ((0, internal_1.hasDefinedResult)(result) && result.result.unhealthy && !config.failOnCriticalErrors) {
373
- summary.criticalErrors++;
374
- }
375
- const resultOutcome = (0, exports.getResultOutcome)(result);
376
- if (result.executionRule !== interfaces_1.ExecutionRule.SKIPPED || resultOutcome === "previously-passed" /* ResultOutcome.PreviouslyPassed */) {
377
- summary.expected++;
378
- }
379
- if (["passed" /* ResultOutcome.Passed */, "passed-non-blocking" /* ResultOutcome.PassedNonBlocking */].includes(resultOutcome)) {
380
- summary.passed++;
381
- }
382
- else if (resultOutcome === "previously-passed" /* ResultOutcome.PreviouslyPassed */) {
383
- summary.passed++;
384
- summary.previouslyPassed++;
385
- }
386
- else if (resultOutcome === "failed-non-blocking" /* ResultOutcome.FailedNonBlocking */) {
387
- summary.failedNonBlocking++;
388
- }
389
- else {
390
- summary.failed++;
391
- }
392
- }
393
- reporter.runEnd(summary, (0, exports.getAppBaseURL)(config), orgSettings);
394
- };
395
- exports.renderResults = renderResults;
396
- const reportExitLogs = (reporter, config, { results, error }) => {
397
- if (!config.failOnTimeout && (results === null || results === void 0 ? void 0 : results.some((result) => result.timedOut))) {
398
- reporter.error(chalk_1.default.yellow('Because `failOnTimeout` is disabled, the command will succeed. ' +
399
- 'Use `failOnTimeout: true` to make it fail instead.\n'));
400
- }
401
- if (!config.failOnCriticalErrors && error instanceof errors_1.CriticalError) {
402
- reporter.error(chalk_1.default.yellow('Because `failOnCriticalErrors` is not set or disabled, the command will succeed. ' +
403
- 'Use `failOnCriticalErrors: true` to make it fail instead.\n'));
404
- }
405
- if (error instanceof errors_1.CiError) {
406
- (0, exports.reportCiError)(error, reporter);
407
- }
408
- };
409
- exports.reportExitLogs = reportExitLogs;
410
- const getExitReason = (config, { results, error }) => {
411
- if (results === null || results === void 0 ? void 0 : results.some((result) => (0, exports.getResultOutcome)(result) === "failed" /* ResultOutcome.Failed */)) {
412
- return 'failing-tests';
413
- }
414
- if (error instanceof errors_1.CiError) {
415
- // Make the CI fail if something outside was changed, leading to missing tests. For example:
416
- // - a search query starts returning no results because somebody changed some tags
417
- // - an explicitly listed test was deleted
418
- // - some tests can't be read or written to because of permissions
419
- if (config.failOnMissingTests && ['NO_TESTS_TO_RUN', 'MISSING_TESTS', 'UNAUTHORIZED_TESTS'].includes(error.code)) {
420
- return 'missing-tests';
421
- }
422
- if (error instanceof errors_1.CriticalError) {
423
- if (config.failOnCriticalErrors) {
424
- return 'critical-error';
425
- }
426
- }
427
- }
428
- return 'passed';
429
- };
430
- exports.getExitReason = getExitReason;
431
- const toExitCode = (reason) => {
432
- return reason === 'passed' ? 0 : 1;
433
- };
434
- exports.toExitCode = toExitCode;
435
- const getDatadogHost = (hostConfig) => {
436
- const { useIntake, apiVersion, config } = hostConfig;
437
- const apiPath = (() => {
438
- switch (apiVersion) {
439
- case 'v1':
440
- return 'api/v1';
441
- case 'v2':
442
- return 'api/v2';
443
- case 'unstable':
444
- return 'api/unstable';
445
- default:
446
- return 'api/unstable';
447
- }
448
- })();
449
- let host = `https://api.${config.datadogSite}`;
450
- const hostOverride = process_1.default.env.DD_API_HOST_OVERRIDE;
451
- if (hostOverride) {
452
- host = hostOverride;
453
- }
454
- else if (useIntake && (config.datadogSite === 'datadoghq.com' || config.datadogSite === 'datad0g.com')) {
455
- host = `https://intake.synthetics.${config.datadogSite}`;
456
- }
457
- return `${host}/${apiPath}`;
458
- };
459
- exports.getDatadogHost = getDatadogHost;
460
- const pluralize = (word, count) => (count === 1 ? word : `${word}s`);
461
- exports.pluralize = pluralize;
462
- const reportCiError = (error, reporter) => {
463
- switch (error.code) {
464
- case 'NO_TESTS_TO_RUN':
465
- reporter.error(`\n${chalk_1.default.bgRed.bold(' ERROR: No tests to run ')}\n${error.message}\n\n`);
466
- break;
467
- case 'MISSING_TESTS':
468
- reporter.error(`\n${chalk_1.default.bgRed.bold(' ERROR: some tests are missing ')}\n${error.message}\n\n`);
469
- break;
470
- case 'UNAUTHORIZED_TESTS':
471
- reporter.error(`\n${chalk_1.default.bgRed.bold(' ERROR: missing read or write access to some tests ')}\n${error.message}\n\n`);
472
- break;
473
- // Critical command errors
474
- case 'AUTHORIZATION_ERROR':
475
- reporter.error(`\n${chalk_1.default.bgRed.bold(' ERROR: authorization error ')}\n${error.message}\n\n`);
476
- reporter.log('Credentials refused, make sure `apiKey`, `appKey` and `datadogSite` are correct.\n');
477
- break;
478
- case 'INVALID_CONFIG':
479
- reporter.error(`\n${chalk_1.default.bgRed.bold(' ERROR: invalid config ')}\n${error.message}\n\n`);
480
- break;
481
- case 'MISSING_APP_KEY':
482
- reporter.error(`Missing ${chalk_1.default.red.bold('DATADOG_APP_KEY')} or ${chalk_1.default.red.bold('DD_APP_KEY')} in your environment.\n`);
483
- break;
484
- case 'MISSING_API_KEY':
485
- reporter.error(`Missing ${chalk_1.default.red.bold('DATADOG_API_KEY')} or ${chalk_1.default.red.bold('DD_API_KEY')} in your environment.\n`);
486
- break;
487
- case 'POLL_RESULTS_FAILED':
488
- reporter.error(`\n${chalk_1.default.bgRed.bold(' ERROR: unable to poll test results ')}\n${error.message}\n\n`);
489
- break;
490
- case 'BATCH_TIMEOUT_RUNAWAY':
491
- reporter.error(`\n${chalk_1.default.bgRed.bold(' ERROR: batch timeout runaway ')}\n${error.message}\n\n`);
492
- break;
493
- case 'TUNNEL_START_FAILED':
494
- reporter.error(`\n${chalk_1.default.bgRed.bold(' ERROR: unable to start tunnel ')}\n${error.message}\n\n`);
495
- break;
496
- case 'TOO_MANY_TESTS_TO_TRIGGER':
497
- reporter.error(`\n${chalk_1.default.bgRed.bold(' ERROR: too many tests to trigger ')}\n${error.message}\n\n`);
498
- break;
499
- case 'TRIGGER_TESTS_FAILED':
500
- reporter.error(`\n${chalk_1.default.bgRed.bold(' ERROR: unable to trigger tests ')}\n${error.message}\n\n`);
501
- break;
502
- case 'UNAVAILABLE_TEST_CONFIG':
503
- reporter.error(`\n${chalk_1.default.bgRed.bold(' ERROR: unable to obtain test configurations with search query ')}\n${error.message}\n\n`);
504
- break;
505
- case 'UNAVAILABLE_TUNNEL_CONFIG':
506
- reporter.error(`\n${chalk_1.default.bgRed.bold(' ERROR: unable to get tunnel configuration ')}\n${error.message}\n\n`);
507
- break;
508
- case 'LTD_MULTILOCATORS_UPDATE_FAILED':
509
- reporter.error(`\n${chalk_1.default.bgRed.bold(' ERROR: unable to update multilocators in local test definition')}\n${error.message}\n\n`);
510
- break;
511
- default:
512
- reporter.error(`\n${chalk_1.default.bgRed.bold(' ERROR ')}\n${error.message}\n\n`);
513
- }
514
- };
515
- exports.reportCiError = reportCiError;
516
- const filterTestPlan = (testPlan, initialSummary, predicate) => {
517
- const filteredPlan = testPlan.filter(predicate);
518
- return {
519
- testPlan: filteredPlan,
520
- initialSummary: Object.assign(Object.assign({}, initialSummary), { skipped: filteredPlan.filter((item) => item.executionRule === interfaces_1.ExecutionRule.SKIPPED).length }),
521
- };
522
- };
523
- exports.filterTestPlan = filterTestPlan;
524
- //# sourceMappingURL=public.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/utils/public.ts"],"names":[],"mappings":"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"}