@datadog/datadog-ci 2.4.1 → 2.5.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 (185) hide show
  1. package/dist/commands/dsyms/upload.js +2 -1
  2. package/dist/commands/dsyms/upload.js.map +1 -1
  3. package/dist/commands/flutter-symbols/helpers.js +1 -1
  4. package/dist/commands/flutter-symbols/helpers.js.map +1 -1
  5. package/dist/commands/flutter-symbols/upload.js +1 -1
  6. package/dist/commands/flutter-symbols/upload.js.map +1 -1
  7. package/dist/commands/lambda/instrument.js +1 -1
  8. package/dist/commands/lambda/instrument.js.map +1 -1
  9. package/dist/commands/lambda/uninstrument.js +1 -1
  10. package/dist/commands/lambda/uninstrument.js.map +1 -1
  11. package/dist/commands/react-native/upload.js +2 -2
  12. package/dist/commands/react-native/upload.js.map +1 -1
  13. package/dist/commands/react-native/xcode.js +5 -0
  14. package/dist/commands/react-native/xcode.js.map +1 -1
  15. package/dist/commands/synthetics/api.d.ts +2 -1
  16. package/dist/commands/synthetics/api.js +7 -0
  17. package/dist/commands/synthetics/api.js.map +1 -1
  18. package/dist/commands/synthetics/command.js +11 -2
  19. package/dist/commands/synthetics/command.js.map +1 -1
  20. package/dist/commands/synthetics/interfaces.d.ts +4 -1
  21. package/dist/commands/synthetics/reporters/default.d.ts +3 -2
  22. package/dist/commands/synthetics/reporters/default.js +19 -5
  23. package/dist/commands/synthetics/reporters/default.js.map +1 -1
  24. package/dist/commands/synthetics/reporters/junit.d.ts +2 -2
  25. package/dist/commands/synthetics/reporters/junit.js +1 -1
  26. package/dist/commands/synthetics/reporters/junit.js.map +1 -1
  27. package/dist/commands/synthetics/run-test.js +9 -1
  28. package/dist/commands/synthetics/run-test.js.map +1 -1
  29. package/dist/commands/synthetics/utils.d.ts +4 -2
  30. package/dist/commands/synthetics/utils.js +14 -5
  31. package/dist/commands/synthetics/utils.js.map +1 -1
  32. package/dist/helpers/utils.d.ts +2 -2
  33. package/dist/helpers/utils.js +9 -5
  34. package/dist/helpers/utils.js.map +1 -1
  35. package/package.json +3 -3
  36. package/dist/commands/dsyms/__tests__/upload.test.d.ts +0 -1
  37. package/dist/commands/dsyms/__tests__/upload.test.js +0 -297
  38. package/dist/commands/dsyms/__tests__/upload.test.js.map +0 -1
  39. package/dist/commands/dsyms/__tests__/utils.test.d.ts +0 -1
  40. package/dist/commands/dsyms/__tests__/utils.test.js +0 -99
  41. package/dist/commands/dsyms/__tests__/utils.test.js.map +0 -1
  42. package/dist/commands/flutter-symbols/__tests__/upload.test.d.ts +0 -1
  43. package/dist/commands/flutter-symbols/__tests__/upload.test.js +0 -538
  44. package/dist/commands/flutter-symbols/__tests__/upload.test.js.map +0 -1
  45. package/dist/commands/git-metadata/__tests__/git.test.d.ts +0 -1
  46. package/dist/commands/git-metadata/__tests__/git.test.js +0 -148
  47. package/dist/commands/git-metadata/__tests__/git.test.js.map +0 -1
  48. package/dist/commands/git-metadata/__tests__/library.test.d.ts +0 -1
  49. package/dist/commands/git-metadata/__tests__/library.test.js +0 -103
  50. package/dist/commands/git-metadata/__tests__/library.test.js.map +0 -1
  51. package/dist/commands/git-metadata/__tests__/upload.test.d.ts +0 -1
  52. package/dist/commands/git-metadata/__tests__/upload.test.js +0 -60
  53. package/dist/commands/git-metadata/__tests__/upload.test.js.map +0 -1
  54. package/dist/commands/junit/__tests__/api.test.d.ts +0 -1
  55. package/dist/commands/junit/__tests__/api.test.js +0 -9
  56. package/dist/commands/junit/__tests__/api.test.js.map +0 -1
  57. package/dist/commands/junit/__tests__/upload.test.d.ts +0 -1
  58. package/dist/commands/junit/__tests__/upload.test.js +0 -283
  59. package/dist/commands/junit/__tests__/upload.test.js.map +0 -1
  60. package/dist/commands/lambda/__tests__/fixtures.d.ts +0 -49
  61. package/dist/commands/lambda/__tests__/fixtures.js +0 -88
  62. package/dist/commands/lambda/__tests__/fixtures.js.map +0 -1
  63. package/dist/commands/lambda/__tests__/functions/commons.test.d.ts +0 -1
  64. package/dist/commands/lambda/__tests__/functions/commons.test.js +0 -716
  65. package/dist/commands/lambda/__tests__/functions/commons.test.js.map +0 -1
  66. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.d.ts +0 -1
  67. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.js +0 -350
  68. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.js.map +0 -1
  69. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.d.ts +0 -1
  70. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.js +0 -583
  71. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.js.map +0 -1
  72. package/dist/commands/lambda/__tests__/functions/uninstrument.test.d.ts +0 -1
  73. package/dist/commands/lambda/__tests__/functions/uninstrument.test.js +0 -477
  74. package/dist/commands/lambda/__tests__/functions/uninstrument.test.js.map +0 -1
  75. package/dist/commands/lambda/__tests__/functions/versionChecker.test.d.ts +0 -1
  76. package/dist/commands/lambda/__tests__/functions/versionChecker.test.js +0 -33
  77. package/dist/commands/lambda/__tests__/functions/versionChecker.test.js.map +0 -1
  78. package/dist/commands/lambda/__tests__/instrument.test.d.ts +0 -1
  79. package/dist/commands/lambda/__tests__/instrument.test.js +0 -1478
  80. package/dist/commands/lambda/__tests__/instrument.test.js.map +0 -1
  81. package/dist/commands/lambda/__tests__/loggroup.test.d.ts +0 -1
  82. package/dist/commands/lambda/__tests__/loggroup.test.js +0 -332
  83. package/dist/commands/lambda/__tests__/loggroup.test.js.map +0 -1
  84. package/dist/commands/lambda/__tests__/prompt.test.d.ts +0 -1
  85. package/dist/commands/lambda/__tests__/prompt.test.js +0 -235
  86. package/dist/commands/lambda/__tests__/prompt.test.js.map +0 -1
  87. package/dist/commands/lambda/__tests__/tags.test.d.ts +0 -1
  88. package/dist/commands/lambda/__tests__/tags.test.js +0 -253
  89. package/dist/commands/lambda/__tests__/tags.test.js.map +0 -1
  90. package/dist/commands/lambda/__tests__/uninstrument.test.d.ts +0 -1
  91. package/dist/commands/lambda/__tests__/uninstrument.test.js +0 -679
  92. package/dist/commands/lambda/__tests__/uninstrument.test.js.map +0 -1
  93. package/dist/commands/metric/__tests__/metric.test.d.ts +0 -1
  94. package/dist/commands/metric/__tests__/metric.test.js +0 -97
  95. package/dist/commands/metric/__tests__/metric.test.js.map +0 -1
  96. package/dist/commands/react-native/__tests__/codepush.test.d.ts +0 -1
  97. package/dist/commands/react-native/__tests__/codepush.test.js +0 -153
  98. package/dist/commands/react-native/__tests__/codepush.test.js.map +0 -1
  99. package/dist/commands/react-native/__tests__/interfaces.test.d.ts +0 -1
  100. package/dist/commands/react-native/__tests__/interfaces.test.js +0 -52
  101. package/dist/commands/react-native/__tests__/interfaces.test.js.map +0 -1
  102. package/dist/commands/react-native/__tests__/upload.test.d.ts +0 -1
  103. package/dist/commands/react-native/__tests__/upload.test.js +0 -176
  104. package/dist/commands/react-native/__tests__/upload.test.js.map +0 -1
  105. package/dist/commands/react-native/__tests__/xcode.test.d.ts +0 -1
  106. package/dist/commands/react-native/__tests__/xcode.test.js +0 -417
  107. package/dist/commands/react-native/__tests__/xcode.test.js.map +0 -1
  108. package/dist/commands/sourcemaps/__tests__/upload.test.d.ts +0 -1
  109. package/dist/commands/sourcemaps/__tests__/upload.test.js +0 -270
  110. package/dist/commands/sourcemaps/__tests__/upload.test.js.map +0 -1
  111. package/dist/commands/sourcemaps/__tests__/utils.test.d.ts +0 -1
  112. package/dist/commands/sourcemaps/__tests__/utils.test.js +0 -31
  113. package/dist/commands/sourcemaps/__tests__/utils.test.js.map +0 -1
  114. package/dist/commands/synthetics/__tests__/api.test.d.ts +0 -1
  115. package/dist/commands/synthetics/__tests__/api.test.js +0 -273
  116. package/dist/commands/synthetics/__tests__/api.test.js.map +0 -1
  117. package/dist/commands/synthetics/__tests__/cli.test.d.ts +0 -1
  118. package/dist/commands/synthetics/__tests__/cli.test.js +0 -391
  119. package/dist/commands/synthetics/__tests__/cli.test.js.map +0 -1
  120. package/dist/commands/synthetics/__tests__/fixtures.d.ts +0 -119
  121. package/dist/commands/synthetics/__tests__/fixtures.js +0 -386
  122. package/dist/commands/synthetics/__tests__/fixtures.js.map +0 -1
  123. package/dist/commands/synthetics/__tests__/mobile.test.d.ts +0 -1
  124. package/dist/commands/synthetics/__tests__/mobile.test.js +0 -228
  125. package/dist/commands/synthetics/__tests__/mobile.test.js.map +0 -1
  126. package/dist/commands/synthetics/__tests__/reporters/default.test.d.ts +0 -1
  127. package/dist/commands/synthetics/__tests__/reporters/default.test.js +0 -202
  128. package/dist/commands/synthetics/__tests__/reporters/default.test.js.map +0 -1
  129. package/dist/commands/synthetics/__tests__/reporters/junit.test.d.ts +0 -1
  130. package/dist/commands/synthetics/__tests__/reporters/junit.test.js +0 -339
  131. package/dist/commands/synthetics/__tests__/reporters/junit.test.js.map +0 -1
  132. package/dist/commands/synthetics/__tests__/run-test.test.d.ts +0 -1
  133. package/dist/commands/synthetics/__tests__/run-test.test.js +0 -419
  134. package/dist/commands/synthetics/__tests__/run-test.test.js.map +0 -1
  135. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.d.ts +0 -1
  136. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.js +0 -21
  137. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.js.map +0 -1
  138. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.d.ts +0 -1
  139. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.js +0 -80
  140. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.js.map +0 -1
  141. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.d.ts +0 -1
  142. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js +0 -111
  143. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js.map +0 -1
  144. package/dist/commands/synthetics/__tests__/utils.test.d.ts +0 -1
  145. package/dist/commands/synthetics/__tests__/utils.test.js +0 -933
  146. package/dist/commands/synthetics/__tests__/utils.test.js.map +0 -1
  147. package/dist/commands/tag/__tests__/tag.test.d.ts +0 -1
  148. package/dist/commands/tag/__tests__/tag.test.js +0 -77
  149. package/dist/commands/tag/__tests__/tag.test.js.map +0 -1
  150. package/dist/commands/trace/__tests__/trace.test.d.ts +0 -1
  151. package/dist/commands/trace/__tests__/trace.test.js +0 -64
  152. package/dist/commands/trace/__tests__/trace.test.js.map +0 -1
  153. package/dist/helpers/__tests__/ci.test.d.ts +0 -1
  154. package/dist/helpers/__tests__/ci.test.js +0 -197
  155. package/dist/helpers/__tests__/ci.test.js.map +0 -1
  156. package/dist/helpers/__tests__/plist.test.d.ts +0 -1
  157. package/dist/helpers/__tests__/plist.test.js +0 -31
  158. package/dist/helpers/__tests__/plist.test.js.map +0 -1
  159. package/dist/helpers/__tests__/retry.test.d.ts +0 -1
  160. package/dist/helpers/__tests__/retry.test.js +0 -99
  161. package/dist/helpers/__tests__/retry.test.js.map +0 -1
  162. package/dist/helpers/__tests__/tags.test.d.ts +0 -1
  163. package/dist/helpers/__tests__/tags.test.js +0 -17
  164. package/dist/helpers/__tests__/tags.test.js.map +0 -1
  165. package/dist/helpers/__tests__/upload.test.d.ts +0 -1
  166. package/dist/helpers/__tests__/upload.test.js +0 -185
  167. package/dist/helpers/__tests__/upload.test.js.map +0 -1
  168. package/dist/helpers/__tests__/user-provided-git.test.d.ts +0 -1
  169. package/dist/helpers/__tests__/user-provided-git.test.js +0 -119
  170. package/dist/helpers/__tests__/user-provided-git.test.js.map +0 -1
  171. package/dist/helpers/__tests__/utils.test.d.ts +0 -1
  172. package/dist/helpers/__tests__/utils.test.js +0 -382
  173. package/dist/helpers/__tests__/utils.test.js.map +0 -1
  174. package/dist/helpers/__tests__/validation.test.d.ts +0 -1
  175. package/dist/helpers/__tests__/validation.test.js +0 -21
  176. package/dist/helpers/__tests__/validation.test.js.map +0 -1
  177. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.d.ts +0 -1
  178. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.js +0 -106
  179. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.js.map +0 -1
  180. package/dist/helpers/git/__tests__/format-git-span-data.test.d.ts +0 -1
  181. package/dist/helpers/git/__tests__/format-git-span-data.test.js +0 -67
  182. package/dist/helpers/git/__tests__/format-git-span-data.test.js.map +0 -1
  183. package/dist/helpers/git/__tests__/get-git-data.test.d.ts +0 -1
  184. package/dist/helpers/git/__tests__/get-git-data.test.js +0 -60
  185. package/dist/helpers/git/__tests__/get-git-data.test.js.map +0 -1
@@ -1,419 +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
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
- return new (P || (P = Promise))(function (resolve, reject) {
24
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
- step((generator = generator.apply(thisArg, _arguments || [])).next());
28
- });
29
- };
30
- Object.defineProperty(exports, "__esModule", { value: true });
31
- const fs_1 = require("fs");
32
- const ciUtils = __importStar(require("../../../helpers/utils"));
33
- const api = __importStar(require("../api"));
34
- const command_1 = require("../command");
35
- const errors_1 = require("../errors");
36
- const interfaces_1 = require("../interfaces");
37
- const default_1 = require("../reporters/default");
38
- const junit_1 = require("../reporters/junit");
39
- const runTests = __importStar(require("../run-test"));
40
- const tunnel_1 = require("../tunnel");
41
- const utils = __importStar(require("../utils"));
42
- const fixtures_1 = require("./fixtures");
43
- describe('run-test', () => {
44
- beforeEach(() => {
45
- jest.restoreAllMocks();
46
- jest.spyOn(ciUtils, 'getConfig').mockImplementation(() => __awaiter(void 0, void 0, void 0, function* () { return ({}); }));
47
- process.env = {};
48
- });
49
- describe('executeTests', () => {
50
- test('should apply config override for tests triggered by public id', () => __awaiter(void 0, void 0, void 0, function* () {
51
- const getTestsToTriggersMock = jest.spyOn(utils, 'getTestsToTrigger').mockReturnValue(Promise.resolve({
52
- initialSummary: utils.createInitialSummary(),
53
- overriddenTestsToTrigger: [],
54
- tests: [],
55
- }));
56
- jest.spyOn(utils, 'runTests').mockImplementation();
57
- const startUrl = '{{PROTOCOL}}//myhost{{PATHNAME}}{{PARAMS}}';
58
- const locations = ['location1', 'location2'];
59
- const userConfigOverride = { locations, startUrl };
60
- const apiHelper = {};
61
- jest.spyOn(api, 'getApiHelper').mockImplementation(() => ({}));
62
- yield expect(runTests.executeTests(fixtures_1.mockReporter, Object.assign(Object.assign({}, fixtures_1.ciConfig), { global: userConfigOverride, publicIds: ['public-id-1', 'public-id-2'] }))).rejects.toThrow();
63
- expect(getTestsToTriggersMock).toHaveBeenCalledWith(apiHelper, expect.arrayContaining([
64
- expect.objectContaining({ id: 'public-id-1', config: userConfigOverride }),
65
- expect.objectContaining({ id: 'public-id-2', config: userConfigOverride }),
66
- ]), expect.anything(), false, false, false);
67
- }));
68
- test.each([
69
- [
70
- 'locations in global config only',
71
- { global: { locations: ['global-location-1'] } },
72
- { locations: ['global-location-1'] },
73
- ],
74
- [
75
- 'locations in env var only',
76
- { locations: ['envvar-location-1', 'envvar-location-2'] },
77
- { locations: ['envvar-location-1', 'envvar-location-2'] },
78
- ],
79
- [
80
- 'locations in both global config and env var',
81
- { global: { locations: ['global-location-1'] }, locations: ['envvar-location-1', 'envvar-location-2'] },
82
- { locations: ['envvar-location-1', 'envvar-location-2'] },
83
- ],
84
- ])('Use appropriate list of locations for tests triggered by public id: %s', (text, partialCIConfig, expectedOverriddenConfig) => __awaiter(void 0, void 0, void 0, function* () {
85
- const getTestsToTriggersMock = jest.spyOn(utils, 'getTestsToTrigger').mockReturnValue(Promise.resolve({
86
- initialSummary: utils.createInitialSummary(),
87
- overriddenTestsToTrigger: [],
88
- tests: [],
89
- }));
90
- const apiHelper = {};
91
- jest.spyOn(api, 'getApiHelper').mockImplementation(() => ({}));
92
- yield expect(runTests.executeTests(fixtures_1.mockReporter, Object.assign(Object.assign(Object.assign({}, fixtures_1.ciConfig), partialCIConfig), { publicIds: ['public-id-1', 'public-id-2'] }))).rejects.toMatchError(new errors_1.CiError('NO_TESTS_TO_RUN'));
93
- expect(getTestsToTriggersMock).toHaveBeenCalledWith(apiHelper, expect.arrayContaining([
94
- expect.objectContaining({ id: 'public-id-1', config: expectedOverriddenConfig }),
95
- expect.objectContaining({ id: 'public-id-2', config: expectedOverriddenConfig }),
96
- ]), expect.anything(), false, false, false);
97
- }));
98
- test('should not wait for `skipped` only tests batch results', () => __awaiter(void 0, void 0, void 0, function* () {
99
- const getTestsToTriggersMock = jest.spyOn(utils, 'getTestsToTrigger').mockReturnValue(Promise.resolve({
100
- initialSummary: utils.createInitialSummary(),
101
- overriddenTestsToTrigger: [],
102
- tests: [],
103
- }));
104
- const apiHelper = {};
105
- const configOverride = { executionRule: interfaces_1.ExecutionRule.SKIPPED };
106
- jest.spyOn(api, 'getApiHelper').mockImplementation(() => ({}));
107
- yield expect(runTests.executeTests(fixtures_1.mockReporter, Object.assign(Object.assign({}, fixtures_1.ciConfig), { global: configOverride, publicIds: ['public-id-1', 'public-id-2'] }))).rejects.toMatchError(new errors_1.CiError('NO_TESTS_TO_RUN'));
108
- expect(getTestsToTriggersMock).toHaveBeenCalledWith(apiHelper, expect.arrayContaining([
109
- expect.objectContaining({ id: 'public-id-1', config: configOverride }),
110
- expect.objectContaining({ id: 'public-id-2', config: configOverride }),
111
- ]), expect.anything(), false, false, false);
112
- }));
113
- test('should not open tunnel if no test to run', () => __awaiter(void 0, void 0, void 0, function* () {
114
- const getTestsToTriggersMock = jest.spyOn(utils, 'getTestsToTrigger').mockReturnValue(Promise.resolve({
115
- initialSummary: utils.createInitialSummary(),
116
- overriddenTestsToTrigger: [],
117
- tests: [],
118
- }));
119
- const apiHelper = {
120
- getTunnelPresignedURL: jest.fn(),
121
- };
122
- const configOverride = { executionRule: interfaces_1.ExecutionRule.SKIPPED };
123
- jest.spyOn(api, 'getApiHelper').mockImplementation(() => apiHelper);
124
- yield expect(runTests.executeTests(fixtures_1.mockReporter, Object.assign(Object.assign({}, fixtures_1.ciConfig), { global: configOverride, publicIds: ['public-id-1', 'public-id-2'], tunnel: true }))).rejects.toMatchError(new errors_1.CiError('NO_TESTS_TO_RUN'));
125
- expect(getTestsToTriggersMock).toHaveBeenCalledWith(apiHelper, expect.arrayContaining([
126
- expect.objectContaining({ id: 'public-id-1', config: configOverride }),
127
- expect.objectContaining({ id: 'public-id-2', config: configOverride }),
128
- ]), expect.anything(), false, false, true);
129
- expect(apiHelper.getTunnelPresignedURL).not.toHaveBeenCalled();
130
- }));
131
- test('open and close tunnel for successful runs', () => __awaiter(void 0, void 0, void 0, function* () {
132
- jest.spyOn(utils, 'wait').mockImplementation(() => new Promise((res) => setTimeout(res, 10)));
133
- const startTunnelSpy = jest
134
- .spyOn(tunnel_1.Tunnel.prototype, 'start')
135
- .mockImplementation(() => __awaiter(void 0, void 0, void 0, function* () { return ({ host: 'host', id: 'id', privateKey: 'key' }); }));
136
- const stopTunnelSpy = jest.spyOn(tunnel_1.Tunnel.prototype, 'stop');
137
- jest.spyOn(utils, 'getTestsToTrigger').mockReturnValue(Promise.resolve({
138
- initialSummary: utils.createInitialSummary(),
139
- overriddenTestsToTrigger: [],
140
- tests: [{ options: { ci: { executionRule: interfaces_1.ExecutionRule.BLOCKING } }, public_id: '123-456-789' }],
141
- }));
142
- jest.spyOn(utils, 'runTests').mockResolvedValue(fixtures_1.mockTestTriggerResponse);
143
- const apiHelper = {
144
- getBatch: () => ({ results: [] }),
145
- getTunnelPresignedURL: () => ({ url: 'url' }),
146
- pollResults: () => [fixtures_1.getApiResult('1', fixtures_1.getApiTest())],
147
- triggerTests: () => fixtures_1.mockTestTriggerResponse,
148
- };
149
- jest.spyOn(api, 'getApiHelper').mockImplementation(() => apiHelper);
150
- yield runTests.executeTests(fixtures_1.mockReporter, Object.assign(Object.assign({}, fixtures_1.ciConfig), { failOnCriticalErrors: true, publicIds: ['123-456-789'], tunnel: true }));
151
- expect(startTunnelSpy).toHaveBeenCalledTimes(1);
152
- expect(stopTunnelSpy).toHaveBeenCalledTimes(1);
153
- }));
154
- const cases = [
155
- [403, 'AUTHORIZATION_ERROR'],
156
- [502, 'UNAVAILABLE_TEST_CONFIG'],
157
- ];
158
- describe.each(cases)('%s triggers %s', (status, error) => {
159
- test(`getTestsList throws - ${status}`, () => __awaiter(void 0, void 0, void 0, function* () {
160
- const apiHelper = {
161
- searchTests: jest.fn(() => {
162
- throw fixtures_1.getAxiosHttpError(status, { message: 'Server Error' });
163
- }),
164
- };
165
- jest.spyOn(api, 'getApiHelper').mockImplementation(() => apiHelper);
166
- yield expect(runTests.executeTests(fixtures_1.mockReporter, Object.assign(Object.assign({}, fixtures_1.ciConfig), { testSearchQuery: 'a-search-query', tunnel: true }))).rejects.toMatchError(new errors_1.CriticalError(error, 'Server Error'));
167
- }));
168
- test(`getTestsToTrigger throws - ${status}`, () => __awaiter(void 0, void 0, void 0, function* () {
169
- const apiHelper = {
170
- getTest: jest.fn(() => {
171
- throw fixtures_1.getAxiosHttpError(status, { errors: ['Bad Gateway'] });
172
- }),
173
- };
174
- jest.spyOn(api, 'getApiHelper').mockImplementation(() => apiHelper);
175
- yield expect(runTests.executeTests(fixtures_1.mockReporter, Object.assign(Object.assign({}, fixtures_1.ciConfig), { publicIds: ['public-id-1'], tunnel: true }))).rejects.toMatchError(new errors_1.CriticalError(error, 'Failed to get test: query on https://app.datadoghq.com/example returned: "Bad Gateway"\n'));
176
- }));
177
- });
178
- test('getTunnelPresignedURL throws', () => __awaiter(void 0, void 0, void 0, function* () {
179
- jest.spyOn(utils, 'getTestsToTrigger').mockReturnValue(Promise.resolve({
180
- initialSummary: utils.createInitialSummary(),
181
- overriddenTestsToTrigger: [],
182
- tests: [{ options: { ci: { executionRule: interfaces_1.ExecutionRule.BLOCKING } }, public_id: 'publicId' }],
183
- }));
184
- const apiHelper = {
185
- getTunnelPresignedURL: jest.fn(() => {
186
- throw fixtures_1.getAxiosHttpError(502, { message: 'Server Error' });
187
- }),
188
- };
189
- jest.spyOn(api, 'getApiHelper').mockImplementation(() => apiHelper);
190
- yield expect(runTests.executeTests(fixtures_1.mockReporter, Object.assign(Object.assign({}, fixtures_1.ciConfig), { publicIds: ['public-id-1', 'public-id-2'], tunnel: true }))).rejects.toMatchError(new errors_1.CriticalError('UNAVAILABLE_TUNNEL_CONFIG', 'Server Error'));
191
- }));
192
- test('getMobileApplicationPresignedURL throws', () => __awaiter(void 0, void 0, void 0, function* () {
193
- const mobileTest = fixtures_1.getMobileTest();
194
- jest.spyOn(utils, 'getTestAndOverrideConfig').mockImplementation(() => __awaiter(void 0, void 0, void 0, function* () {
195
- return Promise.resolve({
196
- overriddenConfig: { executionRule: interfaces_1.ExecutionRule.NON_BLOCKING, public_id: mobileTest.public_id },
197
- test: mobileTest,
198
- });
199
- }));
200
- jest.spyOn(fs_1.promises, 'readFile').mockImplementation(() => __awaiter(void 0, void 0, void 0, function* () { return Buffer.from('aa'); }));
201
- const apiHelper = {
202
- getMobileApplicationPresignedURL: jest.fn(() => {
203
- throw fixtures_1.getAxiosHttpError(502, { message: 'Server Error' });
204
- }),
205
- };
206
- jest.spyOn(api, 'getApiHelper').mockImplementation(() => apiHelper);
207
- yield expect(runTests.executeTests(fixtures_1.mockReporter, Object.assign(Object.assign({}, fixtures_1.ciConfig), { global: { mobileApplicationVersionFilePath: 'filePath' }, publicIds: [mobileTest.public_id] }))).rejects.toMatchError(new errors_1.CriticalError('UPLOAD_MOBILE_APPLICATION_TESTS_FAILED', 'Server Error'));
208
- }));
209
- test('uploadMobileApplication throws', () => __awaiter(void 0, void 0, void 0, function* () {
210
- const mobileTest = fixtures_1.getMobileTest();
211
- jest.spyOn(utils, 'getTestAndOverrideConfig').mockImplementation(() => __awaiter(void 0, void 0, void 0, function* () {
212
- return Promise.resolve({
213
- overriddenConfig: { executionRule: interfaces_1.ExecutionRule.NON_BLOCKING, public_id: mobileTest.public_id },
214
- test: mobileTest,
215
- });
216
- }));
217
- jest.spyOn(fs_1.promises, 'readFile').mockImplementation(() => __awaiter(void 0, void 0, void 0, function* () { return Buffer.from('aa'); }));
218
- const apiHelper = {
219
- getMobileApplicationPresignedURL: jest.fn(() => fixtures_1.MOBILE_PRESIGNED_URL_PAYLOAD),
220
- uploadMobileApplication: jest.fn(() => {
221
- throw fixtures_1.getAxiosHttpError(502, { message: 'Server Error' });
222
- }),
223
- };
224
- jest.spyOn(api, 'getApiHelper').mockImplementation(() => apiHelper);
225
- yield expect(runTests.executeTests(fixtures_1.mockReporter, Object.assign(Object.assign({}, fixtures_1.ciConfig), { global: { mobileApplicationVersionFilePath: 'filePath' }, publicIds: [mobileTest.public_id] }))).rejects.toMatchError(new errors_1.CriticalError('UPLOAD_MOBILE_APPLICATION_TESTS_FAILED', 'Server Error'));
226
- }));
227
- test('runTests throws', () => __awaiter(void 0, void 0, void 0, function* () {
228
- jest
229
- .spyOn(tunnel_1.Tunnel.prototype, 'start')
230
- .mockImplementation(() => __awaiter(void 0, void 0, void 0, function* () { return ({ host: 'host', id: 'id', privateKey: 'key' }); }));
231
- const stopTunnelSpy = jest.spyOn(tunnel_1.Tunnel.prototype, 'stop');
232
- jest.spyOn(utils, 'getTestsToTrigger').mockReturnValue(Promise.resolve({
233
- initialSummary: utils.createInitialSummary(),
234
- overriddenTestsToTrigger: [],
235
- tests: [{ options: { ci: { executionRule: interfaces_1.ExecutionRule.BLOCKING } }, public_id: 'publicId' }],
236
- }));
237
- const apiHelper = {
238
- getTunnelPresignedURL: () => ({ url: 'url' }),
239
- triggerTests: jest.fn(() => {
240
- throw fixtures_1.getAxiosHttpError(502, { errors: ['Bad Gateway'] });
241
- }),
242
- };
243
- jest.spyOn(api, 'getApiHelper').mockImplementation(() => apiHelper);
244
- yield expect(runTests.executeTests(fixtures_1.mockReporter, Object.assign(Object.assign({}, fixtures_1.ciConfig), { publicIds: ['public-id-1', 'public-id-2'], tunnel: true }))).rejects.toMatchError(new errors_1.CriticalError('TRIGGER_TESTS_FAILED', '[] Failed to trigger tests: query on https://app.datadoghq.com/example returned: "Bad Gateway"\n'));
245
- expect(stopTunnelSpy).toHaveBeenCalledTimes(1);
246
- }));
247
- test('waitForResults throws', () => __awaiter(void 0, void 0, void 0, function* () {
248
- const location = {
249
- display_name: 'us1',
250
- id: 1,
251
- is_active: true,
252
- name: 'us1',
253
- region: 'us1',
254
- };
255
- jest
256
- .spyOn(tunnel_1.Tunnel.prototype, 'start')
257
- .mockImplementation(() => __awaiter(void 0, void 0, void 0, function* () { return ({ host: 'host', id: 'id', privateKey: 'key' }); }));
258
- const stopTunnelSpy = jest.spyOn(tunnel_1.Tunnel.prototype, 'stop');
259
- jest.spyOn(utils, 'getTestsToTrigger').mockReturnValue(Promise.resolve({
260
- initialSummary: utils.createInitialSummary(),
261
- overriddenTestsToTrigger: [],
262
- tests: [{ options: { ci: { executionRule: interfaces_1.ExecutionRule.BLOCKING } }, public_id: 'publicId' }],
263
- }));
264
- jest.spyOn(utils, 'runTests').mockReturnValue(Promise.resolve({
265
- batch_id: 'bid',
266
- locations: [location],
267
- }));
268
- const apiHelper = {
269
- getBatch: () => ({ results: [] }),
270
- getTunnelPresignedURL: () => ({ url: 'url' }),
271
- pollResults: jest.fn(() => {
272
- throw fixtures_1.getAxiosHttpError(502, { errors: ['Bad Gateway'] });
273
- }),
274
- };
275
- jest.spyOn(api, 'getApiHelper').mockImplementation(() => apiHelper);
276
- yield expect(runTests.executeTests(fixtures_1.mockReporter, Object.assign(Object.assign({}, fixtures_1.ciConfig), { failOnCriticalErrors: true, publicIds: ['public-id-1', 'public-id-2'], tunnel: true }))).rejects.toMatchError(new errors_1.CriticalError('POLL_RESULTS_FAILED', 'Failed to poll results: query on https://app.datadoghq.com/example returned: "Bad Gateway"\n'));
277
- expect(stopTunnelSpy).toHaveBeenCalledTimes(1);
278
- }));
279
- });
280
- describe('execute', () => {
281
- beforeEach(() => {
282
- jest.restoreAllMocks();
283
- jest.spyOn(runTests, 'executeTests').mockReturnValue(Promise.resolve({ results: [], summary: {} }));
284
- jest.spyOn(utils, 'renderResults').mockImplementation(jest.fn());
285
- });
286
- test('should call executeTests and renderResults', () => __awaiter(void 0, void 0, void 0, function* () {
287
- yield runTests.execute({}, {});
288
- expect(runTests.executeTests).toHaveBeenCalled();
289
- expect(utils.renderResults).toHaveBeenCalled();
290
- }));
291
- test('should extend config', () => __awaiter(void 0, void 0, void 0, function* () {
292
- const runConfig = { apiKey: 'apiKey', appKey: 'appKey' };
293
- yield runTests.execute(runConfig, {});
294
- expect(runTests.executeTests).toHaveBeenCalledWith(expect.anything(), expect.objectContaining(runConfig), undefined);
295
- }));
296
- test('should bypass files if suite is passed', () => __awaiter(void 0, void 0, void 0, function* () {
297
- const suites = [{ content: { tests: [] } }];
298
- yield runTests.execute({}, { suites });
299
- expect(runTests.executeTests).toHaveBeenCalledWith(expect.anything(), expect.objectContaining({ files: [] }), suites);
300
- }));
301
- describe('reporters', () => {
302
- beforeEach(() => {
303
- jest.spyOn(utils, 'getReporter').mockImplementation(jest.fn());
304
- });
305
- test('should use default reporter whith empty config', () => __awaiter(void 0, void 0, void 0, function* () {
306
- yield runTests.execute({}, {});
307
- expect(utils.getReporter).toHaveBeenCalledWith(expect.arrayContaining([expect.any(default_1.DefaultReporter)]));
308
- }));
309
- test('should use custom reporters', () => __awaiter(void 0, void 0, void 0, function* () {
310
- const CustomReporter = {};
311
- yield runTests.execute({}, { reporters: ['junit', CustomReporter] });
312
- expect(utils.getReporter).toHaveBeenCalledWith(expect.arrayContaining([expect.any(junit_1.JUnitReporter), CustomReporter]));
313
- }));
314
- });
315
- });
316
- describe('getTestsList', () => {
317
- beforeEach(() => {
318
- jest.restoreAllMocks();
319
- });
320
- const conf1 = {
321
- tests: [{ config: {}, id: 'abc-def-ghi' }],
322
- };
323
- const conf2 = {
324
- tests: [{ config: {}, id: 'jkl-mno-pqr' }],
325
- };
326
- const fakeSuites = [
327
- {
328
- content: conf1,
329
- name: 'Suite 1',
330
- },
331
- {
332
- content: conf2,
333
- name: 'Suite 2',
334
- },
335
- ];
336
- const startUrl = 'fakeUrl';
337
- const fakeApi = {
338
- searchTests: () => ({
339
- tests: [
340
- {
341
- public_id: 'stu-vwx-yza',
342
- },
343
- ],
344
- }),
345
- };
346
- test('should find all tests and extend global config', () => __awaiter(void 0, void 0, void 0, function* () {
347
- jest.spyOn(utils, 'getSuites').mockImplementation((() => fakeSuites));
348
- const configOverride = { startUrl };
349
- yield expect(runTests.getTestsList(fakeApi, Object.assign(Object.assign({}, fixtures_1.ciConfig), { global: configOverride }), fixtures_1.mockReporter)).resolves.toEqual([
350
- {
351
- config: { startUrl },
352
- id: 'abc-def-ghi',
353
- suite: 'Suite 1',
354
- },
355
- {
356
- config: { startUrl },
357
- id: 'jkl-mno-pqr',
358
- suite: 'Suite 2',
359
- },
360
- ]);
361
- }));
362
- test('should search tests and extend global config', () => __awaiter(void 0, void 0, void 0, function* () {
363
- jest.spyOn(utils, 'getSuites').mockImplementation((() => fakeSuites));
364
- const configOverride = { startUrl };
365
- const searchQuery = 'fake search';
366
- yield expect(runTests.getTestsList(fakeApi, Object.assign(Object.assign({}, fixtures_1.ciConfig), { global: configOverride, testSearchQuery: searchQuery }), fixtures_1.mockReporter)).resolves.toEqual([
367
- {
368
- config: { startUrl },
369
- id: 'stu-vwx-yza',
370
- suite: 'Query: fake search',
371
- },
372
- ]);
373
- }));
374
- test('display warning if too many tests from search', () => __awaiter(void 0, void 0, void 0, function* () {
375
- const apiHelper = {
376
- searchTests: () => ({
377
- tests: Array(command_1.MAX_TESTS_TO_TRIGGER + 1).fill({ public_id: 'stu-vwx-yza' }),
378
- }),
379
- };
380
- const searchQuery = 'fake search';
381
- yield runTests.getTestsList(apiHelper, Object.assign(Object.assign({}, fixtures_1.ciConfig), { testSearchQuery: searchQuery }), fixtures_1.mockReporter);
382
- expect(fixtures_1.mockReporter.error).toHaveBeenCalledWith(`More than ${command_1.MAX_TESTS_TO_TRIGGER} tests returned by search query, only the first ${command_1.MAX_TESTS_TO_TRIGGER} will be fetched.\n`);
383
- }));
384
- test('should use given globs to get tests list', () => __awaiter(void 0, void 0, void 0, function* () {
385
- const getSuitesMock = jest.spyOn(utils, 'getSuites').mockImplementation((() => fakeSuites));
386
- const configOverride = { startUrl };
387
- const files = ['new glob', 'another one'];
388
- yield runTests.getTestsList(fakeApi, Object.assign(Object.assign({}, fixtures_1.ciConfig), { global: configOverride, files }), fixtures_1.mockReporter);
389
- expect(getSuitesMock).toHaveBeenCalledTimes(2);
390
- expect(getSuitesMock).toHaveBeenCalledWith('new glob', fixtures_1.mockReporter);
391
- expect(getSuitesMock).toHaveBeenCalledWith('another one', fixtures_1.mockReporter);
392
- }));
393
- test('should return tests from provided suites with overrides', () => __awaiter(void 0, void 0, void 0, function* () {
394
- const getSuitesMock = jest.spyOn(utils, 'getSuites').mockImplementation((() => fakeSuites));
395
- const configOverride = { startUrl };
396
- const files = [];
397
- const tests = yield runTests.getTestsList(fakeApi, Object.assign(Object.assign({}, fixtures_1.ciConfig), { global: configOverride, files }), fixtures_1.mockReporter, fakeSuites);
398
- expect(tests).toEqual([
399
- { config: { startUrl }, id: conf1.tests[0].id, suite: fakeSuites[0].name },
400
- { config: { startUrl }, id: conf2.tests[0].id, suite: fakeSuites[1].name },
401
- ]);
402
- expect(getSuitesMock).not.toHaveBeenCalled();
403
- }));
404
- test('should merge getSuites and user provided suites', () => __awaiter(void 0, void 0, void 0, function* () {
405
- const userSuites = [fakeSuites[0]];
406
- const globSuites = [fakeSuites[1]];
407
- const getSuitesMock = jest.spyOn(utils, 'getSuites').mockImplementation((() => globSuites));
408
- const configOverride = { startUrl };
409
- const files = ['glob'];
410
- const tests = yield runTests.getTestsList(fakeApi, Object.assign(Object.assign({}, fixtures_1.ciConfig), { global: configOverride, files }), fixtures_1.mockReporter, userSuites);
411
- expect(tests).toEqual([
412
- { config: { startUrl }, id: conf1.tests[0].id, suite: fakeSuites[0].name },
413
- { config: { startUrl }, id: conf2.tests[0].id, suite: fakeSuites[1].name },
414
- ]);
415
- expect(getSuitesMock).toHaveBeenCalled();
416
- }));
417
- });
418
- });
419
- //# sourceMappingURL=run-test.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-test.test.js","sourceRoot":"","sources":["../../../../src/commands/synthetics/__tests__/run-test.test.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const crypto_1 = require("../../tunnel/crypto");
4
- describe('crypto', () => {
5
- test('should generate ECDSA public/private keys with OpenSSH format', () => {
6
- const { privateKey, publicKey } = crypto_1.generateOpenSSHKeys();
7
- const expectedPrivateKeyFormat = /-----BEGIN OPENSSH PRIVATE KEY-----(.|\n)*-----END OPENSSH PRIVATE KEY-----/;
8
- expect(privateKey).toMatch(expectedPrivateKeyFormat);
9
- const expectedPublicKeyFormat = /ecdsa-sha2-nistp256 .*/;
10
- expect(publicKey).toMatch(expectedPublicKeyFormat);
11
- });
12
- test('should parse SSH keys', () => {
13
- const { publicKey, privateKey } = crypto_1.generateOpenSSHKeys();
14
- const parsedPublicKey = crypto_1.parseSSHKey(publicKey);
15
- const parsedPrivateKey = crypto_1.parseSSHKey(privateKey);
16
- expect(parsedPublicKey.type).toBe('ecdsa-sha2-nistp256');
17
- expect(parsedPrivateKey.type).toBe('ecdsa-sha2-nistp256');
18
- expect(() => crypto_1.parseSSHKey('not a valid key')).toThrow('Unsupported key format');
19
- });
20
- });
21
- //# sourceMappingURL=crypto.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto.test.js","sourceRoot":"","sources":["../../../../../src/commands/synthetics/__tests__/tunnel/crypto.test.ts"],"names":[],"mappings":";;AAAA,gDAAoE;AAEpE,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,IAAI,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACzE,MAAM,EAAC,UAAU,EAAE,SAAS,EAAC,GAAG,4BAAmB,EAAE,CAAA;QAErD,MAAM,wBAAwB,GAAG,6EAA6E,CAAA;QAC9G,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAA;QAEpD,MAAM,uBAAuB,GAAG,wBAAwB,CAAA;QACxD,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAC,SAAS,EAAE,UAAU,EAAC,GAAG,4BAAmB,EAAE,CAAA;QACrD,MAAM,eAAe,GAAG,oBAAW,CAAC,SAAS,CAAC,CAAA;QAC9C,MAAM,gBAAgB,GAAG,oBAAW,CAAC,UAAU,CAAC,CAAA;QAEhD,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QACxD,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QAEzD,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAA;IAChF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,80 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const stream_1 = require("stream");
13
- const utils_1 = require("../../../../../src/helpers/utils");
14
- const default_1 = require("../../reporters/default");
15
- const tunnel_1 = require("../../tunnel");
16
- const websocket_1 = require("../../tunnel/websocket");
17
- jest.mock('../../tunnel/websocket');
18
- const fixtures_1 = require("../fixtures");
19
- describe('Tunnel', () => {
20
- const mockConnect = jest.fn();
21
- const mockClose = jest.fn();
22
- const mockTunnelReporter = default_1.getTunnelReporter(fixtures_1.mockReporter);
23
- const mockWebSocket = {
24
- close: mockClose,
25
- connect: mockConnect,
26
- duplex: () => new stream_1.PassThrough(),
27
- firstMessage: { host: 'host', id: 'tunnel-id' },
28
- keepAlive: () => __awaiter(void 0, void 0, void 0, function* () {
29
- return new Promise(() => {
30
- // Never resolve
31
- });
32
- }),
33
- waitForFirstMessage: () => __awaiter(void 0, void 0, void 0, function* () { return Promise.resolve(JSON.stringify(mockWebSocket.firstMessage)); }),
34
- };
35
- const testIDs = ['aaa-bbb-ccc'];
36
- const wsPresignedURL = 'wss://tunnel.synthetics';
37
- const mockedWebSocket = jest.mocked(websocket_1.WebSocket, true);
38
- test('starts by connecting over WebSocket and closes the WebSocket when stopping', () => __awaiter(void 0, void 0, void 0, function* () {
39
- mockedWebSocket.mockImplementation(() => mockWebSocket);
40
- const tunnel = new tunnel_1.Tunnel(wsPresignedURL, testIDs, undefined, mockTunnelReporter);
41
- const connectionInfo = yield tunnel.start();
42
- expect(websocket_1.WebSocket).toHaveBeenCalledWith(wsPresignedURL, undefined);
43
- expect(mockConnect).toHaveBeenCalled();
44
- expect(connectionInfo.host).toEqual('host');
45
- expect(connectionInfo.id).toEqual('tunnel-id');
46
- expect(connectionInfo.privateKey.length).toBeGreaterThan(0);
47
- // TODO: test SSH authentication and processing
48
- // Stop the tunnel
49
- yield tunnel.stop();
50
- expect(mockClose).toHaveBeenCalled();
51
- }));
52
- test('throws an error if the WebSocket connection fails', () => __awaiter(void 0, void 0, void 0, function* () {
53
- mockedWebSocket.mockImplementation(() => ({
54
- close: mockClose,
55
- connect: mockConnect,
56
- }));
57
- const websocketConnectError = new Error('Error when connecting over WebSocket!');
58
- mockConnect.mockImplementation(() => {
59
- throw websocketConnectError;
60
- });
61
- const tunnel = new tunnel_1.Tunnel(wsPresignedURL, testIDs, undefined, mockTunnelReporter);
62
- yield expect(tunnel.start()).rejects.toThrow(websocketConnectError);
63
- expect(mockClose).toBeCalled();
64
- mockConnect.mockRestore();
65
- }));
66
- test('use provided proxy agent', () => __awaiter(void 0, void 0, void 0, function* () {
67
- mockedWebSocket.mockImplementation(() => mockWebSocket);
68
- const localProxyAgent = utils_1.getProxyAgent({
69
- host: '127.0.0.1',
70
- port: 8080,
71
- protocol: 'http',
72
- });
73
- const tunnel = new tunnel_1.Tunnel(wsPresignedURL, testIDs, localProxyAgent, mockTunnelReporter);
74
- yield tunnel.start();
75
- expect(websocket_1.WebSocket).toHaveBeenCalledWith(wsPresignedURL, localProxyAgent);
76
- // Stop the tunnel
77
- yield tunnel.stop();
78
- }));
79
- });
80
- //# sourceMappingURL=tunnel.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tunnel.test.js","sourceRoot":"","sources":["../../../../../src/commands/synthetics/__tests__/tunnel/tunnel.test.ts"],"names":[],"mappings":"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"}