@datadog/datadog-ci 2.4.0 → 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 (203) hide show
  1. package/LICENSE-3rdparty.csv +1 -0
  2. package/dist/commands/dsyms/upload.js +2 -1
  3. package/dist/commands/dsyms/upload.js.map +1 -1
  4. package/dist/commands/flutter-symbols/helpers.js +1 -1
  5. package/dist/commands/flutter-symbols/helpers.js.map +1 -1
  6. package/dist/commands/flutter-symbols/upload.js +1 -1
  7. package/dist/commands/flutter-symbols/upload.js.map +1 -1
  8. package/dist/commands/lambda/functions/commons.d.ts +4 -2
  9. package/dist/commands/lambda/functions/commons.js +71 -12
  10. package/dist/commands/lambda/functions/commons.js.map +1 -1
  11. package/dist/commands/lambda/instrument.d.ts +2 -0
  12. package/dist/commands/lambda/instrument.js +28 -13
  13. package/dist/commands/lambda/instrument.js.map +1 -1
  14. package/dist/commands/lambda/interfaces.d.ts +6 -0
  15. package/dist/commands/lambda/loggroup.js +7 -1
  16. package/dist/commands/lambda/loggroup.js.map +1 -1
  17. package/dist/commands/lambda/renderer.d.ts +74 -2
  18. package/dist/commands/lambda/renderer.js +98 -5
  19. package/dist/commands/lambda/renderer.js.map +1 -1
  20. package/dist/commands/lambda/uninstrument.js +14 -18
  21. package/dist/commands/lambda/uninstrument.js.map +1 -1
  22. package/dist/commands/react-native/upload.js +2 -2
  23. package/dist/commands/react-native/upload.js.map +1 -1
  24. package/dist/commands/react-native/xcode.js +5 -0
  25. package/dist/commands/react-native/xcode.js.map +1 -1
  26. package/dist/commands/synthetics/api.d.ts +2 -1
  27. package/dist/commands/synthetics/api.js +7 -0
  28. package/dist/commands/synthetics/api.js.map +1 -1
  29. package/dist/commands/synthetics/command.js +11 -2
  30. package/dist/commands/synthetics/command.js.map +1 -1
  31. package/dist/commands/synthetics/index.d.ts +1 -0
  32. package/dist/commands/synthetics/index.js +3 -1
  33. package/dist/commands/synthetics/index.js.map +1 -1
  34. package/dist/commands/synthetics/interfaces.d.ts +4 -1
  35. package/dist/commands/synthetics/reporters/default.d.ts +3 -2
  36. package/dist/commands/synthetics/reporters/default.js +19 -5
  37. package/dist/commands/synthetics/reporters/default.js.map +1 -1
  38. package/dist/commands/synthetics/reporters/junit.d.ts +2 -2
  39. package/dist/commands/synthetics/reporters/junit.js +1 -1
  40. package/dist/commands/synthetics/reporters/junit.js.map +1 -1
  41. package/dist/commands/synthetics/run-test.js +9 -1
  42. package/dist/commands/synthetics/run-test.js.map +1 -1
  43. package/dist/commands/synthetics/utils.d.ts +4 -2
  44. package/dist/commands/synthetics/utils.js +14 -5
  45. package/dist/commands/synthetics/utils.js.map +1 -1
  46. package/dist/helpers/ci.js +27 -29
  47. package/dist/helpers/ci.js.map +1 -1
  48. package/dist/helpers/user-provided-git.js +0 -3
  49. package/dist/helpers/user-provided-git.js.map +1 -1
  50. package/dist/helpers/utils.d.ts +3 -3
  51. package/dist/helpers/utils.js +10 -6
  52. package/dist/helpers/utils.js.map +1 -1
  53. package/package.json +7 -5
  54. package/dist/commands/dsyms/__tests__/upload.test.d.ts +0 -1
  55. package/dist/commands/dsyms/__tests__/upload.test.js +0 -297
  56. package/dist/commands/dsyms/__tests__/upload.test.js.map +0 -1
  57. package/dist/commands/dsyms/__tests__/utils.test.d.ts +0 -1
  58. package/dist/commands/dsyms/__tests__/utils.test.js +0 -99
  59. package/dist/commands/dsyms/__tests__/utils.test.js.map +0 -1
  60. package/dist/commands/flutter-symbols/__tests__/upload.test.d.ts +0 -1
  61. package/dist/commands/flutter-symbols/__tests__/upload.test.js +0 -538
  62. package/dist/commands/flutter-symbols/__tests__/upload.test.js.map +0 -1
  63. package/dist/commands/git-metadata/__tests__/git.test.d.ts +0 -1
  64. package/dist/commands/git-metadata/__tests__/git.test.js +0 -148
  65. package/dist/commands/git-metadata/__tests__/git.test.js.map +0 -1
  66. package/dist/commands/git-metadata/__tests__/library.test.d.ts +0 -1
  67. package/dist/commands/git-metadata/__tests__/library.test.js +0 -103
  68. package/dist/commands/git-metadata/__tests__/library.test.js.map +0 -1
  69. package/dist/commands/git-metadata/__tests__/upload.test.d.ts +0 -1
  70. package/dist/commands/git-metadata/__tests__/upload.test.js +0 -60
  71. package/dist/commands/git-metadata/__tests__/upload.test.js.map +0 -1
  72. package/dist/commands/junit/__tests__/api.test.d.ts +0 -1
  73. package/dist/commands/junit/__tests__/api.test.js +0 -9
  74. package/dist/commands/junit/__tests__/api.test.js.map +0 -1
  75. package/dist/commands/junit/__tests__/upload.test.d.ts +0 -1
  76. package/dist/commands/junit/__tests__/upload.test.js +0 -283
  77. package/dist/commands/junit/__tests__/upload.test.js.map +0 -1
  78. package/dist/commands/lambda/__tests__/fixtures.d.ts +0 -49
  79. package/dist/commands/lambda/__tests__/fixtures.js +0 -88
  80. package/dist/commands/lambda/__tests__/fixtures.js.map +0 -1
  81. package/dist/commands/lambda/__tests__/functions/commons.test.d.ts +0 -1
  82. package/dist/commands/lambda/__tests__/functions/commons.test.js +0 -621
  83. package/dist/commands/lambda/__tests__/functions/commons.test.js.map +0 -1
  84. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.d.ts +0 -1
  85. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.js +0 -350
  86. package/dist/commands/lambda/__tests__/functions/instrument.part1.test.js.map +0 -1
  87. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.d.ts +0 -1
  88. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.js +0 -583
  89. package/dist/commands/lambda/__tests__/functions/instrument.part2.test.js.map +0 -1
  90. package/dist/commands/lambda/__tests__/functions/uninstrument.test.d.ts +0 -1
  91. package/dist/commands/lambda/__tests__/functions/uninstrument.test.js +0 -477
  92. package/dist/commands/lambda/__tests__/functions/uninstrument.test.js.map +0 -1
  93. package/dist/commands/lambda/__tests__/functions/versionChecker.test.d.ts +0 -1
  94. package/dist/commands/lambda/__tests__/functions/versionChecker.test.js +0 -33
  95. package/dist/commands/lambda/__tests__/functions/versionChecker.test.js.map +0 -1
  96. package/dist/commands/lambda/__tests__/instrument.test.d.ts +0 -1
  97. package/dist/commands/lambda/__tests__/instrument.test.js +0 -1698
  98. package/dist/commands/lambda/__tests__/instrument.test.js.map +0 -1
  99. package/dist/commands/lambda/__tests__/loggroup.test.d.ts +0 -1
  100. package/dist/commands/lambda/__tests__/loggroup.test.js +0 -266
  101. package/dist/commands/lambda/__tests__/loggroup.test.js.map +0 -1
  102. package/dist/commands/lambda/__tests__/prompt.test.d.ts +0 -1
  103. package/dist/commands/lambda/__tests__/prompt.test.js +0 -235
  104. package/dist/commands/lambda/__tests__/prompt.test.js.map +0 -1
  105. package/dist/commands/lambda/__tests__/tags.test.d.ts +0 -1
  106. package/dist/commands/lambda/__tests__/tags.test.js +0 -253
  107. package/dist/commands/lambda/__tests__/tags.test.js.map +0 -1
  108. package/dist/commands/lambda/__tests__/uninstrument.test.d.ts +0 -1
  109. package/dist/commands/lambda/__tests__/uninstrument.test.js +0 -615
  110. package/dist/commands/lambda/__tests__/uninstrument.test.js.map +0 -1
  111. package/dist/commands/metric/__tests__/metric.test.d.ts +0 -1
  112. package/dist/commands/metric/__tests__/metric.test.js +0 -97
  113. package/dist/commands/metric/__tests__/metric.test.js.map +0 -1
  114. package/dist/commands/react-native/__tests__/codepush.test.d.ts +0 -1
  115. package/dist/commands/react-native/__tests__/codepush.test.js +0 -153
  116. package/dist/commands/react-native/__tests__/codepush.test.js.map +0 -1
  117. package/dist/commands/react-native/__tests__/interfaces.test.d.ts +0 -1
  118. package/dist/commands/react-native/__tests__/interfaces.test.js +0 -52
  119. package/dist/commands/react-native/__tests__/interfaces.test.js.map +0 -1
  120. package/dist/commands/react-native/__tests__/upload.test.d.ts +0 -1
  121. package/dist/commands/react-native/__tests__/upload.test.js +0 -176
  122. package/dist/commands/react-native/__tests__/upload.test.js.map +0 -1
  123. package/dist/commands/react-native/__tests__/xcode.test.d.ts +0 -1
  124. package/dist/commands/react-native/__tests__/xcode.test.js +0 -417
  125. package/dist/commands/react-native/__tests__/xcode.test.js.map +0 -1
  126. package/dist/commands/sourcemaps/__tests__/upload.test.d.ts +0 -1
  127. package/dist/commands/sourcemaps/__tests__/upload.test.js +0 -270
  128. package/dist/commands/sourcemaps/__tests__/upload.test.js.map +0 -1
  129. package/dist/commands/sourcemaps/__tests__/utils.test.d.ts +0 -1
  130. package/dist/commands/sourcemaps/__tests__/utils.test.js +0 -31
  131. package/dist/commands/sourcemaps/__tests__/utils.test.js.map +0 -1
  132. package/dist/commands/synthetics/__tests__/api.test.d.ts +0 -1
  133. package/dist/commands/synthetics/__tests__/api.test.js +0 -273
  134. package/dist/commands/synthetics/__tests__/api.test.js.map +0 -1
  135. package/dist/commands/synthetics/__tests__/cli.test.d.ts +0 -1
  136. package/dist/commands/synthetics/__tests__/cli.test.js +0 -391
  137. package/dist/commands/synthetics/__tests__/cli.test.js.map +0 -1
  138. package/dist/commands/synthetics/__tests__/fixtures.d.ts +0 -119
  139. package/dist/commands/synthetics/__tests__/fixtures.js +0 -386
  140. package/dist/commands/synthetics/__tests__/fixtures.js.map +0 -1
  141. package/dist/commands/synthetics/__tests__/mobile.test.d.ts +0 -1
  142. package/dist/commands/synthetics/__tests__/mobile.test.js +0 -228
  143. package/dist/commands/synthetics/__tests__/mobile.test.js.map +0 -1
  144. package/dist/commands/synthetics/__tests__/reporters/default.test.d.ts +0 -1
  145. package/dist/commands/synthetics/__tests__/reporters/default.test.js +0 -202
  146. package/dist/commands/synthetics/__tests__/reporters/default.test.js.map +0 -1
  147. package/dist/commands/synthetics/__tests__/reporters/junit.test.d.ts +0 -1
  148. package/dist/commands/synthetics/__tests__/reporters/junit.test.js +0 -339
  149. package/dist/commands/synthetics/__tests__/reporters/junit.test.js.map +0 -1
  150. package/dist/commands/synthetics/__tests__/run-test.test.d.ts +0 -1
  151. package/dist/commands/synthetics/__tests__/run-test.test.js +0 -419
  152. package/dist/commands/synthetics/__tests__/run-test.test.js.map +0 -1
  153. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.d.ts +0 -1
  154. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.js +0 -21
  155. package/dist/commands/synthetics/__tests__/tunnel/crypto.test.js.map +0 -1
  156. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.d.ts +0 -1
  157. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.js +0 -80
  158. package/dist/commands/synthetics/__tests__/tunnel/tunnel.test.js.map +0 -1
  159. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.d.ts +0 -1
  160. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js +0 -111
  161. package/dist/commands/synthetics/__tests__/tunnel/websocket.test.js.map +0 -1
  162. package/dist/commands/synthetics/__tests__/utils.test.d.ts +0 -1
  163. package/dist/commands/synthetics/__tests__/utils.test.js +0 -933
  164. package/dist/commands/synthetics/__tests__/utils.test.js.map +0 -1
  165. package/dist/commands/tag/__tests__/tag.test.d.ts +0 -1
  166. package/dist/commands/tag/__tests__/tag.test.js +0 -77
  167. package/dist/commands/tag/__tests__/tag.test.js.map +0 -1
  168. package/dist/commands/trace/__tests__/trace.test.d.ts +0 -1
  169. package/dist/commands/trace/__tests__/trace.test.js +0 -64
  170. package/dist/commands/trace/__tests__/trace.test.js.map +0 -1
  171. package/dist/helpers/__tests__/ci.test.d.ts +0 -1
  172. package/dist/helpers/__tests__/ci.test.js +0 -197
  173. package/dist/helpers/__tests__/ci.test.js.map +0 -1
  174. package/dist/helpers/__tests__/plist.test.d.ts +0 -1
  175. package/dist/helpers/__tests__/plist.test.js +0 -31
  176. package/dist/helpers/__tests__/plist.test.js.map +0 -1
  177. package/dist/helpers/__tests__/retry.test.d.ts +0 -1
  178. package/dist/helpers/__tests__/retry.test.js +0 -99
  179. package/dist/helpers/__tests__/retry.test.js.map +0 -1
  180. package/dist/helpers/__tests__/tags.test.d.ts +0 -1
  181. package/dist/helpers/__tests__/tags.test.js +0 -17
  182. package/dist/helpers/__tests__/tags.test.js.map +0 -1
  183. package/dist/helpers/__tests__/upload.test.d.ts +0 -1
  184. package/dist/helpers/__tests__/upload.test.js +0 -185
  185. package/dist/helpers/__tests__/upload.test.js.map +0 -1
  186. package/dist/helpers/__tests__/user-provided-git.test.d.ts +0 -1
  187. package/dist/helpers/__tests__/user-provided-git.test.js +0 -118
  188. package/dist/helpers/__tests__/user-provided-git.test.js.map +0 -1
  189. package/dist/helpers/__tests__/utils.test.d.ts +0 -1
  190. package/dist/helpers/__tests__/utils.test.js +0 -382
  191. package/dist/helpers/__tests__/utils.test.js.map +0 -1
  192. package/dist/helpers/__tests__/validation.test.d.ts +0 -1
  193. package/dist/helpers/__tests__/validation.test.js +0 -21
  194. package/dist/helpers/__tests__/validation.test.js.map +0 -1
  195. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.d.ts +0 -1
  196. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.js +0 -106
  197. package/dist/helpers/git/__tests__/format-git-sourcemaps-data.test.js.map +0 -1
  198. package/dist/helpers/git/__tests__/format-git-span-data.test.d.ts +0 -1
  199. package/dist/helpers/git/__tests__/format-git-span-data.test.js +0 -67
  200. package/dist/helpers/git/__tests__/format-git-span-data.test.js.map +0 -1
  201. package/dist/helpers/git/__tests__/get-git-data.test.d.ts +0 -1
  202. package/dist/helpers/git/__tests__/get-git-data.test.js +0 -60
  203. package/dist/helpers/git/__tests__/get-git-data.test.js.map +0 -1
@@ -1,621 +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 aws_sdk_1 = require("aws-sdk");
13
- jest.mock('aws-sdk');
14
- const constants_1 = require("../../constants");
15
- const commons_1 = require("../../functions/commons");
16
- const instrument_1 = require("../../instrument");
17
- const fixtures_1 = require("../fixtures");
18
- describe('commons', () => {
19
- describe('addLayerArn', () => {
20
- test('adds layers and removes previous versions', () => {
21
- const runtime = 'python3.9';
22
- const config = {
23
- Runtime: runtime,
24
- };
25
- let layerARNs = [
26
- 'arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Python39:48',
27
- 'arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Extension:10',
28
- ];
29
- const region = 'sa-east-1';
30
- const lambdaLibraryLayerName = constants_1.LAYER_LOOKUP[runtime];
31
- const fullLambdaLibraryLayerArn = commons_1.getLayerArn(config, config.Runtime, region) + ':49';
32
- const fullExtensionLayerArn = commons_1.getLayerArn(config, constants_1.EXTENSION_LAYER_KEY, region) + ':11';
33
- layerARNs = commons_1.addLayerArn(fullLambdaLibraryLayerArn, lambdaLibraryLayerName, layerARNs);
34
- layerARNs = commons_1.addLayerArn(fullExtensionLayerArn, constants_1.DD_LAMBDA_EXTENSION_LAYER_NAME, layerARNs);
35
- expect(layerARNs).toEqual([
36
- 'arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Python39:49',
37
- 'arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Extension:11',
38
- ]);
39
- });
40
- test('swaps layers if architecture is arm64', () => {
41
- const runtime = 'python3.9';
42
- const config = {
43
- Architectures: ['arm64'],
44
- Runtime: runtime,
45
- };
46
- let layerARNs = [
47
- 'arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Python39:49',
48
- 'arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Extension:11',
49
- ];
50
- const region = 'sa-east-1';
51
- const lambdaLibraryLayerName = constants_1.LAYER_LOOKUP[runtime];
52
- const fullLambdaLibraryLayerArn = commons_1.getLayerArn(config, config.Runtime, region) + ':49';
53
- const fullExtensionLayerArn = commons_1.getLayerArn(config, constants_1.EXTENSION_LAYER_KEY, region) + ':11';
54
- layerARNs = commons_1.addLayerArn(fullLambdaLibraryLayerArn, lambdaLibraryLayerName, layerARNs);
55
- layerARNs = commons_1.addLayerArn(fullExtensionLayerArn, constants_1.DD_LAMBDA_EXTENSION_LAYER_NAME, layerARNs);
56
- expect(layerARNs).toEqual([
57
- 'arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Python39-ARM:49',
58
- 'arn:aws:lambda:sa-east-1:464622532012:layer:Datadog-Extension-ARM:11',
59
- ]);
60
- });
61
- });
62
- describe('coerceBoolean', () => {
63
- test('return fallback when none of the values provided can be parsed to boolean', () => {
64
- expect(commons_1.coerceBoolean(true, 'NotBoolean', 123, [], {})).toBe(true);
65
- expect(commons_1.coerceBoolean(false, 'NotBooleanEither', 456, ['An array'], { booleanInObject: true })).toBe(false);
66
- });
67
- test('return the first boolean when one of the values provided can be parsed to boolean', () => {
68
- expect(commons_1.coerceBoolean(true, 'false', 'true')).toBe(false);
69
- expect(commons_1.coerceBoolean(false, 'true', 'False')).toBe(true);
70
- });
71
- test('return the first boolean when one of the values provided is boolean', () => {
72
- expect(commons_1.coerceBoolean(true, false, 'truE', true)).toBe(false);
73
- expect(commons_1.coerceBoolean(false, true, 'False', false)).toBe(true);
74
- });
75
- });
76
- describe('collectFunctionsByRegion', () => {
77
- test('groups functions with region read from arn', () => {
78
- process.env = {};
79
- const command = fixtures_1.createCommand(instrument_1.InstrumentCommand);
80
- const region = 'us-east-1';
81
- command['functions'] = [
82
- 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
83
- 'arn:aws:lambda:us-east-1:123456789012:function:another',
84
- 'arn:aws:lambda:us-east-2:123456789012:function:third-func',
85
- ];
86
- expect(commons_1.collectFunctionsByRegion(command['functions'], region)).toEqual({
87
- 'us-east-1': [
88
- 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
89
- 'arn:aws:lambda:us-east-1:123456789012:function:another',
90
- ],
91
- 'us-east-2': ['arn:aws:lambda:us-east-2:123456789012:function:third-func'],
92
- });
93
- });
94
- test('groups functions in the config object', () => {
95
- process.env = {};
96
- const command = fixtures_1.createCommand(instrument_1.InstrumentCommand);
97
- const region = 'us-east-1';
98
- command['config']['functions'] = [
99
- 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
100
- 'arn:aws:lambda:us-east-1:123456789012:function:another',
101
- 'arn:aws:lambda:us-east-2:123456789012:function:third-func',
102
- ];
103
- expect(commons_1.collectFunctionsByRegion(command['config']['functions'], region)).toEqual({
104
- 'us-east-1': [
105
- 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
106
- 'arn:aws:lambda:us-east-1:123456789012:function:another',
107
- ],
108
- 'us-east-2': ['arn:aws:lambda:us-east-2:123456789012:function:third-func'],
109
- });
110
- });
111
- test('uses default region for functions not in arn format', () => {
112
- process.env = {};
113
- const command = fixtures_1.createCommand(instrument_1.InstrumentCommand);
114
- command['functions'] = [
115
- 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
116
- 'arn:aws:lambda:*:123456789012:function:func-with-wildcard',
117
- 'func-without-region',
118
- 'arn:aws:lambda:us-east-2:123456789012:function:third-func',
119
- ];
120
- command['region'] = 'ap-south-1';
121
- expect(commons_1.collectFunctionsByRegion(command['functions'], command['region'])).toEqual({
122
- 'ap-south-1': ['arn:aws:lambda:*:123456789012:function:func-with-wildcard', 'func-without-region'],
123
- 'us-east-1': ['arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world'],
124
- 'us-east-2': ['arn:aws:lambda:us-east-2:123456789012:function:third-func'],
125
- });
126
- });
127
- test('fails to collect when there are regionless functions and no default region is set', () => {
128
- process.env = {};
129
- const command = fixtures_1.createCommand(instrument_1.InstrumentCommand);
130
- command['functions'] = [
131
- 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world',
132
- 'arn:aws:lambda:*:123456789012:function:func-with-wildcard',
133
- 'func-without-region',
134
- 'arn:aws:lambda:us-east-2:123456789012:function:third-func',
135
- ];
136
- command['region'] = undefined;
137
- command['config']['region'] = undefined;
138
- let functionsGroup;
139
- try {
140
- functionsGroup = commons_1.collectFunctionsByRegion(command['functions'], command['region']);
141
- }
142
- catch (err) {
143
- // Do nothing
144
- }
145
- expect(functionsGroup).toBeUndefined();
146
- });
147
- });
148
- describe('findLatestLayerVersion', () => {
149
- test('finds latests version for Python39', () => __awaiter(void 0, void 0, void 0, function* () {
150
- const layer = `arn:aws:lambda:sa-east-1:${constants_1.DEFAULT_LAYER_AWS_ACCOUNT}:layer:Datadog-Python39`;
151
- aws_sdk_1.Lambda.mockImplementation(() => fixtures_1.makeMockLambda({}, {
152
- [`${layer}:1`]: {
153
- LayerVersionArn: `${layer}:1`,
154
- Version: 1,
155
- },
156
- [`${layer}:2`]: {
157
- LayerVersionArn: `${layer}:2`,
158
- Version: 2,
159
- },
160
- [`${layer}:10`]: {
161
- LayerVersionArn: `${layer}:10`,
162
- Version: 10,
163
- },
164
- [`${layer}:20`]: {
165
- LayerVersionArn: `${layer}:20`,
166
- Version: 20,
167
- },
168
- [`${layer}:30`]: {
169
- LayerVersionArn: `${layer}:30`,
170
- Version: 30,
171
- },
172
- [`${layer}:31`]: {
173
- LayerVersionArn: `${layer}:31`,
174
- Version: 31,
175
- },
176
- [`${layer}:32`]: {
177
- LayerVersionArn: `${layer}:32`,
178
- Version: 32,
179
- },
180
- }));
181
- const runtime = 'python3.9';
182
- const region = 'sa-east-1';
183
- const expectedLatestVersion = 32;
184
- const latestVersionFound = yield commons_1.findLatestLayerVersion(runtime, region);
185
- expect(latestVersionFound).toBe(expectedLatestVersion);
186
- }));
187
- test('finds latests version for Node14', () => __awaiter(void 0, void 0, void 0, function* () {
188
- const layer = `arn:aws:lambda:us-east-1:${constants_1.DEFAULT_LAYER_AWS_ACCOUNT}:layer:Datadog-Node14-x`;
189
- aws_sdk_1.Lambda.mockImplementation(() => fixtures_1.makeMockLambda({}, {
190
- [`${layer}:1`]: {
191
- LayerVersionArn: `${layer}:1`,
192
- Version: 1,
193
- },
194
- [`${layer}:10`]: {
195
- LayerVersionArn: `${layer}:10`,
196
- Version: 10,
197
- },
198
- [`${layer}:20`]: {
199
- LayerVersionArn: `${layer}:20`,
200
- Version: 20,
201
- },
202
- [`${layer}:30`]: {
203
- LayerVersionArn: `${layer}:30`,
204
- Version: 30,
205
- },
206
- [`${layer}:40`]: {
207
- LayerVersionArn: `${layer}:40`,
208
- Version: 40,
209
- },
210
- [`${layer}:41`]: {
211
- LayerVersionArn: `${layer}:41`,
212
- Version: 41,
213
- },
214
- }));
215
- const runtime = 'nodejs14.x';
216
- const region = 'us-east-1';
217
- const expectedLatestVersion = 41;
218
- const latestVersionFound = yield commons_1.findLatestLayerVersion(runtime, region);
219
- expect(latestVersionFound).toBe(expectedLatestVersion);
220
- }));
221
- test('returns 0 when no layer can be found', () => __awaiter(void 0, void 0, void 0, function* () {
222
- ;
223
- aws_sdk_1.Lambda.mockImplementation(() => fixtures_1.makeMockLambda({}, {}));
224
- const runtime = 'python3.7';
225
- const region = 'us-east-1';
226
- const expectedLatestVersion = 0;
227
- const latestVersionFound = yield commons_1.findLatestLayerVersion(runtime, region);
228
- expect(latestVersionFound).toBe(expectedLatestVersion);
229
- }));
230
- });
231
- describe('isMissingAWSCredentials', () => {
232
- const OLD_ENV = process.env;
233
- beforeEach(() => {
234
- jest.resetModules();
235
- process.env = {};
236
- });
237
- afterAll(() => {
238
- process.env = OLD_ENV;
239
- });
240
- test('returns true when only AWS_SECRET_ACCESS_KEY env var is set and `~/.aws/credentials` are missing', () => {
241
- process.env[constants_1.AWS_SECRET_ACCESS_KEY_ENV_VAR] = 'SOME-AWS-SECRET-ACCESS-KEY';
242
- aws_sdk_1.config.credentials = undefined;
243
- expect(commons_1.isMissingAWSCredentials()).toBe(true); // We return true since AWS_ACCESS_KEY_ID_ENV_VAR is missing
244
- });
245
- test('returns true when only AWS_ACCESS_KEY_ID environment variable is set and `~/.aws/credentials` are missing', () => {
246
- process.env[constants_1.AWS_ACCESS_KEY_ID_ENV_VAR] = 'SOME-AWS-ACCESS-KEY-ID';
247
- aws_sdk_1.config.credentials = undefined;
248
- expect(commons_1.isMissingAWSCredentials()).toBe(true); // We return true since AWS_SECRET_ACCESS_KEY_ENV_VAR is missing
249
- });
250
- test('returns false when AWS credentials via environment variables are set', () => {
251
- process.env[constants_1.AWS_ACCESS_KEY_ID_ENV_VAR] = 'SOME-AWS-ACCESS-KEY-ID';
252
- process.env[constants_1.AWS_SECRET_ACCESS_KEY_ENV_VAR] = 'SOME-AWS-SECRET-ACCESS-KEY';
253
- aws_sdk_1.config.credentials = { foo: 'bar' };
254
- expect(commons_1.isMissingAWSCredentials()).toBe(false);
255
- });
256
- test('returns true when both environment variables and `~/.aws/credentials` are missing', () => {
257
- aws_sdk_1.config.credentials = undefined;
258
- expect(commons_1.isMissingAWSCredentials()).toBe(true);
259
- });
260
- test('returns false when AWS credentials via `~/.aws/credentials` are set', () => {
261
- aws_sdk_1.config.credentials = { foo: 'bar' };
262
- expect(commons_1.isMissingAWSCredentials()).toBe(false);
263
- });
264
- });
265
- describe('isMissingDatadogEnvVars', () => {
266
- const OLD_ENV = process.env;
267
- beforeEach(() => {
268
- jest.resetModules();
269
- process.env = {};
270
- });
271
- afterAll(() => {
272
- process.env = OLD_ENV;
273
- });
274
- test('returns true when any Datadog Env Var is missing', () => {
275
- process.env[constants_1.CI_SITE_ENV_VAR] = 'datadoghq.com';
276
- expect(commons_1.isMissingDatadogEnvVars()).toBe(true);
277
- // Reset env
278
- process.env = {};
279
- process.env[constants_1.CI_API_KEY_ENV_VAR] = 'SOME-DATADOG-API-KEY';
280
- expect(commons_1.isMissingDatadogEnvVars()).toBe(true);
281
- process.env = {};
282
- process.env[constants_1.CI_KMS_API_KEY_ENV_VAR] = 'SOME-AWS-KMS-API-KEY-CONTAINING-DATADOG-API-KEY';
283
- expect(commons_1.isMissingDatadogEnvVars()).toBe(true);
284
- process.env = {};
285
- process.env[constants_1.CI_API_KEY_SECRET_ARN_ENV_VAR] = 'SOME-AWS-SECRET-ARN-CONTAINING-DATADOG-API-KEY';
286
- expect(commons_1.isMissingDatadogEnvVars()).toBe(true);
287
- });
288
- test('returns false when Datadog Env Vars are set with DATADOG_API_KEY', () => {
289
- process.env[constants_1.CI_API_KEY_ENV_VAR] = 'SOME-DATADOG-API-KEY';
290
- process.env[constants_1.CI_SITE_ENV_VAR] = 'datadoghq.com';
291
- expect(commons_1.isMissingDatadogEnvVars()).toBe(false);
292
- });
293
- test('returns false when Datadog Env Vars are set with DATADOG_KMS_API_KEY', () => {
294
- process.env[constants_1.CI_KMS_API_KEY_ENV_VAR] = 'SOME-AWS-KMS-API-KEY-CONTAINING-DATADOG-API-KEY';
295
- process.env[constants_1.CI_SITE_ENV_VAR] = 'datadoghq.com';
296
- expect(commons_1.isMissingDatadogEnvVars()).toBe(false);
297
- });
298
- test('returns false when Datadog Env Vars are set with DATADOG_API_KEY_SECRET_ARN', () => {
299
- process.env[constants_1.CI_API_KEY_SECRET_ARN_ENV_VAR] = 'SOME-AWS-SECRET-ARN-CONTAINING-DATADOG-API-KEY';
300
- process.env[constants_1.CI_SITE_ENV_VAR] = 'datadoghq.com';
301
- expect(commons_1.isMissingDatadogEnvVars()).toBe(false);
302
- });
303
- });
304
- describe('isMissingAnyDatadogApiKeyEnvVar', () => {
305
- const OLD_ENV = process.env;
306
- beforeEach(() => {
307
- jest.resetModules();
308
- process.env = {};
309
- });
310
- afterAll(() => {
311
- process.env = OLD_ENV;
312
- });
313
- test('returns true when no Datadog Api Key is set', () => {
314
- expect(commons_1.isMissingAnyDatadogApiKeyEnvVar()).toBe(true);
315
- });
316
- test('returns false when DATADOG_API_KEY is set', () => {
317
- process.env[constants_1.CI_API_KEY_ENV_VAR] = 'SOME-DATADOG-API-KEY';
318
- expect(commons_1.isMissingAnyDatadogApiKeyEnvVar()).toBe(false);
319
- });
320
- test('returns false when DATADOG_KMS_API_KEY is set', () => {
321
- process.env[constants_1.CI_KMS_API_KEY_ENV_VAR] = 'SOME-AWS-KMS-API-KEY-CONTAINING-DATADOG-API-KEY';
322
- expect(commons_1.isMissingAnyDatadogApiKeyEnvVar()).toBe(false);
323
- });
324
- test('returns false when DATADOG_API_KEY_SECRET_ARN is set', () => {
325
- process.env[constants_1.CI_API_KEY_SECRET_ARN_ENV_VAR] = 'SOME-AWS-SECRET-ARN-CONTAINING-DATADOG-API-KEY';
326
- expect(commons_1.isMissingAnyDatadogApiKeyEnvVar()).toBe(false);
327
- });
328
- });
329
- describe('getLayerArn', () => {
330
- const OLD_ENV = process.env;
331
- beforeEach(() => {
332
- jest.resetModules();
333
- process.env = {};
334
- });
335
- afterAll(() => {
336
- process.env = OLD_ENV;
337
- });
338
- test('gets sa-east-1 Lambda Extension layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
339
- const settings = {
340
- flushMetricsToLogs: false,
341
- layerAWSAccount: fixtures_1.mockAwsAccount,
342
- mergeXrayTraces: false,
343
- tracingEnabled: false,
344
- };
345
- const region = 'sa-east-1';
346
- const layerArn = commons_1.getLayerArn({}, constants_1.EXTENSION_LAYER_KEY, region, settings);
347
- expect(layerArn).toEqual(`arn:aws:lambda:${region}:${fixtures_1.mockAwsAccount}:layer:Datadog-Extension`);
348
- }));
349
- test('gets sa-east-1 arm64 Lambda Extension layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
350
- const config = {
351
- Architectures: ['arm64'],
352
- };
353
- const settings = {
354
- flushMetricsToLogs: false,
355
- layerAWSAccount: fixtures_1.mockAwsAccount,
356
- mergeXrayTraces: false,
357
- tracingEnabled: false,
358
- };
359
- const region = 'sa-east-1';
360
- const layerArn = commons_1.getLayerArn(config, constants_1.EXTENSION_LAYER_KEY, region, settings);
361
- expect(layerArn).toEqual(`arn:aws:lambda:${region}:${fixtures_1.mockAwsAccount}:layer:Datadog-Extension-ARM`);
362
- }));
363
- test('gets us-gov-1 gov cloud Lambda Extension layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
364
- const settings = {
365
- flushMetricsToLogs: false,
366
- layerAWSAccount: fixtures_1.mockAwsAccount,
367
- mergeXrayTraces: false,
368
- tracingEnabled: false,
369
- };
370
- const region = 'us-gov-1';
371
- const layerArn = commons_1.getLayerArn({}, constants_1.EXTENSION_LAYER_KEY, region, settings);
372
- expect(layerArn).toEqual(`arn:aws-us-gov:lambda:${region}:${constants_1.GOVCLOUD_LAYER_AWS_ACCOUNT}:layer:Datadog-Extension`);
373
- }));
374
- test('gets us-gov-1 gov cloud arm64 Lambda Extension layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
375
- const config = {
376
- Architectures: ['arm64'],
377
- };
378
- const settings = {
379
- flushMetricsToLogs: false,
380
- layerAWSAccount: fixtures_1.mockAwsAccount,
381
- mergeXrayTraces: false,
382
- tracingEnabled: false,
383
- };
384
- const region = 'us-gov-1';
385
- const layerArn = commons_1.getLayerArn(config, constants_1.EXTENSION_LAYER_KEY, region, settings);
386
- expect(layerArn).toEqual(`arn:aws-us-gov:lambda:${region}:${constants_1.GOVCLOUD_LAYER_AWS_ACCOUNT}:layer:Datadog-Extension-ARM`);
387
- }));
388
- test('gets sa-east-1 Node12 Lambda Library layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
389
- const runtime = 'nodejs12.x';
390
- const config = {
391
- Runtime: runtime,
392
- };
393
- const settings = {
394
- flushMetricsToLogs: false,
395
- layerAWSAccount: fixtures_1.mockAwsAccount,
396
- mergeXrayTraces: false,
397
- tracingEnabled: false,
398
- };
399
- const region = 'sa-east-1';
400
- const layerArn = commons_1.getLayerArn(config, config.Runtime, region, settings);
401
- expect(layerArn).toEqual(`arn:aws:lambda:${region}:${fixtures_1.mockAwsAccount}:layer:Datadog-Node12-x`);
402
- }));
403
- test('gets sa-east-1 Python3.9 arm64 Lambda Library layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
404
- const runtime = 'python3.9';
405
- const config = {
406
- Architectures: ['arm64'],
407
- Runtime: runtime,
408
- };
409
- const settings = {
410
- flushMetricsToLogs: false,
411
- layerAWSAccount: fixtures_1.mockAwsAccount,
412
- mergeXrayTraces: false,
413
- tracingEnabled: false,
414
- };
415
- const region = 'sa-east-1';
416
- const layerArn = commons_1.getLayerArn(config, config.Runtime, region, settings);
417
- expect(layerArn).toEqual(`arn:aws:lambda:${region}:${fixtures_1.mockAwsAccount}:layer:Datadog-Python39-ARM`);
418
- }));
419
- test('gets us-gov-1 Python37 gov cloud Lambda Library layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
420
- const runtime = 'python3.7';
421
- const config = {
422
- Runtime: runtime,
423
- };
424
- const settings = {
425
- flushMetricsToLogs: false,
426
- layerAWSAccount: fixtures_1.mockAwsAccount,
427
- mergeXrayTraces: false,
428
- tracingEnabled: false,
429
- };
430
- const region = 'us-gov-1';
431
- const layerArn = commons_1.getLayerArn(config, config.Runtime, region, settings);
432
- expect(layerArn).toEqual(`arn:aws-us-gov:lambda:${region}:${constants_1.GOVCLOUD_LAYER_AWS_ACCOUNT}:layer:Datadog-Python37`);
433
- }));
434
- test('gets us-gov-1 Python39 gov cloud arm64 Lambda Library layer ARN', () => __awaiter(void 0, void 0, void 0, function* () {
435
- const runtime = 'python3.9';
436
- const config = {
437
- Architectures: ['arm64'],
438
- Runtime: runtime,
439
- };
440
- const settings = {
441
- flushMetricsToLogs: false,
442
- layerAWSAccount: fixtures_1.mockAwsAccount,
443
- mergeXrayTraces: false,
444
- tracingEnabled: false,
445
- };
446
- const region = 'us-gov-1';
447
- const layerArn = commons_1.getLayerArn(config, config.Runtime, region, settings);
448
- expect(layerArn).toEqual(`arn:aws-us-gov:lambda:${region}:${constants_1.GOVCLOUD_LAYER_AWS_ACCOUNT}:layer:Datadog-Python39-ARM`);
449
- }));
450
- });
451
- describe('getLayerNameWithVersion', () => {
452
- const OLD_ENV = process.env;
453
- beforeEach(() => {
454
- jest.resetModules();
455
- process.env = {};
456
- });
457
- afterAll(() => {
458
- process.env = OLD_ENV;
459
- });
460
- test('returns the correct name and version given an extension layer arn', () => {
461
- const layerName = constants_1.DD_LAMBDA_EXTENSION_LAYER_NAME;
462
- const version = '16';
463
- const layerNameWithVersion = `${layerName}:${version}`;
464
- const layerArn = `arn:aws:lambda:sa-east-1:${fixtures_1.mockAwsAccount}:layer:${layerNameWithVersion}`;
465
- expect(commons_1.getLayerNameWithVersion(layerArn)).toBe(layerNameWithVersion);
466
- });
467
- test('returns the correct name and version given a library layer arn', () => {
468
- const layerName = 'Datadog-Python39';
469
- const version = '59';
470
- const layerNameWithVersion = `${layerName}:${version}`;
471
- const layerArn = `arn:aws:lambda:sa-east-1:${fixtures_1.mockAwsAccount}:layer:${layerNameWithVersion}`;
472
- expect(commons_1.getLayerNameWithVersion(layerArn)).toBe(layerNameWithVersion);
473
- });
474
- test('returns undefined if arn is incomplete', () => {
475
- const layerArn = `arn:aws:lambda:sa-east-1:${fixtures_1.mockAwsAccount}:layer:Datadog-Python39`;
476
- expect(commons_1.getLayerNameWithVersion(layerArn)).toBe(undefined);
477
- });
478
- });
479
- describe('getRegion', () => {
480
- test('should return the expected region', () => {
481
- const functionARN = 'arn:aws:lambda:us-east-1:123456789012:function:lambda-hello-world';
482
- const expectedRegion = 'us-east-1';
483
- const region = commons_1.getRegion(functionARN);
484
- expect(region).toBe(expectedRegion);
485
- });
486
- test('should return undefined if Function ARN does not contain the region', () => {
487
- const functionName = 'lambda-hello-world';
488
- const region = commons_1.getRegion(functionName);
489
- expect(region).toBe(undefined);
490
- });
491
- });
492
- describe('sentenceMatchesRegEx', () => {
493
- const tags = [
494
- ['not-complying:regex-should-fail', false],
495
- ['1first-char-is-number:should-fail', false],
496
- ['_also-not-complying:should-fail', false],
497
- ['complying_tag:accepted/with/slashes.and.dots,but-empty-tag', false],
498
- ['also_complying:success,1but_is_illegal:should-fail', false],
499
- ['this:complies,also_this_one:yes,numb3r_in_name:should-succeed,dots:al.lo.wed', true],
500
- ['complying_ip_address_4:192.342.3134.231', true],
501
- ['complying:alone', true],
502
- ['one_divided_by_two:1/2,one_divided_by_four:0.25,three_minus_one_half:3-1/2', true],
503
- ['this_is_a_valid_t4g:yes/it.is-42', true],
504
- ];
505
- test.each(tags)('check if the tags match the expected result from the regex', (tag, expectedResult) => {
506
- const result = !!commons_1.sentenceMatchesRegEx(tag, constants_1.EXTRA_TAGS_REG_EXP);
507
- expect(result).toEqual(expectedResult);
508
- });
509
- });
510
- describe('updateLambdaConfigs', () => {
511
- const OLD_ENV = process.env;
512
- beforeEach(() => {
513
- jest.resetModules();
514
- process.env = {};
515
- });
516
- afterAll(() => {
517
- process.env = OLD_ENV;
518
- });
519
- test('updates every lambda', () => __awaiter(void 0, void 0, void 0, function* () {
520
- const lambda = fixtures_1.makeMockLambda({});
521
- const configs = [
522
- {
523
- functionARN: 'arn:aws:lambda:us-east-1:000000000000:function:autoinstrument',
524
- lambdaConfig: {
525
- FunctionArn: 'arn:aws:lambda:us-east-1:000000000000:function:autoinstrument',
526
- Handler: 'index.handler',
527
- Runtime: 'nodejs12.x',
528
- },
529
- lambdaLibraryLayerArn: 'arn:aws:lambda:us-east-1:464622532012:layer:Datadog-Node12-x',
530
- updateRequest: {
531
- Environment: {
532
- Variables: {
533
- [constants_1.LAMBDA_HANDLER_ENV_VAR]: 'index.handler',
534
- [constants_1.MERGE_XRAY_TRACES_ENV_VAR]: 'false',
535
- [constants_1.TRACE_ENABLED_ENV_VAR]: 'false',
536
- },
537
- },
538
- FunctionName: 'arn:aws:lambda:us-east-1:000000000000:function:autoinstrument',
539
- Handler: '/opt/nodejs/node_modules/datadog-lambda-js/handler.handler',
540
- Layers: ['arn:aws:lambda:us-east-1:464622532012:layer:Datadog-Node12-x:22'],
541
- },
542
- },
543
- ];
544
- const cloudWatch = fixtures_1.makeMockCloudWatchLogs({});
545
- yield commons_1.updateLambdaFunctionConfigs(lambda, cloudWatch, configs);
546
- expect(lambda.updateFunctionConfiguration).toHaveBeenCalledWith({
547
- Environment: {
548
- Variables: {
549
- [constants_1.LAMBDA_HANDLER_ENV_VAR]: 'index.handler',
550
- [constants_1.MERGE_XRAY_TRACES_ENV_VAR]: 'false',
551
- [constants_1.TRACE_ENABLED_ENV_VAR]: 'false',
552
- },
553
- },
554
- FunctionName: 'arn:aws:lambda:us-east-1:000000000000:function:autoinstrument',
555
- Handler: '/opt/nodejs/node_modules/datadog-lambda-js/handler.handler',
556
- Layers: ['arn:aws:lambda:us-east-1:464622532012:layer:Datadog-Node12-x:22'],
557
- });
558
- }));
559
- });
560
- describe('Correctly handles multiple runtimes', () => {
561
- test('returns true if all runtimes are uniform', () => __awaiter(void 0, void 0, void 0, function* () {
562
- const configs = [
563
- {
564
- functionARN: 'arn:aws:lambda:us-east-1:000000000000:function:func1',
565
- lambdaConfig: {
566
- FunctionArn: 'arn:aws:lambda:us-east-1:000000000000:function:func1',
567
- Handler: 'index.handler',
568
- Runtime: 'nodejs14.x',
569
- },
570
- },
571
- {
572
- functionARN: 'arn:aws:lambda:us-east-1:000000000000:function:func2',
573
- lambdaConfig: {
574
- FunctionArn: 'arn:aws:lambda:us-east-1:000000000000:function:func2',
575
- Handler: 'index.handler',
576
- Runtime: 'nodejs12.x',
577
- },
578
- },
579
- {
580
- functionARN: 'arn:aws:lambda:us-east-1:000000000000:function:func3',
581
- lambdaConfig: {
582
- FunctionArn: 'arn:aws:lambda:us-east-1:000000000000:function:func3',
583
- Handler: 'index.handler',
584
- Runtime: 'nodejs16.x',
585
- },
586
- },
587
- {
588
- functionARN: 'arn:aws:lambda:us-east-1:000000000000:function:func4',
589
- lambdaConfig: {
590
- FunctionArn: 'arn:aws:lambda:us-east-1:000000000000:function:func4',
591
- Handler: 'index.handler',
592
- Runtime: 'nodejs18.x',
593
- },
594
- },
595
- ];
596
- expect(commons_1.checkRuntimeTypesAreUniform(configs)).toBe(true);
597
- }));
598
- test('returns false if runtimes are not uniform', () => __awaiter(void 0, void 0, void 0, function* () {
599
- const configs = [
600
- {
601
- functionARN: 'arn:aws:lambda:us-east-1:000000000000:function:func1',
602
- lambdaConfig: {
603
- FunctionArn: 'arn:aws:lambda:us-east-1:000000000000:function:func1',
604
- Handler: 'index.handler',
605
- Runtime: 'nodejs14.x',
606
- },
607
- },
608
- {
609
- functionARN: 'arn:aws:lambda:us-east-1:000000000000:function:func2',
610
- lambdaConfig: {
611
- FunctionArn: 'arn:aws:lambda:us-east-1:000000000000:function:func2',
612
- Handler: 'index.handler',
613
- Runtime: 'python3.9',
614
- },
615
- },
616
- ];
617
- expect(commons_1.checkRuntimeTypesAreUniform(configs)).toBe(false);
618
- }));
619
- });
620
- });
621
- //# sourceMappingURL=commons.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commons.test.js","sourceRoot":"","sources":["../../../../../src/commands/lambda/__tests__/functions/commons.test.ts"],"names":[],"mappings":"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"}