@datadog/datadog-ci 2.40.2 → 2.41.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 (268) hide show
  1. package/README.md +1 -0
  2. package/dist/commands/deployment/cli.js +2 -1
  3. package/dist/commands/deployment/cli.js.map +1 -1
  4. package/dist/commands/deployment/correlate.d.ts +18 -0
  5. package/dist/commands/deployment/correlate.js +154 -0
  6. package/dist/commands/deployment/correlate.js.map +1 -0
  7. package/dist/commands/dsyms/upload.js +3 -3
  8. package/dist/commands/dsyms/upload.js.map +1 -1
  9. package/dist/commands/dsyms/utils.js +2 -4
  10. package/dist/commands/dsyms/utils.js.map +1 -1
  11. package/dist/commands/elf-symbols/upload.js +3 -2
  12. package/dist/commands/elf-symbols/upload.js.map +1 -1
  13. package/dist/commands/flutter-symbols/upload.js +2 -2
  14. package/dist/commands/flutter-symbols/upload.js.map +1 -1
  15. package/dist/commands/junit/upload.js +3 -5
  16. package/dist/commands/junit/upload.js.map +1 -1
  17. package/dist/commands/sarif/upload.js +2 -2
  18. package/dist/commands/sarif/upload.js.map +1 -1
  19. package/dist/commands/sourcemaps/upload.js +2 -2
  20. package/dist/commands/sourcemaps/upload.js.map +1 -1
  21. package/dist/commands/synthetics/utils/public.js +2 -2
  22. package/dist/commands/synthetics/utils/public.js.map +1 -1
  23. package/dist/commands/unity-symbols/upload.js +2 -2
  24. package/dist/commands/unity-symbols/upload.js.map +1 -1
  25. package/dist/helpers/git/get-git-data.d.ts +2 -0
  26. package/dist/helpers/git/get-git-data.js +11 -1
  27. package/dist/helpers/git/get-git-data.js.map +1 -1
  28. package/package.json +5 -4
  29. package/dist/__tests__/cli.test.d.ts +0 -1
  30. package/dist/__tests__/cli.test.js +0 -41
  31. package/dist/__tests__/cli.test.js.map +0 -1
  32. package/dist/commands/cloud-run/__tests__/fixtures.d.ts +0 -2
  33. package/dist/commands/cloud-run/__tests__/fixtures.js +0 -12
  34. package/dist/commands/cloud-run/__tests__/fixtures.js.map +0 -1
  35. package/dist/commands/cloud-run/__tests__/flare.test.d.ts +0 -1
  36. package/dist/commands/cloud-run/__tests__/flare.test.js +0 -557
  37. package/dist/commands/cloud-run/__tests__/flare.test.js.map +0 -1
  38. package/dist/commands/deployment/__tests__/mark.test.d.ts +0 -1
  39. package/dist/commands/deployment/__tests__/mark.test.js +0 -47
  40. package/dist/commands/deployment/__tests__/mark.test.js.map +0 -1
  41. package/dist/commands/dora/__tests__/deployment.test.d.ts +0 -1
  42. package/dist/commands/dora/__tests__/deployment.test.js +0 -201
  43. package/dist/commands/dora/__tests__/deployment.test.js.map +0 -1
  44. package/dist/commands/dsyms/__tests__/upload.test.d.ts +0 -1
  45. package/dist/commands/dsyms/__tests__/upload.test.js +0 -346
  46. package/dist/commands/dsyms/__tests__/upload.test.js.map +0 -1
  47. package/dist/commands/dsyms/__tests__/utils.test.d.ts +0 -1
  48. package/dist/commands/dsyms/__tests__/utils.test.js +0 -100
  49. package/dist/commands/dsyms/__tests__/utils.test.js.map +0 -1
  50. package/dist/commands/elf-symbols/__tests__/elf.test.d.ts +0 -1
  51. package/dist/commands/elf-symbols/__tests__/elf.test.js +0 -813
  52. package/dist/commands/elf-symbols/__tests__/elf.test.js.map +0 -1
  53. package/dist/commands/elf-symbols/__tests__/upload.test.d.ts +0 -1
  54. package/dist/commands/elf-symbols/__tests__/upload.test.js +0 -249
  55. package/dist/commands/elf-symbols/__tests__/upload.test.js.map +0 -1
  56. package/dist/commands/flutter-symbols/__tests__/upload.test.d.ts +0 -1
  57. package/dist/commands/flutter-symbols/__tests__/upload.test.js +0 -617
  58. package/dist/commands/flutter-symbols/__tests__/upload.test.js.map +0 -1
  59. package/dist/commands/gate/__tests__/evaluate.test.d.ts +0 -1
  60. package/dist/commands/gate/__tests__/evaluate.test.js +0 -398
  61. package/dist/commands/gate/__tests__/evaluate.test.js.map +0 -1
  62. package/dist/commands/gate/__tests__/scope.test.d.ts +0 -1
  63. package/dist/commands/gate/__tests__/scope.test.js +0 -29
  64. package/dist/commands/gate/__tests__/scope.test.js.map +0 -1
  65. package/dist/commands/git-metadata/__tests__/git.test.d.ts +0 -1
  66. package/dist/commands/git-metadata/__tests__/git.test.js +0 -132
  67. package/dist/commands/git-metadata/__tests__/git.test.js.map +0 -1
  68. package/dist/commands/git-metadata/__tests__/gitdb.test.d.ts +0 -1
  69. package/dist/commands/git-metadata/__tests__/gitdb.test.js +0 -1386
  70. package/dist/commands/git-metadata/__tests__/gitdb.test.js.map +0 -1
  71. package/dist/commands/git-metadata/__tests__/library.test.d.ts +0 -1
  72. package/dist/commands/git-metadata/__tests__/library.test.js +0 -118
  73. package/dist/commands/git-metadata/__tests__/library.test.js.map +0 -1
  74. package/dist/commands/git-metadata/__tests__/upload.test.d.ts +0 -1
  75. package/dist/commands/git-metadata/__tests__/upload.test.js +0 -52
  76. package/dist/commands/git-metadata/__tests__/upload.test.js.map +0 -1
  77. package/dist/commands/junit/__tests__/id.test.d.ts +0 -1
  78. package/dist/commands/junit/__tests__/id.test.js +0 -24
  79. package/dist/commands/junit/__tests__/id.test.js.map +0 -1
  80. package/dist/commands/junit/__tests__/upload.test.d.ts +0 -1
  81. package/dist/commands/junit/__tests__/upload.test.js +0 -495
  82. package/dist/commands/junit/__tests__/upload.test.js.map +0 -1
  83. package/dist/commands/lambda/__tests__/fixtures.d.ts +0 -51
  84. package/dist/commands/lambda/__tests__/fixtures.js +0 -146
  85. package/dist/commands/lambda/__tests__/fixtures.js.map +0 -1
  86. package/dist/commands/lambda/__tests__/flare.test.d.ts +0 -1
  87. package/dist/commands/lambda/__tests__/flare.test.js +0 -730
  88. package/dist/commands/lambda/__tests__/flare.test.js.map +0 -1
  89. package/dist/commands/lambda/__tests__/functions/commons.test.d.ts +0 -1
  90. package/dist/commands/lambda/__tests__/functions/commons.test.js +0 -791
  91. package/dist/commands/lambda/__tests__/functions/commons.test.js.map +0 -1
  92. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.d.ts +0 -1
  93. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.js +0 -386
  94. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.js.map +0 -1
  95. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.d.ts +0 -1
  96. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.js +0 -721
  97. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.js.map +0 -1
  98. package/dist/commands/lambda/__tests__/functions/uninstrument.test.d.ts +0 -1
  99. package/dist/commands/lambda/__tests__/functions/uninstrument.test.js +0 -513
  100. package/dist/commands/lambda/__tests__/functions/uninstrument.test.js.map +0 -1
  101. package/dist/commands/lambda/__tests__/functions/versionChecker.test.d.ts +0 -1
  102. package/dist/commands/lambda/__tests__/functions/versionChecker.test.js +0 -33
  103. package/dist/commands/lambda/__tests__/functions/versionChecker.test.js.map +0 -1
  104. package/dist/commands/lambda/__tests__/instrument.test.d.ts +0 -1
  105. package/dist/commands/lambda/__tests__/instrument.test.js +0 -1511
  106. package/dist/commands/lambda/__tests__/instrument.test.js.map +0 -1
  107. package/dist/commands/lambda/__tests__/loggroup.test.d.ts +0 -1
  108. package/dist/commands/lambda/__tests__/loggroup.test.js +0 -340
  109. package/dist/commands/lambda/__tests__/loggroup.test.js.map +0 -1
  110. package/dist/commands/lambda/__tests__/prompt.test.d.ts +0 -1
  111. package/dist/commands/lambda/__tests__/prompt.test.js +0 -206
  112. package/dist/commands/lambda/__tests__/prompt.test.js.map +0 -1
  113. package/dist/commands/lambda/__tests__/tags.test.d.ts +0 -1
  114. package/dist/commands/lambda/__tests__/tags.test.js +0 -305
  115. package/dist/commands/lambda/__tests__/tags.test.js.map +0 -1
  116. package/dist/commands/lambda/__tests__/uninstrument.test.d.ts +0 -1
  117. package/dist/commands/lambda/__tests__/uninstrument.test.js +0 -722
  118. package/dist/commands/lambda/__tests__/uninstrument.test.js.map +0 -1
  119. package/dist/commands/measure/__tests__/measure.test.d.ts +0 -1
  120. package/dist/commands/measure/__tests__/measure.test.js +0 -110
  121. package/dist/commands/measure/__tests__/measure.test.js.map +0 -1
  122. package/dist/commands/react-native/__tests__/codepush.test.d.ts +0 -1
  123. package/dist/commands/react-native/__tests__/codepush.test.js +0 -161
  124. package/dist/commands/react-native/__tests__/codepush.test.js.map +0 -1
  125. package/dist/commands/react-native/__tests__/interfaces.test.d.ts +0 -1
  126. package/dist/commands/react-native/__tests__/interfaces.test.js +0 -33
  127. package/dist/commands/react-native/__tests__/interfaces.test.js.map +0 -1
  128. package/dist/commands/react-native/__tests__/upload.test.d.ts +0 -1
  129. package/dist/commands/react-native/__tests__/upload.test.js +0 -238
  130. package/dist/commands/react-native/__tests__/upload.test.js.map +0 -1
  131. package/dist/commands/react-native/__tests__/utils.test.d.ts +0 -1
  132. package/dist/commands/react-native/__tests__/utils.test.js +0 -27
  133. package/dist/commands/react-native/__tests__/utils.test.js.map +0 -1
  134. package/dist/commands/react-native/__tests__/xcode.test.d.ts +0 -1
  135. package/dist/commands/react-native/__tests__/xcode.test.js +0 -465
  136. package/dist/commands/react-native/__tests__/xcode.test.js.map +0 -1
  137. package/dist/commands/sarif/__tests__/upload.test.d.ts +0 -1
  138. package/dist/commands/sarif/__tests__/upload.test.js +0 -228
  139. package/dist/commands/sarif/__tests__/upload.test.js.map +0 -1
  140. package/dist/commands/sbom/__tests__/payload.test.d.ts +0 -1
  141. package/dist/commands/sbom/__tests__/payload.test.js +0 -262
  142. package/dist/commands/sbom/__tests__/payload.test.js.map +0 -1
  143. package/dist/commands/sbom/__tests__/validation.test.d.ts +0 -1
  144. package/dist/commands/sbom/__tests__/validation.test.js +0 -41
  145. package/dist/commands/sbom/__tests__/validation.test.js.map +0 -1
  146. package/dist/commands/sourcemaps/__tests__/upload.test.d.ts +0 -1
  147. package/dist/commands/sourcemaps/__tests__/upload.test.js +0 -270
  148. package/dist/commands/sourcemaps/__tests__/upload.test.js.map +0 -1
  149. package/dist/commands/sourcemaps/__tests__/utils.test.d.ts +0 -1
  150. package/dist/commands/sourcemaps/__tests__/utils.test.js +0 -31
  151. package/dist/commands/sourcemaps/__tests__/utils.test.js.map +0 -1
  152. package/dist/commands/stepfunctions/__tests__/awsCommands.test.d.ts +0 -1
  153. package/dist/commands/stepfunctions/__tests__/awsCommands.test.js +0 -192
  154. package/dist/commands/stepfunctions/__tests__/awsCommands.test.js.map +0 -1
  155. package/dist/commands/stepfunctions/__tests__/fixtures/aws-resources.d.ts +0 -6
  156. package/dist/commands/stepfunctions/__tests__/fixtures/aws-resources.js +0 -45
  157. package/dist/commands/stepfunctions/__tests__/fixtures/aws-resources.js.map +0 -1
  158. package/dist/commands/stepfunctions/__tests__/fixtures/cli.d.ts +0 -5
  159. package/dist/commands/stepfunctions/__tests__/fixtures/cli.js +0 -19
  160. package/dist/commands/stepfunctions/__tests__/fixtures/cli.js.map +0 -1
  161. package/dist/commands/stepfunctions/__tests__/helpers.test.d.ts +0 -1
  162. package/dist/commands/stepfunctions/__tests__/helpers.test.js +0 -205
  163. package/dist/commands/stepfunctions/__tests__/helpers.test.js.map +0 -1
  164. package/dist/commands/stepfunctions/__tests__/instrument.test.d.ts +0 -1
  165. package/dist/commands/stepfunctions/__tests__/instrument.test.js +0 -431
  166. package/dist/commands/stepfunctions/__tests__/instrument.test.js.map +0 -1
  167. package/dist/commands/stepfunctions/__tests__/uninstrument.test.d.ts +0 -1
  168. package/dist/commands/stepfunctions/__tests__/uninstrument.test.js +0 -166
  169. package/dist/commands/stepfunctions/__tests__/uninstrument.test.js.map +0 -1
  170. package/dist/commands/synthetics/__tests__/api.test.d.ts +0 -1
  171. package/dist/commands/synthetics/__tests__/api.test.js +0 -422
  172. package/dist/commands/synthetics/__tests__/api.test.js.map +0 -1
  173. package/dist/commands/synthetics/__tests__/cli.test.d.ts +0 -1
  174. package/dist/commands/synthetics/__tests__/cli.test.js +0 -1325
  175. package/dist/commands/synthetics/__tests__/cli.test.js.map +0 -1
  176. package/dist/commands/synthetics/__tests__/fixtures.d.ts +0 -149
  177. package/dist/commands/synthetics/__tests__/fixtures.js +0 -507
  178. package/dist/commands/synthetics/__tests__/fixtures.js.map +0 -1
  179. package/dist/commands/synthetics/__tests__/mobile.test.d.ts +0 -1
  180. package/dist/commands/synthetics/__tests__/mobile.test.js +0 -376
  181. package/dist/commands/synthetics/__tests__/mobile.test.js.map +0 -1
  182. package/dist/commands/synthetics/__tests__/reporters/default.test.d.ts +0 -1
  183. package/dist/commands/synthetics/__tests__/reporters/default.test.js +0 -354
  184. package/dist/commands/synthetics/__tests__/reporters/default.test.js.map +0 -1
  185. package/dist/commands/synthetics/__tests__/reporters/junit.test.d.ts +0 -1
  186. package/dist/commands/synthetics/__tests__/reporters/junit.test.js +0 -353
  187. package/dist/commands/synthetics/__tests__/reporters/junit.test.js.map +0 -1
  188. package/dist/commands/synthetics/__tests__/reporters/mobile/app-upload.test.d.ts +0 -1
  189. package/dist/commands/synthetics/__tests__/reporters/mobile/app-upload.test.js +0 -232
  190. package/dist/commands/synthetics/__tests__/reporters/mobile/app-upload.test.js.map +0 -1
  191. package/dist/commands/synthetics/__tests__/run-tests-lib.test.d.ts +0 -1
  192. package/dist/commands/synthetics/__tests__/run-tests-lib.test.js +0 -735
  193. package/dist/commands/synthetics/__tests__/run-tests-lib.test.js.map +0 -1
  194. package/dist/commands/synthetics/__tests__/test.test.d.ts +0 -1
  195. package/dist/commands/synthetics/__tests__/test.test.js +0 -33
  196. package/dist/commands/synthetics/__tests__/test.test.js.map +0 -1
  197. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.d.ts +0 -1
  198. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.js +0 -21
  199. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.js.map +0 -1
  200. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.d.ts +0 -1
  201. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.js +0 -80
  202. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.js.map +0 -1
  203. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.d.ts +0 -1
  204. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js +0 -109
  205. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js.map +0 -1
  206. package/dist/commands/synthetics/__tests__/utils/internal.test.d.ts +0 -1
  207. package/dist/commands/synthetics/__tests__/utils/internal.test.js +0 -186
  208. package/dist/commands/synthetics/__tests__/utils/internal.test.js.map +0 -1
  209. package/dist/commands/synthetics/__tests__/utils/public.test.d.ts +0 -1
  210. package/dist/commands/synthetics/__tests__/utils/public.test.js +0 -1526
  211. package/dist/commands/synthetics/__tests__/utils/public.test.js.map +0 -1
  212. package/dist/commands/tag/__tests__/tag.test.d.ts +0 -1
  213. package/dist/commands/tag/__tests__/tag.test.js +0 -75
  214. package/dist/commands/tag/__tests__/tag.test.js.map +0 -1
  215. package/dist/commands/trace/__tests__/trace.test.d.ts +0 -1
  216. package/dist/commands/trace/__tests__/trace.test.js +0 -145
  217. package/dist/commands/trace/__tests__/trace.test.js.map +0 -1
  218. package/dist/commands/unity-symbols/__tests__/upload.test.d.ts +0 -1
  219. package/dist/commands/unity-symbols/__tests__/upload.test.js +0 -369
  220. package/dist/commands/unity-symbols/__tests__/upload.test.js.map +0 -1
  221. package/dist/helpers/__tests__/app.test.d.ts +0 -1
  222. package/dist/helpers/__tests__/app.test.js +0 -31
  223. package/dist/helpers/__tests__/app.test.js.map +0 -1
  224. package/dist/helpers/__tests__/ci.test.d.ts +0 -1
  225. package/dist/helpers/__tests__/ci.test.js +0 -252
  226. package/dist/helpers/__tests__/ci.test.js.map +0 -1
  227. package/dist/helpers/__tests__/fixtures.d.ts +0 -33
  228. package/dist/helpers/__tests__/fixtures.js +0 -71
  229. package/dist/helpers/__tests__/fixtures.js.map +0 -1
  230. package/dist/helpers/__tests__/flare.test.d.ts +0 -1
  231. package/dist/helpers/__tests__/flare.test.js +0 -226
  232. package/dist/helpers/__tests__/flare.test.js.map +0 -1
  233. package/dist/helpers/__tests__/fs.test.d.ts +0 -1
  234. package/dist/helpers/__tests__/fs.test.js +0 -189
  235. package/dist/helpers/__tests__/fs.test.js.map +0 -1
  236. package/dist/helpers/__tests__/plist.test.d.ts +0 -1
  237. package/dist/helpers/__tests__/plist.test.js +0 -43
  238. package/dist/helpers/__tests__/plist.test.js.map +0 -1
  239. package/dist/helpers/__tests__/prompt.test.d.ts +0 -1
  240. package/dist/helpers/__tests__/prompt.test.js +0 -71
  241. package/dist/helpers/__tests__/prompt.test.js.map +0 -1
  242. package/dist/helpers/__tests__/retry.test.d.ts +0 -1
  243. package/dist/helpers/__tests__/retry.test.js +0 -99
  244. package/dist/helpers/__tests__/retry.test.js.map +0 -1
  245. package/dist/helpers/__tests__/tags.test.d.ts +0 -1
  246. package/dist/helpers/__tests__/tags.test.js +0 -71
  247. package/dist/helpers/__tests__/tags.test.js.map +0 -1
  248. package/dist/helpers/__tests__/upload.test.d.ts +0 -1
  249. package/dist/helpers/__tests__/upload.test.js +0 -231
  250. package/dist/helpers/__tests__/upload.test.js.map +0 -1
  251. package/dist/helpers/__tests__/user-provided-git.test.d.ts +0 -1
  252. package/dist/helpers/__tests__/user-provided-git.test.js +0 -119
  253. package/dist/helpers/__tests__/user-provided-git.test.js.map +0 -1
  254. package/dist/helpers/__tests__/utils.test.d.ts +0 -1
  255. package/dist/helpers/__tests__/utils.test.js +0 -429
  256. package/dist/helpers/__tests__/utils.test.js.map +0 -1
  257. package/dist/helpers/__tests__/validation.test.d.ts +0 -1
  258. package/dist/helpers/__tests__/validation.test.js +0 -25
  259. package/dist/helpers/__tests__/validation.test.js.map +0 -1
  260. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.d.ts +0 -1
  261. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.js +0 -103
  262. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.js.map +0 -1
  263. package/dist/helpers/git/__tests__/format-git-span-data.test.d.ts +0 -1
  264. package/dist/helpers/git/__tests__/format-git-span-data.test.js +0 -121
  265. package/dist/helpers/git/__tests__/format-git-span-data.test.js.map +0 -1
  266. package/dist/helpers/git/__tests__/get-git-data.test.d.ts +0 -1
  267. package/dist/helpers/git/__tests__/get-git-data.test.js +0 -72
  268. package/dist/helpers/git/__tests__/get-git-data.test.js.map +0 -1
@@ -1,721 +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
- jest.mock('../../loggroup');
13
- const client_lambda_1 = require("@aws-sdk/client-lambda");
14
- const aws_sdk_client_mock_1 = require("aws-sdk-client-mock");
15
- const constants_1 = require("../../../../constants");
16
- const fixtures_1 = require("../../../../helpers/__tests__/fixtures");
17
- const constants_2 = require("../../constants");
18
- const instrument_1 = require("../../functions/instrument");
19
- const fixtures_2 = require("../fixtures");
20
- describe('instrument', () => {
21
- describe('calculateUpdateRequest', () => {
22
- const OLD_ENV = process.env;
23
- beforeEach(() => {
24
- jest.resetModules();
25
- process.env = {};
26
- });
27
- afterAll(() => {
28
- process.env = OLD_ENV;
29
- });
30
- test('calculates an update request with just lambda library layers', () => __awaiter(void 0, void 0, void 0, function* () {
31
- const runtime = client_lambda_1.Runtime.nodejs20x;
32
- const config = {
33
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
34
- Handler: 'index.handler',
35
- Layers: [],
36
- Runtime: runtime,
37
- };
38
- const settings = {
39
- flushMetricsToLogs: false,
40
- layerAWSAccount: fixtures_2.mockAwsAccount,
41
- layerVersion: 5,
42
- mergeXrayTraces: false,
43
- tracingEnabled: false,
44
- };
45
- const region = 'sa-east-1';
46
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
47
- expect(updateRequest).toMatchInlineSnapshot(`
48
- {
49
- "Environment": {
50
- "Variables": {
51
- "DD_FLUSH_TO_LOG": "false",
52
- "DD_LAMBDA_HANDLER": "index.handler",
53
- "DD_MERGE_XRAY_TRACES": "false",
54
- "DD_SITE": "datadoghq.com",
55
- "DD_TRACE_ENABLED": "false",
56
- },
57
- },
58
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
59
- "Handler": "/opt/nodejs/node_modules/datadog-lambda-js/handler.handler",
60
- "Layers": [
61
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Node20-x:5",
62
- ],
63
- }
64
- `);
65
- }));
66
- test.each([
67
- [client_lambda_1.Runtime.python310, 'Datadog-Python310'],
68
- [client_lambda_1.Runtime.python311, 'Datadog-Python311'],
69
- [client_lambda_1.Runtime.python312, 'Datadog-Python312'],
70
- ])('calculates an update request for %s', (runtime, layer) => __awaiter(void 0, void 0, void 0, function* () {
71
- const config = {
72
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
73
- Handler: 'index.handler',
74
- Layers: [],
75
- Runtime: runtime,
76
- };
77
- const settings = {
78
- flushMetricsToLogs: false,
79
- layerAWSAccount: fixtures_2.mockAwsAccount,
80
- layerVersion: 71,
81
- mergeXrayTraces: false,
82
- tracingEnabled: false,
83
- };
84
- const region = 'sa-east-1';
85
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
86
- expect(updateRequest).toMatchInlineSnapshot(`
87
- {
88
- "Environment": {
89
- "Variables": {
90
- "DD_FLUSH_TO_LOG": "false",
91
- "DD_LAMBDA_HANDLER": "index.handler",
92
- "DD_MERGE_XRAY_TRACES": "false",
93
- "DD_SITE": "datadoghq.com",
94
- "DD_TRACE_ENABLED": "false",
95
- },
96
- },
97
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
98
- "Handler": "datadog_lambda.handler.handler",
99
- "Layers": [
100
- "arn:aws:lambda:sa-east-1:123456789012:layer:${layer}:71",
101
- ],
102
- }
103
- `);
104
- }));
105
- test('calculates an update request with just lambda library layers in arm architecture', () => __awaiter(void 0, void 0, void 0, function* () {
106
- const runtime = client_lambda_1.Runtime.python39;
107
- const config = {
108
- Architectures: [client_lambda_1.Architecture.arm64],
109
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
110
- Handler: 'handler.hello',
111
- Layers: [],
112
- Runtime: runtime,
113
- };
114
- const settings = {
115
- flushMetricsToLogs: false,
116
- layerAWSAccount: fixtures_2.mockAwsAccount,
117
- layerVersion: 11,
118
- mergeXrayTraces: false,
119
- tracingEnabled: false,
120
- };
121
- const region = 'sa-east-1';
122
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
123
- expect(updateRequest).toMatchInlineSnapshot(`
124
- {
125
- "Environment": {
126
- "Variables": {
127
- "DD_FLUSH_TO_LOG": "false",
128
- "DD_LAMBDA_HANDLER": "handler.hello",
129
- "DD_MERGE_XRAY_TRACES": "false",
130
- "DD_SITE": "datadoghq.com",
131
- "DD_TRACE_ENABLED": "false",
132
- },
133
- },
134
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
135
- "Handler": "datadog_lambda.handler.handler",
136
- "Layers": [
137
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Python39-ARM:11",
138
- ],
139
- }
140
- `);
141
- }));
142
- test('calculates an update request with a lambda library, extension, and DATADOG_API_KEY', () => __awaiter(void 0, void 0, void 0, function* () {
143
- process.env[constants_1.CI_API_KEY_ENV_VAR] = fixtures_1.MOCK_DATADOG_API_KEY;
144
- const runtime = client_lambda_1.Runtime.nodejs20x;
145
- const config = {
146
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
147
- Handler: 'index.handler',
148
- Layers: [],
149
- Runtime: runtime,
150
- };
151
- const settings = {
152
- extensionVersion: 6,
153
- flushMetricsToLogs: false,
154
- layerAWSAccount: fixtures_2.mockAwsAccount,
155
- layerVersion: 5,
156
- mergeXrayTraces: false,
157
- tracingEnabled: false,
158
- };
159
- const region = 'sa-east-1';
160
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
161
- expect(updateRequest).toMatchInlineSnapshot(`
162
- {
163
- "Environment": {
164
- "Variables": {
165
- "DD_API_KEY": "02aeb762fff59ac0d5ad1536cd9633bd",
166
- "DD_LAMBDA_HANDLER": "index.handler",
167
- "DD_MERGE_XRAY_TRACES": "false",
168
- "DD_SITE": "datadoghq.com",
169
- "DD_TRACE_ENABLED": "false",
170
- },
171
- },
172
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
173
- "Handler": "/opt/nodejs/node_modules/datadog-lambda-js/handler.handler",
174
- "Layers": [
175
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Extension:6",
176
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Node20-x:5",
177
- ],
178
- }
179
- `);
180
- }));
181
- test('calculates an update request with a lambda library, extension, and DD_API_KEY', () => __awaiter(void 0, void 0, void 0, function* () {
182
- process.env[constants_1.API_KEY_ENV_VAR] = 'SOME-DD-API-KEY';
183
- const runtime = client_lambda_1.Runtime.nodejs20x;
184
- const config = {
185
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
186
- Handler: 'index.handler',
187
- Layers: [],
188
- Runtime: runtime,
189
- };
190
- const settings = {
191
- extensionVersion: 6,
192
- flushMetricsToLogs: false,
193
- layerAWSAccount: fixtures_2.mockAwsAccount,
194
- layerVersion: 5,
195
- mergeXrayTraces: false,
196
- tracingEnabled: false,
197
- };
198
- const region = 'sa-east-1';
199
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
200
- expect(updateRequest).toMatchInlineSnapshot(`
201
- {
202
- "Environment": {
203
- "Variables": {
204
- "DD_API_KEY": "SOME-DD-API-KEY",
205
- "DD_LAMBDA_HANDLER": "index.handler",
206
- "DD_MERGE_XRAY_TRACES": "false",
207
- "DD_SITE": "datadoghq.com",
208
- "DD_TRACE_ENABLED": "false",
209
- },
210
- },
211
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
212
- "Handler": "/opt/nodejs/node_modules/datadog-lambda-js/handler.handler",
213
- "Layers": [
214
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Extension:6",
215
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Node20-x:5",
216
- ],
217
- }
218
- `);
219
- }));
220
- test('calculates an update request with a lambda library, extension, and DATADOG_API_KEY_SECRET_ARN', () => __awaiter(void 0, void 0, void 0, function* () {
221
- process.env[constants_2.CI_API_KEY_SECRET_ARN_ENV_VAR] = 'some-secret:arn:from:aws';
222
- const runtime = client_lambda_1.Runtime.python39;
223
- const config = {
224
- FunctionArn: 'arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world',
225
- Handler: 'index.handler',
226
- Layers: [],
227
- Runtime: runtime,
228
- };
229
- const settings = {
230
- extensionVersion: 11,
231
- flushMetricsToLogs: false,
232
- layerAWSAccount: fixtures_2.mockAwsAccount,
233
- layerVersion: 49,
234
- mergeXrayTraces: false,
235
- tracingEnabled: false,
236
- };
237
- const region = 'sa-east-1';
238
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
239
- expect(updateRequest).toMatchInlineSnapshot(`
240
- {
241
- "Environment": {
242
- "Variables": {
243
- "DD_API_KEY_SECRET_ARN": "some-secret:arn:from:aws",
244
- "DD_LAMBDA_HANDLER": "index.handler",
245
- "DD_MERGE_XRAY_TRACES": "false",
246
- "DD_SITE": "datadoghq.com",
247
- "DD_TRACE_ENABLED": "false",
248
- },
249
- },
250
- "FunctionName": "arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world",
251
- "Handler": "datadog_lambda.handler.handler",
252
- "Layers": [
253
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Extension:11",
254
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Python39:49",
255
- ],
256
- }
257
- `);
258
- }));
259
- test('calculates an update request with a lambda library, extension, and DATADOG_KMS_API_KEY', () => __awaiter(void 0, void 0, void 0, function* () {
260
- process.env[constants_2.CI_KMS_API_KEY_ENV_VAR] = '5678';
261
- const runtime = client_lambda_1.Runtime.python39;
262
- const config = {
263
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
264
- Handler: 'index.handler',
265
- Layers: [],
266
- Runtime: runtime,
267
- };
268
- const settings = {
269
- extensionVersion: 6,
270
- flushMetricsToLogs: false,
271
- layerAWSAccount: fixtures_2.mockAwsAccount,
272
- layerVersion: 5,
273
- mergeXrayTraces: false,
274
- tracingEnabled: false,
275
- };
276
- const region = 'sa-east-1';
277
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
278
- expect(updateRequest).toMatchInlineSnapshot(`
279
- {
280
- "Environment": {
281
- "Variables": {
282
- "DD_KMS_API_KEY": "5678",
283
- "DD_LAMBDA_HANDLER": "index.handler",
284
- "DD_MERGE_XRAY_TRACES": "false",
285
- "DD_SITE": "datadoghq.com",
286
- "DD_TRACE_ENABLED": "false",
287
- },
288
- },
289
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
290
- "Handler": "datadog_lambda.handler.handler",
291
- "Layers": [
292
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Extension:6",
293
- "arn:aws:lambda:sa-east-1:123456789012:layer:Datadog-Python39:5",
294
- ],
295
- }
296
- `);
297
- }));
298
- test('prioritizes the KMS API KEY when all of them are exported', () => __awaiter(void 0, void 0, void 0, function* () {
299
- process.env = {
300
- [constants_1.CI_API_KEY_ENV_VAR]: fixtures_1.MOCK_DATADOG_API_KEY,
301
- [constants_2.CI_API_KEY_SECRET_ARN_ENV_VAR]: '5678',
302
- [constants_2.CI_KMS_API_KEY_ENV_VAR]: 'should-be-selected',
303
- };
304
- const config = {
305
- FunctionArn: 'arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world',
306
- Handler: 'index.handler',
307
- Layers: [],
308
- };
309
- const runtime = 'python3.9';
310
- const region = 'sa-east-1';
311
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, {}, region, runtime);
312
- expect(updateRequest).toMatchInlineSnapshot(`
313
- {
314
- "Environment": {
315
- "Variables": {
316
- "DD_KMS_API_KEY": "should-be-selected",
317
- "DD_LAMBDA_HANDLER": "index.handler",
318
- "DD_SITE": "datadoghq.com",
319
- },
320
- },
321
- "FunctionName": "arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world",
322
- }
323
- `);
324
- }));
325
- test("doesn't set DD_FLUSH_TO_LOGS when extension is being used", () => __awaiter(void 0, void 0, void 0, function* () {
326
- process.env[constants_1.CI_API_KEY_ENV_VAR] = fixtures_1.MOCK_DATADOG_API_KEY;
327
- const config = {
328
- FunctionArn: 'arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world',
329
- Handler: 'index.handler',
330
- Layers: [],
331
- };
332
- const runtime = 'python3.9';
333
- const region = 'sa-east-1';
334
- const settings = {
335
- extensionVersion: 13,
336
- flushMetricsToLogs: true,
337
- mergeXrayTraces: false,
338
- tracingEnabled: false,
339
- };
340
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
341
- expect(updateRequest).toMatchInlineSnapshot(`
342
- {
343
- "Environment": {
344
- "Variables": {
345
- "DD_API_KEY": "02aeb762fff59ac0d5ad1536cd9633bd",
346
- "DD_LAMBDA_HANDLER": "index.handler",
347
- "DD_MERGE_XRAY_TRACES": "false",
348
- "DD_SITE": "datadoghq.com",
349
- "DD_TRACE_ENABLED": "false",
350
- },
351
- },
352
- "FunctionName": "arn:aws:lambda:sa-east-1:123456789012:function:lambda-hello-world",
353
- "Layers": [
354
- "arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Extension:13",
355
- ],
356
- }
357
- `);
358
- }));
359
- test('by default calculates an update request with DATADOG_SITE being set to datadoghq.com', () => __awaiter(void 0, void 0, void 0, function* () {
360
- const runtime = client_lambda_1.Runtime.python39;
361
- const config = {
362
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
363
- Handler: 'index.handler',
364
- Layers: [],
365
- Runtime: runtime,
366
- };
367
- const settings = {
368
- flushMetricsToLogs: false,
369
- layerAWSAccount: fixtures_2.mockAwsAccount,
370
- mergeXrayTraces: false,
371
- tracingEnabled: false,
372
- };
373
- const region = 'sa-east-1';
374
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
375
- expect(updateRequest).toMatchInlineSnapshot(`
376
- {
377
- "Environment": {
378
- "Variables": {
379
- "DD_FLUSH_TO_LOG": "false",
380
- "DD_LAMBDA_HANDLER": "index.handler",
381
- "DD_MERGE_XRAY_TRACES": "false",
382
- "DD_SITE": "datadoghq.com",
383
- "DD_TRACE_ENABLED": "false",
384
- },
385
- },
386
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
387
- }
388
- `);
389
- }));
390
- test('calculates an update request with DATADOG_SITE being set to datadoghq.eu', () => __awaiter(void 0, void 0, void 0, function* () {
391
- process.env.DATADOG_SITE = 'datadoghq.eu';
392
- const config = {
393
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
394
- Handler: 'index.handler',
395
- Layers: [],
396
- };
397
- const settings = {
398
- flushMetricsToLogs: false,
399
- layerAWSAccount: fixtures_2.mockAwsAccount,
400
- mergeXrayTraces: false,
401
- tracingEnabled: false,
402
- };
403
- const region = 'sa-east-1';
404
- const runtime = 'python3.9';
405
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
406
- expect(updateRequest).toMatchInlineSnapshot(`
407
- {
408
- "Environment": {
409
- "Variables": {
410
- "DD_FLUSH_TO_LOG": "false",
411
- "DD_LAMBDA_HANDLER": "index.handler",
412
- "DD_MERGE_XRAY_TRACES": "false",
413
- "DD_SITE": "datadoghq.eu",
414
- "DD_TRACE_ENABLED": "false",
415
- },
416
- },
417
- "FunctionName": "arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world",
418
- }
419
- `);
420
- }));
421
- test('throws an error when an invalid DATADOG_SITE url is given', () => __awaiter(void 0, void 0, void 0, function* () {
422
- process.env.DATADOG_SITE = 'datacathq.eu';
423
- const config = {
424
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
425
- Handler: 'index.handler',
426
- Layers: [],
427
- };
428
- const settings = {
429
- flushMetricsToLogs: false,
430
- interactive: false,
431
- layerAWSAccount: fixtures_2.mockAwsAccount,
432
- layerVersion: 5,
433
- mergeXrayTraces: false,
434
- tracingEnabled: false,
435
- };
436
- const region = 'us-east-1';
437
- const runtime = 'python3.9';
438
- let error;
439
- try {
440
- yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
441
- }
442
- catch (e) {
443
- if (e instanceof Error) {
444
- error = e;
445
- }
446
- }
447
- expect(error === null || error === void 0 ? void 0 : error.message).toBe('Warning: Invalid site URL. Must be either datadoghq.com, datadoghq.eu, us3.datadoghq.com, us5.datadoghq.com, ap1.datadoghq.com, or ddog-gov.com.');
448
- }));
449
- test('throws an error when neither DATADOG_API_KEY nor DATADOG_KMS_API_KEY are given through the environment while using extensionVersion', () => __awaiter(void 0, void 0, void 0, function* () {
450
- const config = {
451
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
452
- Handler: 'index.handler',
453
- Layers: [],
454
- };
455
- const settings = {
456
- extensionVersion: 6,
457
- flushMetricsToLogs: false,
458
- layerAWSAccount: fixtures_2.mockAwsAccount,
459
- layerVersion: 5,
460
- mergeXrayTraces: false,
461
- tracingEnabled: false,
462
- };
463
- const region = 'us-east-1';
464
- const runtime = 'python3.9';
465
- let error;
466
- try {
467
- yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
468
- }
469
- catch (e) {
470
- if (e instanceof Error) {
471
- error = e;
472
- }
473
- }
474
- expect(error === null || error === void 0 ? void 0 : error.message).toBe("When 'extensionLayer' is set, DATADOG_API_KEY, DATADOG_KMS_API_KEY, or DATADOG_API_KEY_SECRET_ARN must also be set");
475
- }));
476
- test('throws error when trying to add `DD_API_KEY_SECRET_ARN` while using sync metrics in a node runtime', () => __awaiter(void 0, void 0, void 0, function* () {
477
- process.env[constants_2.CI_API_KEY_SECRET_ARN_ENV_VAR] = 'some-secret:arn:from:aws';
478
- const runtime = client_lambda_1.Runtime.nodejs20x;
479
- const region = 'us-east-1';
480
- const config = {
481
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
482
- Handler: 'index.handler',
483
- Layers: [],
484
- Runtime: runtime,
485
- };
486
- const settings = {
487
- flushMetricsToLogs: false,
488
- layerAWSAccount: fixtures_2.mockAwsAccount,
489
- layerVersion: 13,
490
- mergeXrayTraces: false,
491
- tracingEnabled: false,
492
- };
493
- let error;
494
- try {
495
- yield (0, instrument_1.calculateUpdateRequest)(config, settings, region, runtime);
496
- }
497
- catch (e) {
498
- if (e instanceof Error) {
499
- error = e;
500
- }
501
- }
502
- expect(error === null || error === void 0 ? void 0 : error.message).toBe('`apiKeySecretArn` is not supported for Node runtimes when using Synchronous Metrics. Use either `apiKey` or `apiKmsKey`.');
503
- }));
504
- describe('test universal instrumentation workflow for Java and .Net', () => {
505
- const region = 'us-east-1';
506
- const config = {
507
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
508
- Handler: 'index.handler',
509
- Layers: [],
510
- Runtime: 'runtime',
511
- };
512
- const settings = {
513
- flushMetricsToLogs: false,
514
- layerAWSAccount: fixtures_2.mockAwsAccount,
515
- layerVersion: 13,
516
- mergeXrayTraces: false,
517
- tracingEnabled: false,
518
- };
519
- const dotnetRuntime = client_lambda_1.Runtime.dotnet6;
520
- const javaRuntime = client_lambda_1.Runtime.java11;
521
- describe(`test for runtime ${dotnetRuntime}`, () => {
522
- const dotNetConfig = Object.assign(Object.assign({}, config), { Runtime: dotnetRuntime });
523
- const dotNetConfigOnArm86 = Object.assign(Object.assign({}, config), { Runtime: dotnetRuntime, Architectures: [client_lambda_1.Architecture.arm64] });
524
- test('should throw error when the extension version and trace version are not compatible', () => __awaiter(void 0, void 0, void 0, function* () {
525
- process.env[constants_2.CI_KMS_API_KEY_ENV_VAR] = '5678';
526
- const badSettings = Object.assign(Object.assign({}, settings), { extensionVersion: 24, layerVersion: 3 });
527
- let error;
528
- try {
529
- yield (0, instrument_1.calculateUpdateRequest)(dotNetConfig, badSettings, region, dotnetRuntime);
530
- }
531
- catch (e) {
532
- if (e instanceof Error) {
533
- error = e;
534
- }
535
- }
536
- expect(error === null || error === void 0 ? void 0 : error.message).toBe(`For the ${dotnetRuntime} runtime, the dd-trace version 3 is not compatible with the dd-extension version 24`);
537
- }));
538
- test('should throw error if it is running on arm64 with an old dd-extension version', () => __awaiter(void 0, void 0, void 0, function* () {
539
- process.env[constants_2.CI_KMS_API_KEY_ENV_VAR] = '5678';
540
- const curSettings = Object.assign(Object.assign({}, settings), { extensionVersion: 23 });
541
- let error;
542
- try {
543
- yield (0, instrument_1.calculateUpdateRequest)(dotNetConfigOnArm86, curSettings, region, dotnetRuntime);
544
- }
545
- catch (e) {
546
- if (e instanceof Error) {
547
- error = e;
548
- }
549
- }
550
- expect(error === null || error === void 0 ? void 0 : error.message).toBe('Instrumenting arm64 architecture is not supported for the given dd-extension version. Please choose the latest dd-extension version or use x86_64 architecture.');
551
- }));
552
- const baseVariables = {
553
- DD_KMS_API_KEY: '5678',
554
- DD_MERGE_XRAY_TRACES: 'false',
555
- DD_SITE: 'datadoghq.com',
556
- DD_TRACE_ENABLED: 'false',
557
- };
558
- const compatibleTracerAndExtension = {
559
- Environment: {
560
- Variables: Object.assign(Object.assign({}, baseVariables), { AWS_LAMBDA_EXEC_WRAPPER: '/opt/datadog_wrapper' }),
561
- },
562
- FunctionName: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
563
- Layers: [
564
- 'arn:aws:lambda:us-east-1:123456789012:layer:Datadog-Extension:25',
565
- 'arn:aws:lambda:us-east-1:123456789012:layer:dd-trace-dotnet:4',
566
- ],
567
- };
568
- const oldExtensionVersion = {
569
- Environment: {
570
- Variables: Object.assign(Object.assign({}, baseVariables), { CORECLR_ENABLE_PROFILING: '1', CORECLR_PROFILER: '{846F5F1C-F9AE-4B07-969E-05C26BC060D8}', CORECLR_PROFILER_PATH: '/opt/datadog/Datadog.Trace.ClrProfiler.Native.so', DD_DOTNET_TRACER_HOME: '/opt/datadog' }),
571
- },
572
- FunctionName: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
573
- Layers: [
574
- 'arn:aws:lambda:us-east-1:123456789012:layer:Datadog-Extension:23',
575
- 'arn:aws:lambda:us-east-1:123456789012:layer:dd-trace-dotnet:2',
576
- ],
577
- };
578
- const traceUndefined = {
579
- Environment: {
580
- Variables: Object.assign(Object.assign({}, baseVariables), { CORECLR_ENABLE_PROFILING: '1', CORECLR_PROFILER: '{846F5F1C-F9AE-4B07-969E-05C26BC060D8}', CORECLR_PROFILER_PATH: '/opt/datadog/Datadog.Trace.ClrProfiler.Native.so', DD_DOTNET_TRACER_HOME: '/opt/datadog' }),
581
- },
582
- FunctionName: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
583
- Layers: ['arn:aws:lambda:us-east-1:123456789012:layer:Datadog-Extension:15'],
584
- };
585
- test.each `
586
- extensionVersion | traceVersion | outputResult
587
- ${25} | ${4} | ${compatibleTracerAndExtension}
588
- ${23} | ${2} | ${oldExtensionVersion}
589
- ${15} | ${undefined} | ${traceUndefined}
590
- `('should the output match the expected if extensionVersion=$extensionVersion and traceVersion=$traceVersion', ({ extensionVersion, traceVersion, outputResult }) => __awaiter(void 0, void 0, void 0, function* () {
591
- const curSettings = Object.assign(Object.assign({}, settings), { extensionVersion, layerVersion: traceVersion });
592
- process.env[constants_2.CI_KMS_API_KEY_ENV_VAR] = '5678';
593
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(dotNetConfig, curSettings, region, dotnetRuntime);
594
- expect(updateRequest).toEqual(outputResult);
595
- }));
596
- });
597
- describe(`test for runtime ${javaRuntime}`, () => {
598
- const javaConfig = Object.assign(Object.assign({}, config), { Runtime: javaRuntime });
599
- test('should throw error when the extension version and trace version are not compatible', () => __awaiter(void 0, void 0, void 0, function* () {
600
- process.env[constants_2.CI_KMS_API_KEY_ENV_VAR] = '5678';
601
- const badSettings = Object.assign(Object.assign({}, settings), { extensionVersion: 24, layerVersion: 4 });
602
- let error;
603
- try {
604
- yield (0, instrument_1.calculateUpdateRequest)(javaConfig, badSettings, region, javaRuntime);
605
- }
606
- catch (e) {
607
- if (e instanceof Error) {
608
- error = e;
609
- }
610
- }
611
- expect(error === null || error === void 0 ? void 0 : error.message).toBe(`For the ${javaRuntime} runtime, the dd-trace version 4 is not compatible with the dd-extension version 24`);
612
- }));
613
- const baseVariables = {
614
- DD_KMS_API_KEY: '5678',
615
- DD_MERGE_XRAY_TRACES: 'false',
616
- DD_SITE: 'datadoghq.com',
617
- DD_TRACE_ENABLED: 'false',
618
- };
619
- const compatibleTracerAndExtension = {
620
- Environment: {
621
- Variables: Object.assign(Object.assign({}, baseVariables), { AWS_LAMBDA_EXEC_WRAPPER: '/opt/datadog_wrapper' }),
622
- },
623
- FunctionName: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
624
- Layers: [
625
- 'arn:aws:lambda:us-east-1:123456789012:layer:Datadog-Extension:25',
626
- 'arn:aws:lambda:us-east-1:123456789012:layer:dd-trace-java:5',
627
- ],
628
- };
629
- const oldExtensionVersion = {
630
- Environment: {
631
- Variables: Object.assign({}, baseVariables),
632
- },
633
- FunctionName: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
634
- Layers: [
635
- 'arn:aws:lambda:us-east-1:123456789012:layer:Datadog-Extension:23',
636
- 'arn:aws:lambda:us-east-1:123456789012:layer:dd-trace-java:2',
637
- ],
638
- };
639
- const traceUndefined = {
640
- Environment: {
641
- Variables: Object.assign({}, baseVariables),
642
- },
643
- FunctionName: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
644
- Layers: ['arn:aws:lambda:us-east-1:123456789012:layer:Datadog-Extension:15'],
645
- };
646
- test.each `
647
- extensionVersion | traceVersion | outputResult
648
- ${25} | ${5} | ${compatibleTracerAndExtension}
649
- ${23} | ${2} | ${oldExtensionVersion}
650
- ${15} | ${undefined} | ${traceUndefined}
651
- `('should the output match the expected if extensionVersion=$extensionVersion and traceVersion=$traceVersion', ({ extensionVersion, traceVersion, outputResult }) => __awaiter(void 0, void 0, void 0, function* () {
652
- const curSettings = Object.assign(Object.assign({}, settings), { extensionVersion, layerVersion: traceVersion });
653
- process.env[constants_2.CI_KMS_API_KEY_ENV_VAR] = '5678';
654
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(javaConfig, curSettings, region, javaRuntime);
655
- expect(updateRequest).toEqual(outputResult);
656
- }));
657
- });
658
- });
659
- describe('sets handlers correctly', () => {
660
- const lambdaClientMock = (0, aws_sdk_client_mock_1.mockClient)(client_lambda_1.LambdaClient);
661
- describe('interactive mode', () => {
662
- const extensionLayer = `arn:aws:lambda:us-east-1:${constants_2.DEFAULT_LAYER_AWS_ACCOUNT}:layer:Datadog-Extension`;
663
- beforeAll(() => {
664
- lambdaClientMock.reset();
665
- process.env = {};
666
- (0, fixtures_2.mockLambdaClientCommands)(lambdaClientMock);
667
- });
668
- afterAll(() => {
669
- process.env = OLD_ENV;
670
- });
671
- it.each([
672
- [
673
- 'python',
674
- {
675
- runtime: client_lambda_1.Runtime.python311,
676
- layer: 'Datadog-Python311',
677
- },
678
- 'datadog_lambda.handler.handler',
679
- ],
680
- [
681
- 'node',
682
- {
683
- runtime: client_lambda_1.Runtime.nodejs16x,
684
- layer: 'Datadog-Node16-x',
685
- },
686
- '/opt/nodejs/node_modules/datadog-lambda-js/handler.handler',
687
- ],
688
- ])('%s', (_, test, expected) => __awaiter(void 0, void 0, void 0, function* () {
689
- process.env[constants_1.CI_API_KEY_ENV_VAR] = fixtures_1.MOCK_DATADOG_API_KEY;
690
- const libraryLayer = `arn:aws:lambda:us-east-1:${constants_2.DEFAULT_LAYER_AWS_ACCOUNT}:layer:${test.layer}`;
691
- // Mock Layers for interactive mode.
692
- (0, fixtures_2.mockLambdaLayers)(lambdaClientMock, {
693
- [`${libraryLayer}:1`]: {
694
- LayerName: `${libraryLayer}`,
695
- VersionNumber: 1,
696
- },
697
- [`${extensionLayer}:1`]: {
698
- LayerName: `${extensionLayer}`,
699
- VersionNumber: 1,
700
- },
701
- });
702
- const config = {
703
- FunctionArn: 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
704
- Handler: 'index.handler',
705
- Layers: [],
706
- Runtime: test.runtime,
707
- };
708
- const settings = {
709
- flushMetricsToLogs: false,
710
- interactive: true,
711
- mergeXrayTraces: false,
712
- tracingEnabled: false,
713
- };
714
- const updateRequest = yield (0, instrument_1.calculateUpdateRequest)(config, settings, 'us-east-1', test.runtime);
715
- expect(updateRequest === null || updateRequest === void 0 ? void 0 : updateRequest.Handler).toBe(expected);
716
- }));
717
- });
718
- });
719
- });
720
- });
721
- //# sourceMappingURL=instrument.part2.test.js.map