@datadog/datadog-ci 1.6.0 → 1.7.2

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 (47) hide show
  1. package/README.md +4 -0
  2. package/dist/commands/lambda/__tests__/functions/commons.test.js +8 -0
  3. package/dist/commands/lambda/__tests__/functions/commons.test.js.map +1 -1
  4. package/dist/commands/lambda/__tests__/instrument.test.js +22 -0
  5. package/dist/commands/lambda/__tests__/instrument.test.js.map +1 -1
  6. package/dist/commands/lambda/constants.d.ts +2 -0
  7. package/dist/commands/lambda/constants.js +2 -0
  8. package/dist/commands/lambda/constants.js.map +1 -1
  9. package/dist/commands/lambda/functions/commons.d.ts +2 -2
  10. package/dist/commands/synthetics/__tests__/api.test.js +1 -4
  11. package/dist/commands/synthetics/__tests__/api.test.js.map +1 -1
  12. package/dist/commands/synthetics/__tests__/cli.test.js +161 -24
  13. package/dist/commands/synthetics/__tests__/cli.test.js.map +1 -1
  14. package/dist/commands/synthetics/__tests__/fixtures.d.ts +40 -45
  15. package/dist/commands/synthetics/__tests__/fixtures.js +86 -39
  16. package/dist/commands/synthetics/__tests__/fixtures.js.map +1 -1
  17. package/dist/commands/synthetics/__tests__/reporters/default.test.js +159 -2
  18. package/dist/commands/synthetics/__tests__/reporters/default.test.js.map +1 -1
  19. package/dist/commands/synthetics/__tests__/reporters/junit.test.js +16 -15
  20. package/dist/commands/synthetics/__tests__/reporters/junit.test.js.map +1 -1
  21. package/dist/commands/synthetics/__tests__/run-test.test.js +37 -22
  22. package/dist/commands/synthetics/__tests__/run-test.test.js.map +1 -1
  23. package/dist/commands/synthetics/__tests__/utils.test.js +139 -118
  24. package/dist/commands/synthetics/__tests__/utils.test.js.map +1 -1
  25. package/dist/commands/synthetics/api.d.ts +13 -2
  26. package/dist/commands/synthetics/api.js.map +1 -1
  27. package/dist/commands/synthetics/command.d.ts +7 -1
  28. package/dist/commands/synthetics/command.js +41 -51
  29. package/dist/commands/synthetics/command.js.map +1 -1
  30. package/dist/commands/synthetics/errors.d.ts +2 -2
  31. package/dist/commands/synthetics/errors.js +4 -4
  32. package/dist/commands/synthetics/errors.js.map +1 -1
  33. package/dist/commands/synthetics/interfaces.d.ts +29 -28
  34. package/dist/commands/synthetics/interfaces.js.map +1 -1
  35. package/dist/commands/synthetics/reporters/default.d.ts +4 -4
  36. package/dist/commands/synthetics/reporters/default.js +67 -71
  37. package/dist/commands/synthetics/reporters/default.js.map +1 -1
  38. package/dist/commands/synthetics/reporters/junit.d.ts +2 -3
  39. package/dist/commands/synthetics/reporters/junit.js +47 -53
  40. package/dist/commands/synthetics/reporters/junit.js.map +1 -1
  41. package/dist/commands/synthetics/run-test.d.ts +15 -8
  42. package/dist/commands/synthetics/run-test.js +19 -12
  43. package/dist/commands/synthetics/run-test.js.map +1 -1
  44. package/dist/commands/synthetics/utils.d.ts +18 -13
  45. package/dist/commands/synthetics/utils.js +86 -50
  46. package/dist/commands/synthetics/utils.js.map +1 -1
  47. package/package.json +3 -3
@@ -59,11 +59,9 @@ class RunTestCommand extends clipanion_1.Command {
59
59
  }
60
60
  let results;
61
61
  let summary;
62
- let tests;
63
- let triggers;
64
62
  try {
65
63
  ;
66
- ({ results, summary, tests, triggers } = yield run_test_1.executeTests(this.reporter, this.config));
64
+ ({ results, summary } = yield run_test_1.executeTests(this.reporter, this.config));
67
65
  }
68
66
  catch (error) {
69
67
  if (error instanceof errors_1.CiError) {
@@ -80,56 +78,49 @@ class RunTestCommand extends clipanion_1.Command {
80
78
  }
81
79
  return 0;
82
80
  }
83
- return this.renderResults(results, summary, tests, triggers, startTime);
81
+ return this.renderResults(results, summary, startTime);
84
82
  });
85
83
  }
86
84
  getAppBaseURL() {
87
85
  return `https://${this.config.subdomain}.${this.config.datadogSite}/`;
88
86
  }
89
- renderResults(results, summary, tests, triggers, startTime) {
90
- var _a, _b, _c, _d;
91
- // Sort tests to show success first then non blocking failures and finally blocking failures.
92
- tests.sort(this.sortTestsByOutcome(results));
87
+ renderResults(results, summary, startTime) {
88
+ var _a, _b, _c;
93
89
  // Rendering the results.
94
90
  (_a = this.reporter) === null || _a === void 0 ? void 0 : _a.reportStart({ startTime });
95
- const locationNames = triggers.locations.reduce((mapping, location) => {
96
- mapping[location.id] = location.display_name;
97
- return mapping;
98
- }, {});
91
+ if (!this.config.failOnTimeout) {
92
+ if (!summary.timedOut) {
93
+ summary.timedOut = 0;
94
+ }
95
+ }
96
+ if (!this.config.failOnCriticalErrors) {
97
+ if (!summary.criticalErrors) {
98
+ summary.criticalErrors = 0;
99
+ }
100
+ }
99
101
  let hasSucceeded = true; // Determine if all the tests have succeeded
100
- for (const test of tests) {
101
- const testResults = results[test.public_id];
102
- if (!this.config.failOnTimeout) {
103
- if (!summary.timedOut) {
104
- summary.timedOut = 0;
105
- }
106
- const hasTimeout = testResults.some((pollResult) => pollResult.result.error === interfaces_1.ERRORS.TIMEOUT);
107
- if (hasTimeout) {
108
- summary.timedOut++;
109
- }
102
+ const sortedResults = results.sort(this.sortResultsByOutcome());
103
+ for (const result of sortedResults) {
104
+ if (!this.config.failOnTimeout && result.result.error === interfaces_1.ERRORS.TIMEOUT) {
105
+ summary.timedOut++;
110
106
  }
111
- if (!this.config.failOnCriticalErrors) {
112
- if (!summary.criticalErrors) {
113
- summary.criticalErrors = 0;
114
- }
115
- const hasCriticalErrors = testResults.some((pollResult) => utils_2.isCriticalError(pollResult.result));
116
- if (hasCriticalErrors) {
117
- summary.criticalErrors++;
118
- }
107
+ if (!this.config.failOnCriticalErrors && utils_2.isCriticalError(result.result)) {
108
+ summary.criticalErrors++;
119
109
  }
120
- const passed = utils_2.hasTestSucceeded(testResults, this.config.failOnCriticalErrors, this.config.failOnTimeout);
121
- if (passed) {
110
+ const resultOutcome = utils_2.getResultOutcome(result);
111
+ if (["passed" /* Passed */, "passed-non-blocking" /* PassedNonBlocking */].includes(resultOutcome)) {
122
112
  summary.passed++;
123
113
  }
114
+ else if (resultOutcome === "failed-non-blocking" /* FailedNonBlocking */) {
115
+ summary.failedNonBlocking++;
116
+ }
124
117
  else {
125
118
  summary.failed++;
126
- if (((_b = test.options.ci) === null || _b === void 0 ? void 0 : _b.executionRule) !== interfaces_1.ExecutionRule.NON_BLOCKING) {
127
- hasSucceeded = false;
128
- }
119
+ hasSucceeded = false;
129
120
  }
130
- (_c = this.reporter) === null || _c === void 0 ? void 0 : _c.testEnd(test, testResults, this.getAppBaseURL(), locationNames, this.config.failOnCriticalErrors, this.config.failOnTimeout);
121
+ (_b = this.reporter) === null || _b === void 0 ? void 0 : _b.resultEnd(result, this.getAppBaseURL());
131
122
  }
132
- (_d = this.reporter) === null || _d === void 0 ? void 0 : _d.runEnd(summary);
123
+ (_c = this.reporter) === null || _c === void 0 ? void 0 : _c.runEnd(summary);
133
124
  return hasSucceeded ? 0 : 1;
134
125
  }
135
126
  reportCiError(error, reporter) {
@@ -213,21 +204,20 @@ class RunTestCommand extends clipanion_1.Command {
213
204
  }
214
205
  });
215
206
  }
216
- sortTestsByOutcome(results) {
217
- return (t1, t2) => {
218
- var _a, _b;
219
- const success1 = utils_2.hasTestSucceeded(results[t1.public_id], this.config.failOnCriticalErrors, this.config.failOnTimeout);
220
- const success2 = utils_2.hasTestSucceeded(results[t2.public_id], this.config.failOnCriticalErrors, this.config.failOnTimeout);
221
- const isNonBlockingTest1 = ((_a = t1.options.ci) === null || _a === void 0 ? void 0 : _a.executionRule) === interfaces_1.ExecutionRule.NON_BLOCKING;
222
- const isNonBlockingTest2 = ((_b = t2.options.ci) === null || _b === void 0 ? void 0 : _b.executionRule) === interfaces_1.ExecutionRule.NON_BLOCKING;
223
- if (success1 === success2) {
224
- if (isNonBlockingTest1 === isNonBlockingTest2) {
225
- return 0;
226
- }
227
- return isNonBlockingTest1 ? -1 : 1;
228
- }
229
- return success1 ? -1 : 1;
207
+ /**
208
+ * Sort results with the following rules:
209
+ * - Passed results come first
210
+ * - Then non-blocking failed results
211
+ * - And finally failed results
212
+ */
213
+ sortResultsByOutcome() {
214
+ const outcomeWeight = {
215
+ ["passed-non-blocking" /* PassedNonBlocking */]: 1,
216
+ ["passed" /* Passed */]: 2,
217
+ ["failed-non-blocking" /* FailedNonBlocking */]: 3,
218
+ ["failed" /* Failed */]: 4,
230
219
  };
220
+ return (r1, r2) => outcomeWeight[utils_2.getResultOutcome(r1)] - outcomeWeight[utils_2.getResultOutcome(r2)];
231
221
  }
232
222
  }
233
223
  exports.RunTestCommand = RunTestCommand;
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/synthetics/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/synthetics/command.ts"],"names":[],"mappings":"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"}
@@ -5,10 +5,10 @@ export declare type CriticalCiErrorCode = typeof criticalErrorCodes[number];
5
5
  export declare type CiErrorCode = NonCriticalCiErrorCode | CriticalCiErrorCode;
6
6
  export declare class CiError extends Error {
7
7
  code: CiErrorCode;
8
- constructor(code: CiErrorCode);
8
+ constructor(code: CiErrorCode, message?: string);
9
9
  }
10
10
  export declare class CriticalError extends CiError {
11
11
  code: CriticalCiErrorCode;
12
- constructor(code: CriticalCiErrorCode);
12
+ constructor(code: CriticalCiErrorCode, message?: string);
13
13
  }
14
14
  export {};
@@ -14,15 +14,15 @@ const criticalErrorCodes = [
14
14
  'UNAVAILABLE_TUNNEL_CONFIG',
15
15
  ];
16
16
  class CiError extends Error {
17
- constructor(code) {
18
- super();
17
+ constructor(code, message) {
18
+ super(message);
19
19
  this.code = code;
20
20
  }
21
21
  }
22
22
  exports.CiError = CiError;
23
23
  class CriticalError extends CiError {
24
- constructor(code) {
25
- super(code);
24
+ constructor(code, message) {
25
+ super(code, message);
26
26
  this.code = code;
27
27
  }
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/commands/synthetics/errors.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AACzC,MAAM,qBAAqB,GAAG,CAAC,iBAAiB,EAAE,oBAAoB,CAAU,CAAA;AAGhF,MAAM,kBAAkB,GAAG;IACzB,qBAAqB;IACrB,iBAAiB;IACjB,iBAAiB;IACjB,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,yBAAyB;IACzB,2BAA2B;CACnB,CAAA;AAKV,MAAa,OAAQ,SAAQ,KAAK;IAChC,YAAmB,IAAiB;QAClC,KAAK,EAAE,CAAA;QADU,SAAI,GAAJ,IAAI,CAAa;IAEpC,CAAC;CACF;AAJD,0BAIC;AAED,MAAa,aAAc,SAAQ,OAAO;IACxC,YAAmB,IAAyB;QAC1C,KAAK,CAAC,IAAI,CAAC,CAAA;QADM,SAAI,GAAJ,IAAI,CAAqB;IAE5C,CAAC;CACF;AAJD,sCAIC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/commands/synthetics/errors.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AACzC,MAAM,qBAAqB,GAAG,CAAC,iBAAiB,EAAE,oBAAoB,CAAU,CAAA;AAGhF,MAAM,kBAAkB,GAAG;IACzB,qBAAqB;IACrB,iBAAiB;IACjB,iBAAiB;IACjB,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,yBAAyB;IACzB,2BAA2B;CACnB,CAAA;AAKV,MAAa,OAAQ,SAAQ,KAAK;IAChC,YAAmB,IAAiB,EAAE,OAAgB;QACpD,KAAK,CAAC,OAAO,CAAC,CAAA;QADG,SAAI,GAAJ,IAAI,CAAa;IAEpC,CAAC;CACF;AAJD,0BAIC;AAED,MAAa,aAAc,SAAQ,OAAO;IACxC,YAAmB,IAAyB,EAAE,OAAgB;QAC5D,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QADH,SAAI,GAAJ,IAAI,CAAqB;IAE5C,CAAC;CACF;AAJD,sCAIC"}
@@ -9,9 +9,9 @@ export interface MainReporter {
9
9
  reportStart(timings: {
10
10
  startTime: number;
11
11
  }): void;
12
+ resultEnd(result: Result, baseUrl: string): void;
13
+ resultReceived(result: Result): void;
12
14
  runEnd(summary: Summary): void;
13
- testEnd(test: Test, results: PollResult[], baseUrl: string, locationNames: LocationsMapping, failOnCriticalErrors: boolean, failOnTimeout: boolean): void;
14
- testResult(triggerResponse: TriggerResponse, result: PollResult): void;
15
15
  testsWait(tests: Test[]): void;
16
16
  testTrigger(test: Test, testId: string, executionRule: ExecutionRule, config: ConfigOverride): void;
17
17
  testWait(test: Test): void;
@@ -22,7 +22,7 @@ export declare enum ERRORS {
22
22
  TUNNEL = "Tunnel Failure"
23
23
  }
24
24
  export declare type Reporter = Partial<MainReporter>;
25
- export interface TestResult {
25
+ export interface BaseServerResult {
26
26
  error?: string;
27
27
  errorCode?: string;
28
28
  errorMessage?: string;
@@ -32,10 +32,9 @@ export interface TestResult {
32
32
  message: string;
33
33
  };
34
34
  passed: boolean;
35
- tunnel?: boolean;
36
35
  unhealthy?: boolean;
37
36
  }
38
- export interface BrowserTestResult extends TestResult {
37
+ export interface BrowserServerResult extends BaseServerResult {
39
38
  device: {
40
39
  height: number;
41
40
  id: string;
@@ -51,7 +50,7 @@ interface AssertionResult {
51
50
  expected?: any;
52
51
  valid: boolean;
53
52
  }
54
- export interface ApiTestResult extends TestResult {
53
+ export interface ApiServerResult extends BaseServerResult {
55
54
  assertionResults: AssertionResult[];
56
55
  timings: {
57
56
  total: number;
@@ -72,19 +71,33 @@ export interface MultiStep {
72
71
  total: number;
73
72
  };
74
73
  }
75
- export interface MultiStepsTestResult extends TestResult {
74
+ export interface MultiStepsServerResult extends BaseServerResult {
76
75
  duration: number;
77
76
  steps: MultiStep[];
78
77
  }
79
- export declare type Result = BrowserTestResult | ApiTestResult | MultiStepsTestResult;
78
+ export declare type ServerResult = BrowserServerResult | ApiServerResult | MultiStepsServerResult;
79
+ interface Enrichment {
80
+ batch_id: string;
81
+ config_override: ConfigOverride & {
82
+ executionRule: ExecutionRule;
83
+ };
84
+ }
80
85
  export interface PollResult {
81
- check?: Test;
82
- check_id?: string;
83
- dc_id: number;
84
- result: Result;
86
+ check: Pick<Test, 'config' | 'subtype' | 'type'>;
87
+ enrichment?: Partial<Enrichment>;
88
+ result: ServerResult;
85
89
  resultID: string;
86
90
  timestamp: number;
87
91
  }
92
+ export interface Result {
93
+ enrichment?: Partial<Enrichment>;
94
+ location: string;
95
+ passed: boolean;
96
+ result: ServerResult;
97
+ resultId: string;
98
+ test: Test;
99
+ timestamp: number;
100
+ }
88
101
  export interface Vitals {
89
102
  cls?: number;
90
103
  lcp?: number;
@@ -115,7 +128,7 @@ export interface Step {
115
128
  type: string;
116
129
  }[];
117
130
  }
118
- export interface Test {
131
+ export interface ServerTest {
119
132
  config: {
120
133
  assertions: Assertion[];
121
134
  request: {
@@ -146,7 +159,7 @@ export interface Test {
146
159
  ci?: {
147
160
  executionRule: ExecutionRule;
148
161
  };
149
- device_ids: string[];
162
+ device_ids?: string[];
150
163
  min_failure_duration: number;
151
164
  min_location_failed: number;
152
165
  tick_every: number;
@@ -160,7 +173,7 @@ export interface Test {
160
173
  tags: string[];
161
174
  type: string;
162
175
  }
163
- export interface InternalTest extends Test {
176
+ export interface Test extends ServerTest {
164
177
  suite?: string;
165
178
  }
166
179
  export interface Assertion {
@@ -206,7 +219,6 @@ export interface TriggerResponse {
206
219
  }
207
220
  export interface TriggerResult extends TriggerResponse {
208
221
  pollingTimeout: number;
209
- result?: PollResult;
210
222
  }
211
223
  export interface Location {
212
224
  display_name: string;
@@ -221,7 +233,6 @@ export interface LocationsMapping {
221
233
  export interface Trigger {
222
234
  locations: Location[];
223
235
  results: TriggerResponse[];
224
- triggered_check_ids: string[];
225
236
  }
226
237
  export interface RetryConfig {
227
238
  count: number;
@@ -299,6 +310,7 @@ export interface Suite {
299
310
  export interface Summary {
300
311
  criticalErrors: number;
301
312
  failed: number;
313
+ failedNonBlocking: number;
302
314
  passed: number;
303
315
  skipped: number;
304
316
  testsNotFound: Set<string>;
@@ -309,17 +321,6 @@ export interface TestSearchResult {
309
321
  public_id: string;
310
322
  }[];
311
323
  }
312
- export interface APIHelper {
313
- getPresignedURL(testIds: string[]): Promise<{
314
- url: string;
315
- }>;
316
- getTest(testId: string): Promise<Test>;
317
- pollResults(resultIds: string[]): Promise<{
318
- results: PollResult[];
319
- }>;
320
- searchTests(query: string): Promise<TestSearchResult>;
321
- triggerTests(payload: Payload): Promise<Trigger>;
322
- }
323
324
  export interface APIConfiguration {
324
325
  apiKey: string;
325
326
  appKey: string;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/commands/synthetics/interfaces.ts"],"names":[],"mappings":";;;AAwBA,IAAY,MAIX;AAJD,WAAY,MAAM;IAChB,6BAAmB,CAAA;IACnB,uCAA6B,CAAA;IAC7B,mCAAyB,CAAA;AAC3B,CAAC,EAJW,MAAM,GAAN,cAAM,KAAN,cAAM,QAIjB;AAoKD,IAAY,QAeX;AAfD,WAAY,QAAQ;IAClB,iCAAqB,CAAA;IACrB,6CAAiC,CAAA;IACjC,qBAAS,CAAA;IACT,2BAAe,CAAA;IACf,yCAA6B,CAAA;IAC7B,yCAA6B,CAAA;IAC7B,iCAAqB,CAAA;IACrB,+CAAmC,CAAA;IACnC,iCAAqB,CAAA;IACrB,+CAAmC,CAAA;IACnC,+BAAmB,CAAA;IACnB,yCAA6B,CAAA;IAC7B,mDAAuC,CAAA;IACvC,6CAAiC,CAAA;AACnC,CAAC,EAfW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAenB;AAqGD,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,sCAAqB,CAAA;IACrB,8CAA6B,CAAA;IAC7B,oCAAmB,CAAA;AACrB,CAAC,EAJW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAIxB"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/commands/synthetics/interfaces.ts"],"names":[],"mappings":";;;AAiBA,IAAY,MAIX;AAJD,WAAY,MAAM;IAChB,6BAAmB,CAAA;IACnB,uCAA6B,CAAA;IAC7B,mCAAyB,CAAA;AAC3B,CAAC,EAJW,MAAM,GAAN,cAAM,KAAN,cAAM,QAIjB;AAmLD,IAAY,QAeX;AAfD,WAAY,QAAQ;IAClB,iCAAqB,CAAA;IACrB,6CAAiC,CAAA;IACjC,qBAAS,CAAA;IACT,2BAAe,CAAA;IACf,yCAA6B,CAAA;IAC7B,yCAA6B,CAAA;IAC7B,iCAAqB,CAAA;IACrB,+CAAmC,CAAA;IACnC,iCAAqB,CAAA;IACrB,+CAAmC,CAAA;IACnC,+BAAmB,CAAA;IACnB,yCAA6B,CAAA;IAC7B,mDAAuC,CAAA;IACvC,6CAAiC,CAAA;AACnC,CAAC,EAfW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAenB;AAmGD,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,sCAAqB,CAAA;IACrB,8CAA6B,CAAA;IAC7B,oCAAmB,CAAA;AACrB,CAAC,EAJW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAIxB"}
@@ -1,5 +1,5 @@
1
1
  import { BaseContext } from 'clipanion';
2
- import { ConfigOverride, ExecutionRule, LocationsMapping, MainReporter, PollResult, Summary, Test, TriggerResponse } from '../interfaces';
2
+ import { ConfigOverride, ExecutionRule, MainReporter, Result, Summary, Test } from '../interfaces';
3
3
  export declare class DefaultReporter implements MainReporter {
4
4
  private write;
5
5
  constructor({ context }: {
@@ -11,10 +11,10 @@ export declare class DefaultReporter implements MainReporter {
11
11
  reportStart(timings: {
12
12
  startTime: number;
13
13
  }): void;
14
+ resultEnd(result: Result, baseUrl: string): void;
15
+ resultReceived(result: Result): void;
14
16
  runEnd(summary: Summary): void;
15
- testEnd(test: Test, results: PollResult[], baseUrl: string, locationNames: LocationsMapping, failOnCriticalErrors: boolean, failOnTimeout: boolean): void;
16
- testResult(response: TriggerResponse, result: PollResult): void;
17
17
  testsWait(tests: Test[]): void;
18
- testTrigger(test: Test, testId: string, executionRule: ExecutionRule, config: ConfigOverride): void;
18
+ testTrigger(test: Pick<Test, 'name'>, testId: string, executionRule: ExecutionRule, config: ConfigOverride): void;
19
19
  testWait(test: Test): void;
20
20
  }
@@ -23,6 +23,7 @@ const renderStepDuration = (duration) => {
23
23
  };
24
24
  const ICONS = {
25
25
  FAILED: chalk_1.default.bold.red('✖'),
26
+ FAILED_NON_BLOCKING: chalk_1.default.bold.yellow('✖'),
26
27
  SKIPPED: chalk_1.default.bold.yellow('⇢'),
27
28
  SUCCESS: chalk_1.default.bold.green('✓'),
28
29
  };
@@ -38,8 +39,8 @@ const renderStepIcon = (step) => {
38
39
  const renderStep = (step) => {
39
40
  const duration = renderStepDuration(step.duration);
40
41
  const icon = renderStepIcon(step);
41
- const value = step.value ? `\n ${chalk_1.default.dim(step.value)}` : '';
42
- const error = step.error ? `\n ${chalk_1.default.red.dim(step.error)}` : '';
42
+ const value = step.value ? `\n ${chalk_1.default.dim(step.value)}` : '';
43
+ const error = step.error ? `\n ${chalk_1.default.red.dim(step.error)}` : '';
43
44
  return ` ${icon} | ${duration} - ${step.description}${value}${error}`;
44
45
  };
45
46
  const readableOperation = {
@@ -62,32 +63,32 @@ const renderApiError = (errorCode, errorMessage, color) => {
62
63
  if (errorCode === 'INCORRECT_ASSERTION') {
63
64
  try {
64
65
  const assertionsErrors = JSON.parse(errorMessage);
65
- const output = [' - Assertion(s) failed:'];
66
+ const output = [' - Assertion(s) failed:'];
66
67
  output.push(...assertionsErrors.map((error) => {
67
68
  const expected = chalk_1.default.underline(`${error.target}`);
68
69
  const actual = chalk_1.default.underline(`${error.actual}`);
69
70
  return `▶ ${error.type} ${readableOperation[error.operator]} ${expected}. Actual: ${actual}`;
70
71
  }));
71
- return color(output.join('\n '));
72
+ return color(output.join('\n '));
72
73
  }
73
74
  catch (e) {
74
75
  // JSON parsing failed, do nothing to return the raw error
75
76
  }
76
77
  }
77
- return chalk_1.default.red(` [${chalk_1.default.bold(errorCode)}] - ${chalk_1.default.dim(errorMessage)}`);
78
+ return chalk_1.default.red(` [${chalk_1.default.bold(errorCode)}] - ${chalk_1.default.dim(errorMessage)}`);
78
79
  };
79
80
  // Test execution rendering
80
- const renderResultOutcome = (result, test, icon, color, failOnCriticalErrors, failOnTimeout) => {
81
+ const renderResultOutcome = (result, test, icon, color) => {
81
82
  // Only display critical errors if failure is not filled.
82
83
  if (result.error && !(result.failure || result.errorMessage)) {
83
- return ` ${chalk_1.default.bold(`${ICONS.FAILED} | ${result.error}`)}`;
84
+ return ` ${chalk_1.default.bold(`${ICONS.FAILED} | ${result.error}`)}`;
84
85
  }
85
86
  if (result.unhealthy) {
86
87
  const errorMessage = result.failure ? result.failure.message : result.errorMessage;
87
88
  const errorName = errorMessage && errorMessage !== 'Unknown error' ? errorMessage : 'General Error';
88
89
  return [
89
- ` ${chalk_1.default.yellow(` ${ICONS.SKIPPED} | ${errorName}`)}`,
90
- ` ${chalk_1.default.yellow('We had an error during the execution of this test. The result will be ignored')}`,
90
+ ` ${chalk_1.default.yellow(`${ICONS.SKIPPED} | ${errorName}`)}`,
91
+ ` ${chalk_1.default.yellow('We had an error during the execution of this test. The result will be ignored')}`,
91
92
  ].join('\n');
92
93
  }
93
94
  if (test.type === 'api') {
@@ -95,12 +96,12 @@ const renderResultOutcome = (result, test, icon, color, failOnCriticalErrors, fa
95
96
  if (result.failure || (result.errorCode && result.errorMessage)) {
96
97
  const errorCode = result.failure ? result.failure.code : result.errorCode;
97
98
  const errorMessage = result.failure ? result.failure.message : result.errorMessage;
98
- return [` ${icon} ${color(requestDescription)}`, renderApiError(errorCode, errorMessage, color)].join('\n');
99
+ return [` ${icon} ${color(requestDescription)}`, renderApiError(errorCode, errorMessage, color)].join('\n');
99
100
  }
100
- return ` ${icon} ${color(requestDescription)}`;
101
+ return ` ${icon} ${color(requestDescription)}`;
101
102
  }
102
103
  if (test.type === 'browser') {
103
- if (!utils_1.hasResultPassed(result, failOnCriticalErrors, failOnTimeout) && 'stepDetails' in result) {
104
+ if (!result.passed && 'stepDetails' in result) {
104
105
  // We render the step only if the test hasn't passed to avoid cluttering the output.
105
106
  return result.stepDetails.map(renderStep).join('\n');
106
107
  }
@@ -143,49 +144,43 @@ const getResultUrl = (baseUrl, test, resultId) => {
143
144
  }
144
145
  return `${testDetailUrl}?resultId=${resultId}&${ciQueryParam}`;
145
146
  };
146
- const renderExecutionResult = (test, execution, baseUrl, locationNames, failOnCriticalErrors, failOnTimeout) => {
147
+ const renderExecutionResult = (test, execution, baseUrl) => {
147
148
  var _a;
148
- const { check: overridedTest, dc_id, resultID, result } = execution;
149
- const isSuccess = utils_1.hasResultPassed(result, failOnCriticalErrors, failOnTimeout);
150
- const color = getTestResultColor(isSuccess, ((_a = test.options.ci) === null || _a === void 0 ? void 0 : _a.executionRule) === interfaces_1.ExecutionRule.NON_BLOCKING);
151
- const icon = isSuccess ? ICONS.SUCCESS : ICONS.FAILED;
152
- const locationName = !!result.tunnel ? 'Tunneled' : locationNames[dc_id] || dc_id.toString();
153
- const device = test.type === 'browser' && 'device' in result ? ` - device: ${chalk_1.default.bold(result.device.id)}` : '';
154
- const resultIdentification = color(` ${icon} location: ${chalk_1.default.bold(locationName)}${device}`);
149
+ const { test: overriddenTest, resultId, result } = execution;
150
+ const resultOutcome = utils_1.getResultOutcome(execution);
151
+ const [icon, setColor] = getResultIconAndColor(resultOutcome);
152
+ const executionRule = utils_1.getExecutionRule(test, (_a = execution.enrichment) === null || _a === void 0 ? void 0 : _a.config_override);
153
+ const executionRuleText = ["passed" /* Passed */, "passed-non-blocking" /* PassedNonBlocking */].includes(resultOutcome)
154
+ ? ''
155
+ : `[${setColor(executionRule === interfaces_1.ExecutionRule.BLOCKING ? 'blocking' : 'non-blocking')}] `;
156
+ const testLabel = `${executionRuleText}[${chalk_1.default.bold.dim(test.public_id)}] ${chalk_1.default.bold(test.name)}`;
157
+ const location = setColor(`location: ${chalk_1.default.bold(execution.location)}`);
158
+ const device = test.type === 'browser' && 'device' in result ? ` - ${setColor(`device: ${chalk_1.default.bold(result.device.id)}`)}` : '';
159
+ const resultIdentification = `${icon} ${testLabel} - ${location}${device}`;
155
160
  const outputLines = [resultIdentification];
156
161
  // Unhealthy test results don't have a duration or result URL
157
162
  if (!result.unhealthy) {
158
163
  const duration = utils_1.getResultDuration(result);
159
- const durationText = duration ? ` total duration: ${duration} ms -` : '';
160
- const resultUrl = getResultUrl(baseUrl, test, resultID);
164
+ const durationText = duration ? ` Total duration: ${duration} ms -` : '';
165
+ const resultUrl = getResultUrl(baseUrl, test, resultId);
161
166
  const resultUrlStatus = result.error === interfaces_1.ERRORS.TIMEOUT ? '(not yet received)' : '';
162
- const resultInfo = ` ⎋${durationText} result url: ${chalk_1.default.dim.cyan(resultUrl)} ${resultUrlStatus}`;
167
+ const resultInfo = ` ⎋${durationText} Result URL: ${chalk_1.default.dim.cyan(resultUrl)} ${resultUrlStatus}`;
163
168
  outputLines.push(resultInfo);
164
169
  }
165
- const resultOutcome = renderResultOutcome(result, overridedTest || test, icon, color, failOnCriticalErrors, failOnTimeout);
166
- if (resultOutcome) {
167
- outputLines.push(resultOutcome);
170
+ const resultOutcomeText = renderResultOutcome(result, overriddenTest || test, icon, setColor);
171
+ if (resultOutcomeText) {
172
+ outputLines.push(resultOutcomeText);
168
173
  }
169
174
  return outputLines.join('\n');
170
175
  };
171
- // Results of all tests rendering
172
- const renderResultIcon = (success, isNonBlocking) => {
173
- if (success) {
174
- return ICONS.SUCCESS;
176
+ const getResultIconAndColor = (resultOutcome) => {
177
+ if (resultOutcome === "passed" /* Passed */ || resultOutcome === "passed-non-blocking" /* PassedNonBlocking */) {
178
+ return [ICONS.SUCCESS, chalk_1.default.bold.green];
175
179
  }
176
- if (isNonBlocking) {
177
- return ICONS.SKIPPED;
178
- }
179
- return ICONS.FAILED;
180
- };
181
- const getTestResultColor = (success, isNonBlocking) => {
182
- if (success) {
183
- return chalk_1.default.bold.green;
184
- }
185
- if (isNonBlocking) {
186
- return chalk_1.default.bold.yellow;
180
+ if (resultOutcome === "failed-non-blocking" /* FailedNonBlocking */) {
181
+ return [ICONS.FAILED_NON_BLOCKING, chalk_1.default.bold.yellow];
187
182
  }
188
- return chalk_1.default.bold.red;
183
+ return [ICONS.FAILED, chalk_1.default.bold.red];
189
184
  };
190
185
  class DefaultReporter {
191
186
  constructor({ context }) {
@@ -204,43 +199,36 @@ class DefaultReporter {
204
199
  const delay = (Date.now() - timings.startTime).toString();
205
200
  this.write(['', chalk_1.default.bold.cyan('=== REPORT ==='), `Took ${chalk_1.default.bold(delay)}ms`, '\n'].join('\n'));
206
201
  }
202
+ resultEnd(result, baseUrl) {
203
+ this.write(renderExecutionResult(result.test, result, baseUrl) + '\n\n');
204
+ }
205
+ resultReceived(result) {
206
+ return;
207
+ }
207
208
  runEnd(summary) {
208
- const summaries = [
209
- chalk_1.default.green(`${chalk_1.default.bold(summary.passed)} passed`),
210
- chalk_1.default.red(`${chalk_1.default.bold(summary.failed)} failed`),
211
- ];
209
+ const { bold: b, gray, green, red, yellow } = chalk_1.default;
210
+ const lines = [];
211
+ const runSummary = [green(`${b(summary.passed)} passed`), red(`${b(summary.failed)} failed`)];
212
+ if (summary.failedNonBlocking) {
213
+ runSummary.push(yellow(`${b(summary.failedNonBlocking)} failed (non-blocking)`));
214
+ }
212
215
  if (summary.skipped) {
213
- summaries.push(`${chalk_1.default.bold(summary.skipped)} skipped`);
216
+ runSummary.push(`${b(summary.skipped)} skipped`);
214
217
  }
215
218
  if (summary.testsNotFound.size > 0) {
216
- const testsNotFoundStr = chalk_1.default.gray(`(${[...summary.testsNotFound].join(', ')})`);
217
- summaries.push(`${chalk_1.default.yellow(`${chalk_1.default.bold(summary.testsNotFound.size)} not found`)} ${testsNotFoundStr}`);
219
+ const testsNotFoundListStr = gray(`(${[...summary.testsNotFound].join(', ')})`);
220
+ lines.push(`${yellow(`${b(summary.testsNotFound.size)} ${pluralize('test', summary.testsNotFound.size)} not found`)} ${testsNotFoundListStr}`);
218
221
  }
219
222
  const extraInfo = [];
220
223
  if (summary.timedOut) {
221
- extraInfo.push(chalk_1.default.yellow(`${chalk_1.default.bold(summary.timedOut)} timed out`));
224
+ extraInfo.push(yellow(`${b(summary.timedOut)} timed out`));
222
225
  }
223
226
  if (summary.criticalErrors) {
224
- extraInfo.push(chalk_1.default.red(`${chalk_1.default.bold(summary.criticalErrors)} critical errors`));
227
+ extraInfo.push(red(`${b(summary.criticalErrors)} critical errors`));
225
228
  }
226
- this.write(`${chalk_1.default.bold('Tests execution summary:')} ${summaries.join(', ')}${extraInfo.length ? ' (' + extraInfo.join(', ') + ')' : ''}\n`);
227
- }
228
- testEnd(test, results, baseUrl, locationNames, failOnCriticalErrors, failOnTimeout) {
229
- var _a;
230
- const success = utils_1.hasTestSucceeded(results, failOnCriticalErrors, failOnTimeout);
231
- const isNonBlocking = ((_a = test.options.ci) === null || _a === void 0 ? void 0 : _a.executionRule) === interfaces_1.ExecutionRule.NON_BLOCKING;
232
- const icon = renderResultIcon(success, isNonBlocking);
233
- const idDisplay = `[${chalk_1.default.bold.dim(test.public_id)}]`;
234
- const nameColor = getTestResultColor(success, isNonBlocking);
235
- const nonBlockingText = !success && isNonBlocking ? '[NON-BLOCKING]' : '';
236
- const testResultsText = results
237
- .map((r) => renderExecutionResult(test, r, baseUrl, locationNames, failOnCriticalErrors, failOnTimeout))
238
- .join('\n\n')
239
- .concat('\n\n');
240
- this.write([`${icon} ${idDisplay}${nonBlockingText} | ${nameColor(test.name)}`, testResultsText].join('\n'));
241
- }
242
- testResult(response, result) {
243
- return;
229
+ const extraInfoStr = extraInfo.length ? ' (' + extraInfo.join(', ') + ')' : '';
230
+ lines.push(`${b('Run summary:')} ${runSummary.join(', ')}${extraInfoStr}\n\n`);
231
+ this.write(lines.join('\n'));
244
232
  }
245
233
  testsWait(tests) {
246
234
  const testsList = tests.map((t) => t.public_id);
@@ -249,7 +237,7 @@ class DefaultReporter {
249
237
  testsList.push('…');
250
238
  }
251
239
  const testsDisplay = chalk_1.default.gray(`(${testsList.join(', ')})`);
252
- this.write(`Waiting for ${chalk_1.default.bold.cyan(tests.length)} test result${tests.length > 1 ? 's' : ''} ${testsDisplay}…\n`);
240
+ this.write(`Waiting for ${chalk_1.default.bold.cyan(tests.length)} test ${pluralize('result', tests.length)} ${testsDisplay}…\n`);
253
241
  }
254
242
  testTrigger(test, testId, executionRule, config) {
255
243
  const idDisplay = `[${chalk_1.default.bold.dim(testId)}]`;
@@ -269,11 +257,19 @@ class DefaultReporter {
269
257
  }
270
258
  return `Found test "${chalk_1.default.green.bold(test.name)}"`;
271
259
  };
272
- this.write(`${idDisplay} ${getMessage()}\n`);
260
+ const getConfigOverridesPart = () => {
261
+ const nbConfigsOverridden = Object.keys(config).length;
262
+ if (nbConfigsOverridden === 0) {
263
+ return '';
264
+ }
265
+ return ' ' + chalk_1.default.gray(`(${nbConfigsOverridden} config ${pluralize('override', nbConfigsOverridden)})`);
266
+ };
267
+ this.write(`${idDisplay} ${getMessage()}${getConfigOverridesPart()}\n`);
273
268
  }
274
269
  testWait(test) {
275
270
  return;
276
271
  }
277
272
  }
278
273
  exports.DefaultReporter = DefaultReporter;
274
+ const pluralize = (word, count) => (count === 1 ? word : `${word}s`);
279
275
  //# sourceMappingURL=default.js.map