@datadog/datadog-ci 0.17.6-alpha → 0.17.9

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 (153) hide show
  1. package/LICENSE-3rdparty.csv +1 -0
  2. package/dist/commands/dependencies/__tests__/helpers/context.d.ts +12 -0
  3. package/dist/commands/dependencies/__tests__/helpers/stream.d.ts +2 -0
  4. package/dist/commands/dependencies/__tests__/helpers/upload.run.d.ts +13 -0
  5. package/dist/commands/dependencies/__tests__/upload.test.d.ts +1 -0
  6. package/dist/commands/dependencies/api.d.ts +2 -0
  7. package/dist/commands/dependencies/index.d.ts +1 -0
  8. package/dist/commands/dependencies/interfaces.d.ts +10 -0
  9. package/dist/commands/dependencies/renderer.d.ts +13 -0
  10. package/dist/commands/dependencies/upload.d.ts +16 -0
  11. package/dist/commands/dsyms/__tests__/upload.test.d.ts +1 -0
  12. package/dist/commands/dsyms/__tests__/utils.test.d.ts +1 -0
  13. package/dist/commands/dsyms/index.d.ts +1 -0
  14. package/dist/commands/dsyms/interfaces.d.ts +7 -0
  15. package/dist/commands/dsyms/renderer.d.ts +9 -0
  16. package/dist/commands/dsyms/upload.d.ts +11 -0
  17. package/dist/commands/dsyms/utils.d.ts +9 -0
  18. package/dist/commands/git-metadata/__tests__/git.test.d.ts +1 -0
  19. package/dist/commands/{commit → git-metadata}/__tests__/git.test.js +0 -0
  20. package/dist/commands/git-metadata/__tests__/upload.test.d.ts +1 -0
  21. package/dist/commands/{commit → git-metadata}/__tests__/upload.test.js +1 -1
  22. package/dist/commands/git-metadata/api.d.ts +3 -0
  23. package/dist/commands/{commit → git-metadata}/api.js +0 -0
  24. package/dist/commands/git-metadata/git.d.ts +8 -0
  25. package/dist/commands/{commit → git-metadata}/git.js +0 -0
  26. package/dist/commands/git-metadata/index.d.ts +1 -0
  27. package/dist/commands/{commit → git-metadata}/index.js +0 -0
  28. package/dist/commands/git-metadata/interfaces.d.ts +9 -0
  29. package/dist/commands/{commit → git-metadata}/interfaces.js +0 -0
  30. package/dist/commands/git-metadata/renderer.d.ts +8 -0
  31. package/dist/commands/{commit → git-metadata}/renderer.js +5 -8
  32. package/dist/commands/git-metadata/upload.d.ts +12 -0
  33. package/dist/commands/{commit → git-metadata}/upload.js +8 -3
  34. package/dist/commands/junit/__tests__/api.test.d.ts +1 -0
  35. package/dist/commands/junit/__tests__/upload.test.d.ts +1 -0
  36. package/dist/commands/junit/api.d.ts +8 -0
  37. package/dist/commands/junit/index.d.ts +1 -0
  38. package/dist/commands/junit/interfaces.d.ts +12 -0
  39. package/dist/commands/junit/renderer.d.ts +8 -0
  40. package/dist/commands/junit/upload.d.ts +15 -0
  41. package/dist/commands/junit/upload.js +8 -25
  42. package/dist/commands/junit/utils.d.ts +1 -0
  43. package/dist/commands/lambda/__tests__/fixtures.d.ts +42 -0
  44. package/dist/commands/lambda/__tests__/fixtures.js +73 -0
  45. package/dist/commands/lambda/__tests__/functions/commons.test.d.ts +1 -0
  46. package/dist/commands/lambda/__tests__/functions/commons.test.js +171 -0
  47. package/dist/commands/lambda/__tests__/functions/instrument.test.d.ts +1 -0
  48. package/dist/commands/lambda/__tests__/{function.test.js → functions/instrument.test.js} +355 -417
  49. package/dist/commands/lambda/__tests__/functions/uninstrument.test.d.ts +1 -0
  50. package/dist/commands/lambda/__tests__/functions/uninstrument.test.js +298 -0
  51. package/dist/commands/lambda/__tests__/instrument.test.d.ts +1 -0
  52. package/dist/commands/lambda/__tests__/instrument.test.js +270 -163
  53. package/dist/commands/lambda/__tests__/loggroup.test.d.ts +1 -0
  54. package/dist/commands/lambda/__tests__/loggroup.test.js +98 -34
  55. package/dist/commands/lambda/__tests__/tags.test.d.ts +1 -0
  56. package/dist/commands/lambda/__tests__/tags.test.js +107 -31
  57. package/dist/commands/lambda/__tests__/uninstrument.test.d.ts +1 -0
  58. package/dist/commands/lambda/__tests__/uninstrument.test.js +223 -0
  59. package/dist/commands/lambda/constants.d.ts +44 -0
  60. package/dist/commands/lambda/constants.js +2 -1
  61. package/dist/commands/lambda/functions/commons.d.ts +71 -0
  62. package/dist/commands/lambda/functions/commons.js +170 -0
  63. package/dist/commands/lambda/functions/instrument.d.ts +16 -0
  64. package/dist/commands/lambda/{function.js → functions/instrument.js} +42 -102
  65. package/dist/commands/lambda/functions/uninstrument.d.ts +6 -0
  66. package/dist/commands/lambda/functions/uninstrument.js +110 -0
  67. package/dist/commands/lambda/index.d.ts +1 -0
  68. package/dist/commands/lambda/index.js +2 -1
  69. package/dist/commands/lambda/instrument.d.ts +29 -0
  70. package/dist/commands/lambda/instrument.js +85 -40
  71. package/dist/commands/lambda/interfaces.d.ts +70 -0
  72. package/dist/commands/lambda/loggroup.d.ts +14 -0
  73. package/dist/commands/lambda/loggroup.js +27 -4
  74. package/dist/commands/lambda/tags.d.ts +6 -0
  75. package/dist/commands/lambda/tags.js +19 -3
  76. package/dist/commands/lambda/uninstrument.d.ts +11 -0
  77. package/dist/commands/lambda/uninstrument.js +127 -0
  78. package/dist/commands/sourcemaps/__tests__/git.test.d.ts +1 -0
  79. package/dist/commands/sourcemaps/__tests__/upload.test.d.ts +1 -0
  80. package/dist/commands/sourcemaps/__tests__/utils.test.d.ts +1 -0
  81. package/dist/commands/sourcemaps/git.d.ts +20 -0
  82. package/dist/commands/sourcemaps/index.d.ts +1 -0
  83. package/dist/commands/sourcemaps/interfaces.d.ts +15 -0
  84. package/dist/commands/sourcemaps/renderer.d.ts +12 -0
  85. package/dist/commands/sourcemaps/upload.d.ts +25 -0
  86. package/dist/commands/sourcemaps/utils.d.ts +3 -0
  87. package/dist/commands/sourcemaps/validation.d.ts +6 -0
  88. package/dist/commands/synthetics/__tests__/api.test.d.ts +1 -0
  89. package/dist/commands/synthetics/__tests__/cli.test.d.ts +1 -0
  90. package/dist/commands/synthetics/__tests__/cli.test.js +232 -0
  91. package/dist/commands/synthetics/__tests__/crypto.test.d.ts +1 -0
  92. package/dist/commands/synthetics/__tests__/fixtures.d.ts +71 -0
  93. package/dist/commands/synthetics/__tests__/fixtures.js +17 -2
  94. package/dist/commands/synthetics/__tests__/reporters/default.test.d.ts +1 -0
  95. package/dist/commands/synthetics/__tests__/reporters/default.test.js +5 -4
  96. package/dist/commands/synthetics/__tests__/reporters/junit.test.d.ts +1 -0
  97. package/dist/commands/synthetics/__tests__/run-test.test.d.ts +1 -0
  98. package/dist/commands/synthetics/__tests__/run-test.test.js +48 -319
  99. package/dist/commands/synthetics/__tests__/tunnel.test.d.ts +1 -0
  100. package/dist/commands/synthetics/__tests__/utils.test.d.ts +1 -0
  101. package/dist/commands/synthetics/__tests__/utils.test.js +13 -1
  102. package/dist/commands/synthetics/__tests__/websocket.test.d.ts +1 -0
  103. package/dist/commands/synthetics/__tests__/websocket.test.js +6 -5
  104. package/dist/commands/synthetics/api.d.ts +24 -0
  105. package/dist/commands/synthetics/cli.d.ts +26 -0
  106. package/dist/commands/synthetics/cli.js +229 -0
  107. package/dist/commands/synthetics/crypto.d.ts +5 -0
  108. package/dist/commands/synthetics/errors.d.ts +9 -0
  109. package/dist/commands/synthetics/errors.js +25 -0
  110. package/dist/commands/synthetics/index.d.ts +1 -0
  111. package/dist/commands/synthetics/index.js +2 -2
  112. package/dist/commands/synthetics/interfaces.d.ts +342 -0
  113. package/dist/commands/synthetics/reporters/default.d.ts +18 -0
  114. package/dist/commands/synthetics/reporters/default.js +4 -3
  115. package/dist/commands/synthetics/reporters/junit.d.ts +95 -0
  116. package/dist/commands/synthetics/run-test.d.ts +74 -0
  117. package/dist/commands/synthetics/run-test.js +135 -319
  118. package/dist/commands/synthetics/tunnel.d.ts +43 -0
  119. package/dist/commands/synthetics/utils.d.ts +27 -0
  120. package/dist/commands/synthetics/utils.js +24 -5
  121. package/dist/commands/synthetics/websocket.d.ts +38 -0
  122. package/dist/commands/trace/__tests__/trace.test.d.ts +1 -0
  123. package/dist/commands/trace/api.d.ts +6 -0
  124. package/dist/commands/trace/index.d.ts +1 -0
  125. package/dist/commands/trace/interfaces.d.ts +23 -0
  126. package/dist/commands/trace/trace.d.ts +17 -0
  127. package/dist/commands/trace/trace.js +32 -3
  128. package/dist/helpers/__tests__/ci.test.d.ts +1 -0
  129. package/dist/helpers/__tests__/ci.test.js +23 -0
  130. package/dist/helpers/__tests__/git.test.d.ts +1 -0
  131. package/dist/helpers/__tests__/retry.test.d.ts +1 -0
  132. package/dist/helpers/__tests__/retry.test.js +98 -0
  133. package/dist/helpers/__tests__/tags.test.d.ts +1 -0
  134. package/dist/helpers/__tests__/upload.test.d.ts +1 -0
  135. package/dist/helpers/__tests__/user-provided-git.test.d.ts +1 -0
  136. package/dist/helpers/__tests__/utils.test.d.ts +1 -0
  137. package/dist/helpers/apikey.d.ts +14 -0
  138. package/dist/helpers/ci.d.ts +15 -0
  139. package/dist/helpers/ci.js +13 -6
  140. package/dist/helpers/errors.d.ts +2 -0
  141. package/dist/helpers/formatting.d.ts +5 -0
  142. package/dist/helpers/git.d.ts +2 -0
  143. package/dist/helpers/interfaces.d.ts +19 -0
  144. package/dist/helpers/metrics.d.ts +11 -0
  145. package/dist/helpers/retry.d.ts +2 -0
  146. package/dist/helpers/retry.js +38 -0
  147. package/dist/helpers/tags.d.ts +28 -0
  148. package/dist/helpers/upload.d.ts +44 -0
  149. package/dist/helpers/upload.js +4 -26
  150. package/dist/helpers/user-provided-git.d.ts +1 -0
  151. package/dist/helpers/utils.d.ts +31 -0
  152. package/dist/index.d.ts +1 -0
  153. package/package.json +2 -1
@@ -0,0 +1,298 @@
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
+ jest.mock('../../loggroup');
32
+ const constants_1 = require("../../constants");
33
+ const commons_1 = require("../../functions/commons");
34
+ const uninstrument_1 = require("../../functions/uninstrument");
35
+ const fixtures_1 = require("../fixtures");
36
+ const loggroup = __importStar(require("../../loggroup"));
37
+ describe('uninstrument', () => {
38
+ describe('calculateUpdateRequest', () => {
39
+ const OLD_ENV = process.env;
40
+ beforeEach(() => {
41
+ jest.resetModules();
42
+ process.env = {};
43
+ });
44
+ afterAll(() => {
45
+ process.env = OLD_ENV;
46
+ });
47
+ test('calculates an update request removing all variables set by the CI', () => __awaiter(void 0, void 0, void 0, function* () {
48
+ const lambda = fixtures_1.makeMockLambda({
49
+ 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument': {
50
+ Environment: {
51
+ Variables: {
52
+ [constants_1.ENVIRONMENT_ENV_VAR]: 'staging',
53
+ [constants_1.FLUSH_TO_LOG_ENV_VAR]: 'true',
54
+ [constants_1.LAMBDA_HANDLER_ENV_VAR]: 'lambda_function.lambda_handler',
55
+ [constants_1.LOG_LEVEL_ENV_VAR]: 'debug',
56
+ [constants_1.MERGE_XRAY_TRACES_ENV_VAR]: 'false',
57
+ [constants_1.SERVICE_ENV_VAR]: 'middletier',
58
+ [constants_1.SITE_ENV_VAR]: 'datadoghq.com',
59
+ [constants_1.TRACE_ENABLED_ENV_VAR]: 'true',
60
+ [constants_1.VERSION_ENV_VAR]: '0.2',
61
+ USER_VARIABLE: 'shouldnt be deleted by uninstrumentation',
62
+ },
63
+ },
64
+ FunctionArn: 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument',
65
+ Handler: 'datadog_lambda.handler.handler',
66
+ Runtime: 'python3.8',
67
+ },
68
+ });
69
+ const config = yield commons_1.getLambdaFunctionConfig(lambda, 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument');
70
+ const updateRequest = yield uninstrument_1.calculateUpdateRequest(config, config.Runtime);
71
+ expect(updateRequest).toMatchInlineSnapshot(`
72
+ Object {
73
+ "Environment": Object {
74
+ "Variables": Object {
75
+ "USER_VARIABLE": "shouldnt be deleted by uninstrumentation",
76
+ },
77
+ },
78
+ "FunctionName": "arn:aws:lambda:us-east-1:000000000000:function:uninstrument",
79
+ "Handler": "lambda_function.lambda_handler",
80
+ }
81
+ `);
82
+ }));
83
+ test('calculates an update request setting the previous handler', () => __awaiter(void 0, void 0, void 0, function* () {
84
+ const lambda = fixtures_1.makeMockLambda({
85
+ 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument': {
86
+ Environment: {
87
+ Variables: {
88
+ [constants_1.LAMBDA_HANDLER_ENV_VAR]: 'lambda_function.lambda_handler',
89
+ },
90
+ },
91
+ FunctionArn: 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument',
92
+ Handler: 'datadog_lambda.handler.handler',
93
+ Runtime: 'python3.8',
94
+ },
95
+ });
96
+ const config = yield commons_1.getLambdaFunctionConfig(lambda, 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument');
97
+ const updateRequest = yield uninstrument_1.calculateUpdateRequest(config, config.Runtime);
98
+ expect(updateRequest).toMatchInlineSnapshot(`
99
+ Object {
100
+ "Environment": Object {
101
+ "Variables": Object {},
102
+ },
103
+ "FunctionName": "arn:aws:lambda:us-east-1:000000000000:function:uninstrument",
104
+ "Handler": "lambda_function.lambda_handler",
105
+ }
106
+ `);
107
+ }));
108
+ test('calculates an update request removing lambda layers set by the CI', () => __awaiter(void 0, void 0, void 0, function* () {
109
+ const lambda = fixtures_1.makeMockLambda({
110
+ 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument': {
111
+ Environment: {
112
+ Variables: {
113
+ [constants_1.LAMBDA_HANDLER_ENV_VAR]: 'lambda_function.lambda_handler',
114
+ },
115
+ },
116
+ FunctionArn: 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument',
117
+ Handler: 'datadog_lambda.handler.handler',
118
+ Layers: [
119
+ {
120
+ Arn: 'arn:aws:lambda:sa-east-1:000000000000:layer:Datadog-Extension:11',
121
+ CodeSize: 0,
122
+ SigningJobArn: 'some-signing-job-arn',
123
+ SigningProfileVersionArn: 'some-signing-profile',
124
+ },
125
+ {
126
+ Arn: 'arn:aws:lambda:sa-east-1:000000000000:layer:Datadog-Python38:49',
127
+ CodeSize: 0,
128
+ SigningJobArn: 'some-signing-job-arn',
129
+ SigningProfileVersionArn: 'some-signing-profile',
130
+ },
131
+ ],
132
+ Runtime: 'python3.8',
133
+ },
134
+ });
135
+ const config = yield commons_1.getLambdaFunctionConfig(lambda, 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument');
136
+ const updateRequest = yield uninstrument_1.calculateUpdateRequest(config, config.Runtime);
137
+ expect(updateRequest).toMatchInlineSnapshot(`
138
+ Object {
139
+ "Environment": Object {
140
+ "Variables": Object {},
141
+ },
142
+ "FunctionName": "arn:aws:lambda:us-east-1:000000000000:function:uninstrument",
143
+ "Handler": "lambda_function.lambda_handler",
144
+ "Layers": Array [],
145
+ }
146
+ `);
147
+ }));
148
+ });
149
+ describe('getFunctionConfigs', () => {
150
+ const OLD_ENV = process.env;
151
+ beforeEach(() => {
152
+ jest.resetModules();
153
+ process.env = {};
154
+ });
155
+ afterAll(() => {
156
+ process.env = OLD_ENV;
157
+ });
158
+ test('returns the update request for each function', () => __awaiter(void 0, void 0, void 0, function* () {
159
+ const lambda = fixtures_1.makeMockLambda({
160
+ 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument': {
161
+ Environment: {
162
+ Variables: {
163
+ [constants_1.ENVIRONMENT_ENV_VAR]: 'staging',
164
+ [constants_1.FLUSH_TO_LOG_ENV_VAR]: 'true',
165
+ [constants_1.LAMBDA_HANDLER_ENV_VAR]: 'lambda_function.lambda_handler',
166
+ [constants_1.LOG_LEVEL_ENV_VAR]: 'debug',
167
+ [constants_1.MERGE_XRAY_TRACES_ENV_VAR]: 'false',
168
+ [constants_1.SERVICE_ENV_VAR]: 'middletier',
169
+ [constants_1.SITE_ENV_VAR]: 'datadoghq.com',
170
+ [constants_1.TRACE_ENABLED_ENV_VAR]: 'true',
171
+ [constants_1.VERSION_ENV_VAR]: '0.2',
172
+ USER_VARIABLE: 'shouldnt be deleted by uninstrumentation',
173
+ },
174
+ },
175
+ FunctionArn: 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument',
176
+ Handler: 'datadog_lambda.handler.handler',
177
+ Runtime: 'python3.8',
178
+ },
179
+ });
180
+ const cloudWatch = fixtures_1.makeMockCloudWatchLogs({});
181
+ const result = yield uninstrument_1.getFunctionConfigs(lambda, cloudWatch, ['arn:aws:lambda:us-east-1:000000000000:function:uninstrument'], undefined);
182
+ expect(result.length).toEqual(1);
183
+ expect(result[0].updateRequest).toMatchInlineSnapshot(`
184
+ Object {
185
+ "Environment": Object {
186
+ "Variables": Object {
187
+ "USER_VARIABLE": "shouldnt be deleted by uninstrumentation",
188
+ },
189
+ },
190
+ "FunctionName": "arn:aws:lambda:us-east-1:000000000000:function:uninstrument",
191
+ "Handler": "lambda_function.lambda_handler",
192
+ }
193
+ `);
194
+ }));
195
+ test('returns results for multiple functions', () => __awaiter(void 0, void 0, void 0, function* () {
196
+ const lambda = fixtures_1.makeMockLambda({
197
+ 'arn:aws:lambda:us-east-1:000000000000:function:another-func': {
198
+ FunctionArn: 'arn:aws:lambda:us-east-1:000000000000:function:another-func',
199
+ Runtime: 'nodejs12.x',
200
+ },
201
+ 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument': {
202
+ Environment: {
203
+ Variables: {
204
+ [constants_1.FLUSH_TO_LOG_ENV_VAR]: 'false',
205
+ [constants_1.LAMBDA_HANDLER_ENV_VAR]: 'index.handler',
206
+ [constants_1.LOG_LEVEL_ENV_VAR]: 'debug',
207
+ [constants_1.MERGE_XRAY_TRACES_ENV_VAR]: 'false',
208
+ [constants_1.SITE_ENV_VAR]: 'datadoghq.com',
209
+ [constants_1.TRACE_ENABLED_ENV_VAR]: 'false',
210
+ [constants_1.SERVICE_ENV_VAR]: 'middletier',
211
+ [constants_1.ENVIRONMENT_ENV_VAR]: 'staging',
212
+ [constants_1.VERSION_ENV_VAR]: '0.2',
213
+ },
214
+ },
215
+ FunctionArn: 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument',
216
+ Handler: '/opt/nodejs/node_modules/datadog-lambda-js/handler.handler',
217
+ Runtime: 'nodejs12.x',
218
+ },
219
+ });
220
+ const cloudWatch = fixtures_1.makeMockCloudWatchLogs({});
221
+ const result = yield uninstrument_1.getFunctionConfigs(lambda, cloudWatch, [
222
+ 'arn:aws:lambda:us-east-1:000000000000:function:another-func',
223
+ 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument',
224
+ ], undefined);
225
+ expect(result.length).toEqual(2);
226
+ expect(result[0].updateRequest).toBeUndefined();
227
+ expect(result[1].updateRequest).toMatchInlineSnapshot(`
228
+ Object {
229
+ "Environment": Object {
230
+ "Variables": Object {},
231
+ },
232
+ "FunctionName": "arn:aws:lambda:us-east-1:000000000000:function:uninstrument",
233
+ "Handler": "index.handler",
234
+ }
235
+ `);
236
+ }));
237
+ });
238
+ describe('getFunctionConfig', () => {
239
+ const OLD_ENV = process.env;
240
+ beforeEach(() => {
241
+ jest.resetModules();
242
+ process.env = {};
243
+ });
244
+ afterAll(() => {
245
+ process.env = OLD_ENV;
246
+ });
247
+ test('throws an error when it encounters an unsupported runtime', () => __awaiter(void 0, void 0, void 0, function* () {
248
+ const lambda = fixtures_1.makeMockLambda({
249
+ 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument': {
250
+ FunctionArn: 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument',
251
+ Runtime: 'go',
252
+ },
253
+ });
254
+ const cloudWatch = fixtures_1.makeMockCloudWatchLogs({});
255
+ const config = yield commons_1.getLambdaFunctionConfig(lambda, 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument');
256
+ yield expect(uninstrument_1.getFunctionConfig(lambda, cloudWatch, config, undefined)).rejects.toThrow();
257
+ }));
258
+ test('returns configurations without updateRequest when no changes need to be made', () => __awaiter(void 0, void 0, void 0, function* () {
259
+ const lambda = fixtures_1.makeMockLambda({
260
+ 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument': {
261
+ Environment: {
262
+ Variables: {},
263
+ },
264
+ FunctionArn: 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument',
265
+ Handler: 'index.handler',
266
+ Runtime: 'nodejs12.x',
267
+ },
268
+ });
269
+ const cloudWatch = fixtures_1.makeMockCloudWatchLogs({});
270
+ const config = yield commons_1.getLambdaFunctionConfig(lambda, 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument');
271
+ expect((yield uninstrument_1.getFunctionConfig(lambda, cloudWatch, config, undefined)).updateRequest).toBeUndefined();
272
+ }));
273
+ test('returns log group configuration subscription delete request when forwarderARN is set', () => __awaiter(void 0, void 0, void 0, function* () {
274
+ const logGroupName = '/aws/lambda/group';
275
+ loggroup.calculateLogGroupRemoveRequest.mockImplementation(() => ({
276
+ filterName: constants_1.SUBSCRIPTION_FILTER_NAME,
277
+ logGroupName,
278
+ }));
279
+ const lambda = fixtures_1.makeMockLambda({
280
+ 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument': {
281
+ FunctionArn: 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument',
282
+ Handler: 'index.handler',
283
+ Runtime: 'nodejs12.x',
284
+ },
285
+ });
286
+ const cloudWatch = fixtures_1.makeMockCloudWatchLogs({});
287
+ const config = yield commons_1.getLambdaFunctionConfig(lambda, 'arn:aws:lambda:us-east-1:000000000000:function:uninstrument');
288
+ const result = yield uninstrument_1.getFunctionConfig(lambda, cloudWatch, config, 'valid-forwarder-arn');
289
+ expect(result).toBeDefined();
290
+ expect(result.logGroupConfiguration).toMatchInlineSnapshot(`
291
+ Object {
292
+ "filterName": "${constants_1.SUBSCRIPTION_FILTER_NAME}",
293
+ "logGroupName": "${logGroupName}",
294
+ }
295
+ `);
296
+ }));
297
+ });
298
+ });