aws-delivlib 13.4.2 → 13.4.6
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.
- package/cdk.out/{asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20 → asset.1c4d00e8f9125a52b4db3e74494c950959ffa433738adcf5c9f7251e4d255451}/create-release.js +0 -0
- package/cdk.out/{asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20 → asset.1c4d00e8f9125a52b4db3e74494c950959ffa433738adcf5c9f7251e4d255451}/package-lock.json +100 -95
- package/cdk.out/{asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20 → asset.1c4d00e8f9125a52b4db3e74494c950959ffa433738adcf5c9f7251e4d255451}/package.json +0 -0
- package/cdk.out/{asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20 → asset.1c4d00e8f9125a52b4db3e74494c950959ffa433738adcf5c9f7251e4d255451}/publish.sh +0 -0
- package/cdk.out/{asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20 → asset.1c4d00e8f9125a52b4db3e74494c950959ffa433738adcf5c9f7251e4d255451}/sign-files.sh +0 -0
- package/cdk.out/{asset.e12c7af9b638ac5f6e69012fdab4a414bd0c107b6a233304e64b443a621ecd20 → asset.1c4d00e8f9125a52b4db3e74494c950959ffa433738adcf5c9f7251e4d255451}/with-signing-key.sh +0 -0
- package/cdk.out/{asset.dc2e98009b027861f34e56eebb81faa5a3951ed9da80ce4a903a45de04268238 → asset.3044256b9586ecb8a7709713aaca30ceb34f699e3f93c8858f633aaf2f0c7140}/index.js +17 -11
- package/cdk.out/delivlib-test.assets.json +8 -8
- package/cdk.out/delivlib-test.template.json +32 -27
- package/cdk.out/manifest.json +272 -272
- package/cdk.out/tree.json +442 -437
- package/lib/custom-resource-handlers/src/certificate-signing-request.tsbuildinfo +1 -1
- package/lib/custom-resource-handlers/src/pgp-secret.tsbuildinfo +1 -1
- package/lib/custom-resource-handlers/src/private-key.tsbuildinfo +1 -1
- package/lib/publishing/github/package-lock.json +100 -95
- package/package.json +17 -18
- package/lib/__tests__/auto-build.test.d.ts +0 -1
- package/lib/__tests__/auto-build.test.js +0 -119
- package/lib/__tests__/build-spec.test.d.ts +0 -1
- package/lib/__tests__/build-spec.test.js +0 -82
- package/lib/__tests__/bump.test.d.ts +0 -1
- package/lib/__tests__/bump.test.js +0 -284
- package/lib/__tests__/canary.test.d.ts +0 -1
- package/lib/__tests__/canary.test.js +0 -144
- package/lib/__tests__/change-control-lambda/disable-transition.test.d.ts +0 -1
- package/lib/__tests__/change-control-lambda/disable-transition.test.js +0 -64
- package/lib/__tests__/change-control-lambda/handler.test.d.ts +0 -1
- package/lib/__tests__/change-control-lambda/handler.test.js +0 -143
- package/lib/__tests__/change-control-lambda/time-window.test.d.ts +0 -1
- package/lib/__tests__/change-control-lambda/time-window.test.js +0 -131
- package/lib/__tests__/chime-notifier.test.d.ts +0 -6
- package/lib/__tests__/chime-notifier.test.js +0 -138
- package/lib/__tests__/code-signing-cert.test.d.ts +0 -1
- package/lib/__tests__/code-signing-cert.test.js +0 -72
- package/lib/__tests__/custom-resource-handlers/_cloud-formation.test.d.ts +0 -1
- package/lib/__tests__/custom-resource-handlers/_cloud-formation.test.js +0 -100
- package/lib/__tests__/custom-resource-handlers/_exec.test.d.ts +0 -1
- package/lib/__tests__/custom-resource-handlers/_exec.test.js +0 -9
- package/lib/__tests__/custom-resource-handlers/_rmrf.test.d.ts +0 -1
- package/lib/__tests__/custom-resource-handlers/_rmrf.test.js +0 -13
- package/lib/__tests__/custom-resource-handlers/certificate-signing-request.test.d.ts +0 -1
- package/lib/__tests__/custom-resource-handlers/certificate-signing-request.test.js +0 -171
- package/lib/__tests__/custom-resource-handlers/pgp-secret.test.d.ts +0 -1
- package/lib/__tests__/custom-resource-handlers/pgp-secret.test.js +0 -169
- package/lib/__tests__/custom-resource-handlers/private-key.test.d.ts +0 -1
- package/lib/__tests__/custom-resource-handlers/private-key.test.js +0 -164
- package/lib/__tests__/integ.delivlib.d.ts +0 -1
- package/lib/__tests__/integ.delivlib.js +0 -33
- package/lib/__tests__/open-pgp-key-pair.test.d.ts +0 -1
- package/lib/__tests__/open-pgp-key-pair.test.js +0 -130
- package/lib/__tests__/pipeline-notifications/chime.test.d.ts +0 -1
- package/lib/__tests__/pipeline-notifications/chime.test.js +0 -69
- package/lib/__tests__/pipeline-notifications/slack.test.d.ts +0 -1
- package/lib/__tests__/pipeline-notifications/slack.test.js +0 -82
- package/lib/__tests__/pipeline.test.d.ts +0 -1
- package/lib/__tests__/pipeline.test.js +0 -362
- package/lib/__tests__/pr.test.d.ts +0 -3
- package/lib/__tests__/pr.test.js +0 -88
- package/lib/__tests__/publishing.test.d.ts +0 -1
- package/lib/__tests__/publishing.test.js +0 -89
- package/lib/__tests__/registry-sync/ecr-mirror.test.d.ts +0 -1
- package/lib/__tests__/registry-sync/ecr-mirror.test.js +0 -313
- package/lib/__tests__/registry-sync/mirror-source.test.d.ts +0 -1
- package/lib/__tests__/registry-sync/mirror-source.test.js +0 -225
- package/lib/__tests__/shellable.test.d.ts +0 -1
- package/lib/__tests__/shellable.test.js +0 -479
- package/lib/__tests__/test-stack.d.ts +0 -4
- package/lib/__tests__/test-stack.js +0 -184
- package/lib/__tests__/watcher-handler.test.d.ts +0 -1
- package/lib/__tests__/watcher-handler.test.js +0 -190
- package/lib/__tests__/watcher.test.d.ts +0 -1
- package/lib/__tests__/watcher.test.js +0 -78
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
4
|
-
const AWS = require("aws-sdk");
|
|
5
|
-
const mockDisableStageTransition = jest.fn((_params) => {
|
|
6
|
-
return { promise: () => Promise.resolve({}) };
|
|
7
|
-
}).mockName('AWS.CodePipeline.disableStageTransition');
|
|
8
|
-
const mockEnableStageTransition = jest.fn((_params) => {
|
|
9
|
-
return { promise: () => Promise.resolve({}) };
|
|
10
|
-
}).mockName('AWS.CodePipeline.enableStageTransition');
|
|
11
|
-
const pipelineName = 'MyPipeline';
|
|
12
|
-
const stageName = 'MyStage';
|
|
13
|
-
AWS.CodePipeline = jest.fn(() => ({
|
|
14
|
-
disableStageTransition: mockDisableStageTransition,
|
|
15
|
-
enableStageTransition: mockEnableStageTransition,
|
|
16
|
-
})).mockName('AWS.CodePipeline');
|
|
17
|
-
describe('disableTransition', () => {
|
|
18
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
19
|
-
const disableTransition = require('../../change-control-lambda/disable-transition').disableTransition;
|
|
20
|
-
test('with a simple reason', async () => {
|
|
21
|
-
// GIVEN
|
|
22
|
-
const reason = 'Just Because';
|
|
23
|
-
// WHEN
|
|
24
|
-
await expect(disableTransition(pipelineName, stageName, reason))
|
|
25
|
-
.resolves.toBeUndefined();
|
|
26
|
-
// THEN
|
|
27
|
-
expect(mockDisableStageTransition)
|
|
28
|
-
.toHaveBeenCalledWith({ pipelineName, stageName, reason, transitionType: 'Inbound' });
|
|
29
|
-
});
|
|
30
|
-
test('with a reason that needs cleaning up', async () => {
|
|
31
|
-
// GIVEN
|
|
32
|
-
const reason = 'It\'s so cool!';
|
|
33
|
-
// WHEN
|
|
34
|
-
await expect(disableTransition(pipelineName, stageName, reason))
|
|
35
|
-
.resolves.toBeUndefined();
|
|
36
|
-
// THEN
|
|
37
|
-
const cleanReason = reason.replace(/[^a-zA-Z0-9!@ \(\)\.\*\?\-]/g, '-');
|
|
38
|
-
expect(mockDisableStageTransition)
|
|
39
|
-
.toHaveBeenCalledWith({ pipelineName, stageName, reason: cleanReason, transitionType: 'Inbound' });
|
|
40
|
-
});
|
|
41
|
-
test('with a reason that is too long', async () => {
|
|
42
|
-
// GIVEN
|
|
43
|
-
const reason = 'Reason '.repeat(300);
|
|
44
|
-
// WHEN
|
|
45
|
-
await expect(disableTransition(pipelineName, stageName, reason))
|
|
46
|
-
.resolves.toBeUndefined();
|
|
47
|
-
// THEN
|
|
48
|
-
const cleanReason = reason.slice(0, 300);
|
|
49
|
-
expect(mockDisableStageTransition)
|
|
50
|
-
.toHaveBeenCalledWith({ pipelineName, stageName, reason: cleanReason, transitionType: 'Inbound' });
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
test('enableTransition', async () => {
|
|
54
|
-
// GIVEN
|
|
55
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
56
|
-
const enableTransition = require('../../change-control-lambda/disable-transition').enableTransition;
|
|
57
|
-
// WHEN
|
|
58
|
-
await expect(() => enableTransition(pipelineName, stageName))
|
|
59
|
-
.not.toThrow();
|
|
60
|
-
// THEN
|
|
61
|
-
expect(mockEnableStageTransition)
|
|
62
|
-
.toHaveBeenCalledWith({ pipelineName, stageName, transitionType: 'Inbound' });
|
|
63
|
-
});
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZS10cmFuc2l0aW9uLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaXNhYmxlLXRyYW5zaXRpb24udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGlFQUFpRTtBQUNqRSwrQkFBZ0M7QUFFaEMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBcUQsRUFBRSxFQUFFO0lBQ25HLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQ2hELENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO0FBRXZELE1BQU0seUJBQXlCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQW9ELEVBQUUsRUFBRTtJQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUNoRCxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsd0NBQXdDLENBQUMsQ0FBQztBQUV0RCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUM7QUFDbEMsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBRTNCLEdBQVcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLHNCQUFzQixFQUFFLDBCQUEwQjtJQUNsRCxxQkFBcUIsRUFBRSx5QkFBeUI7Q0FDakQsQ0FBZ0MsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBUSxDQUFDO0FBRXZFLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7SUFDakMsaUVBQWlFO0lBQ2pFLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLGdEQUFnRCxDQUFDLENBQUMsaUJBQWlCLENBQUM7SUFFdEcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3RDLFFBQVE7UUFDUixNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUM7UUFDOUIsT0FBTztRQUNQLE1BQU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDN0QsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzVCLE9BQU87UUFDUCxNQUFNLENBQUMsMEJBQTBCLENBQUM7YUFDL0Isb0JBQW9CLENBQUMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUMxRixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxzQ0FBc0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN0RCxRQUFRO1FBQ1IsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUM7UUFDaEMsT0FBTztRQUNQLE1BQU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDN0QsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzVCLE9BQU87UUFDUCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLDhCQUE4QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQzthQUMvQixvQkFBb0IsQ0FBQyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN2RyxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNoRCxRQUFRO1FBQ1IsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxPQUFPO1FBQ1AsTUFBTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUM3RCxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDNUIsT0FBTztRQUNQLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQzthQUMvQixvQkFBb0IsQ0FBQyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN2RyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEtBQUssSUFBSSxFQUFFO0lBQ2xDLFFBQVE7SUFDUixpRUFBaUU7SUFDakUsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsZ0RBQWdELENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztJQUNwRyxPQUFPO0lBQ1AsTUFBTSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQzFELEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixPQUFPO0lBQ1AsTUFBTSxDQUFDLHlCQUF5QixDQUFDO1NBQzlCLG9CQUFvQixDQUFDLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztBQUNsRixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5pbXBvcnQgQVdTID0gcmVxdWlyZSgnYXdzLXNkaycpO1xuXG5jb25zdCBtb2NrRGlzYWJsZVN0YWdlVHJhbnNpdGlvbiA9IGplc3QuZm4oKF9wYXJhbXM6IEFXUy5Db2RlUGlwZWxpbmUuRGlzYWJsZVN0YWdlVHJhbnNpdGlvbklucHV0KSA9PiB7XG4gIHJldHVybiB7IHByb21pc2U6ICgpID0+IFByb21pc2UucmVzb2x2ZSh7fSkgfTtcbn0pLm1vY2tOYW1lKCdBV1MuQ29kZVBpcGVsaW5lLmRpc2FibGVTdGFnZVRyYW5zaXRpb24nKTtcblxuY29uc3QgbW9ja0VuYWJsZVN0YWdlVHJhbnNpdGlvbiA9IGplc3QuZm4oKF9wYXJhbXM6IEFXUy5Db2RlUGlwZWxpbmUuRW5hYmxlU3RhZ2VUcmFuc2l0aW9uSW5wdXQpID0+IHtcbiAgcmV0dXJuIHsgcHJvbWlzZTogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHt9KSB9O1xufSkubW9ja05hbWUoJ0FXUy5Db2RlUGlwZWxpbmUuZW5hYmxlU3RhZ2VUcmFuc2l0aW9uJyk7XG5cbmNvbnN0IHBpcGVsaW5lTmFtZSA9ICdNeVBpcGVsaW5lJztcbmNvbnN0IHN0YWdlTmFtZSA9ICdNeVN0YWdlJztcblxuKEFXUyBhcyBhbnkpLkNvZGVQaXBlbGluZSA9IGplc3QuZm4oKCkgPT4gKHtcbiAgZGlzYWJsZVN0YWdlVHJhbnNpdGlvbjogbW9ja0Rpc2FibGVTdGFnZVRyYW5zaXRpb24sXG4gIGVuYWJsZVN0YWdlVHJhbnNpdGlvbjogbW9ja0VuYWJsZVN0YWdlVHJhbnNpdGlvbixcbn0pIGFzIHVua25vd24gYXMgQVdTLkNvZGVQaXBlbGluZSkubW9ja05hbWUoJ0FXUy5Db2RlUGlwZWxpbmUnKSBhcyBhbnk7XG5cbmRlc2NyaWJlKCdkaXNhYmxlVHJhbnNpdGlvbicsICgpID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgY29uc3QgZGlzYWJsZVRyYW5zaXRpb24gPSByZXF1aXJlKCcuLi8uLi9jaGFuZ2UtY29udHJvbC1sYW1iZGEvZGlzYWJsZS10cmFuc2l0aW9uJykuZGlzYWJsZVRyYW5zaXRpb247XG5cbiAgdGVzdCgnd2l0aCBhIHNpbXBsZSByZWFzb24nLCBhc3luYyAoKSA9PiB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCByZWFzb24gPSAnSnVzdCBCZWNhdXNlJztcbiAgICAvLyBXSEVOXG4gICAgYXdhaXQgZXhwZWN0KGRpc2FibGVUcmFuc2l0aW9uKHBpcGVsaW5lTmFtZSwgc3RhZ2VOYW1lLCByZWFzb24pKVxuICAgICAgLnJlc29sdmVzLnRvQmVVbmRlZmluZWQoKTtcbiAgICAvLyBUSEVOXG4gICAgZXhwZWN0KG1vY2tEaXNhYmxlU3RhZ2VUcmFuc2l0aW9uKVxuICAgICAgLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHsgcGlwZWxpbmVOYW1lLCBzdGFnZU5hbWUsIHJlYXNvbiwgdHJhbnNpdGlvblR5cGU6ICdJbmJvdW5kJyB9KTtcbiAgfSk7XG5cbiAgdGVzdCgnd2l0aCBhIHJlYXNvbiB0aGF0IG5lZWRzIGNsZWFuaW5nIHVwJywgYXN5bmMgKCkgPT4ge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3QgcmVhc29uID0gJ0l0XFwncyBzbyBjb29sISc7XG4gICAgLy8gV0hFTlxuICAgIGF3YWl0IGV4cGVjdChkaXNhYmxlVHJhbnNpdGlvbihwaXBlbGluZU5hbWUsIHN0YWdlTmFtZSwgcmVhc29uKSlcbiAgICAgIC5yZXNvbHZlcy50b0JlVW5kZWZpbmVkKCk7XG4gICAgLy8gVEhFTlxuICAgIGNvbnN0IGNsZWFuUmVhc29uID0gcmVhc29uLnJlcGxhY2UoL1teYS16QS1aMC05IUAgXFwoXFwpXFwuXFwqXFw/XFwtXS9nLCAnLScpO1xuICAgIGV4cGVjdChtb2NrRGlzYWJsZVN0YWdlVHJhbnNpdGlvbilcbiAgICAgIC50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7IHBpcGVsaW5lTmFtZSwgc3RhZ2VOYW1lLCByZWFzb246IGNsZWFuUmVhc29uLCB0cmFuc2l0aW9uVHlwZTogJ0luYm91bmQnIH0pO1xuICB9KTtcblxuICB0ZXN0KCd3aXRoIGEgcmVhc29uIHRoYXQgaXMgdG9vIGxvbmcnLCBhc3luYyAoKSA9PiB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCByZWFzb24gPSAnUmVhc29uICcucmVwZWF0KDMwMCk7XG4gICAgLy8gV0hFTlxuICAgIGF3YWl0IGV4cGVjdChkaXNhYmxlVHJhbnNpdGlvbihwaXBlbGluZU5hbWUsIHN0YWdlTmFtZSwgcmVhc29uKSlcbiAgICAgIC5yZXNvbHZlcy50b0JlVW5kZWZpbmVkKCk7XG4gICAgLy8gVEhFTlxuICAgIGNvbnN0IGNsZWFuUmVhc29uID0gcmVhc29uLnNsaWNlKDAsIDMwMCk7XG4gICAgZXhwZWN0KG1vY2tEaXNhYmxlU3RhZ2VUcmFuc2l0aW9uKVxuICAgICAgLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHsgcGlwZWxpbmVOYW1lLCBzdGFnZU5hbWUsIHJlYXNvbjogY2xlYW5SZWFzb24sIHRyYW5zaXRpb25UeXBlOiAnSW5ib3VuZCcgfSk7XG4gIH0pO1xufSk7XG5cbnRlc3QoJ2VuYWJsZVRyYW5zaXRpb24nLCBhc3luYyAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gIGNvbnN0IGVuYWJsZVRyYW5zaXRpb24gPSByZXF1aXJlKCcuLi8uLi9jaGFuZ2UtY29udHJvbC1sYW1iZGEvZGlzYWJsZS10cmFuc2l0aW9uJykuZW5hYmxlVHJhbnNpdGlvbjtcbiAgLy8gV0hFTlxuICBhd2FpdCBleHBlY3QoKCkgPT4gZW5hYmxlVHJhbnNpdGlvbihwaXBlbGluZU5hbWUsIHN0YWdlTmFtZSkpXG4gICAgLm5vdC50b1Rocm93KCk7XG4gIC8vIFRIRU5cbiAgZXhwZWN0KG1vY2tFbmFibGVTdGFnZVRyYW5zaXRpb24pXG4gICAgLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHsgcGlwZWxpbmVOYW1lLCBzdGFnZU5hbWUsIHRyYW5zaXRpb25UeXBlOiAnSW5ib3VuZCcgfSk7XG59KTtcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
23
|
-
const AWS = require("aws-sdk");
|
|
24
|
-
const transitions = __importStar(require("../../change-control-lambda/disable-transition"));
|
|
25
|
-
const timeWindow = __importStar(require("../../change-control-lambda/time-window"));
|
|
26
|
-
// tslint:disable:no-console
|
|
27
|
-
// _____ _ _
|
|
28
|
-
// | __ \ | | (_)
|
|
29
|
-
// | |__) | __ ___ _ __ __ _ _ __ __ _| |_ _ ___ _ __
|
|
30
|
-
// | ___/ '__/ _ \ '_ \ / _` | '__/ _` | __| |/ _ \| '_ \
|
|
31
|
-
// | | | | | __/ |_) | (_| | | | (_| | |_| | (_) | | | |
|
|
32
|
-
// |_| |_| \___| .__/ \__,_|_| \__,_|\__|_|\___/|_| |_|
|
|
33
|
-
// | |
|
|
34
|
-
// |_|
|
|
35
|
-
jest.mock('aws-sdk');
|
|
36
|
-
jest.mock('../../change-control-lambda/disable-transition');
|
|
37
|
-
jest.mock('../../change-control-lambda/time-window');
|
|
38
|
-
const mockGetObject = jest.fn().mockName('AWS.S3.getObject');
|
|
39
|
-
AWS.S3 = jest.fn(() => ({ getObject: mockGetObject })).mockName('AWS.S3');
|
|
40
|
-
const mockEnableTransition = jest.fn((_pipeline, _stage) => Promise.resolve(undefined))
|
|
41
|
-
.mockName('enableTransition');
|
|
42
|
-
transitions.enableTransition = mockEnableTransition;
|
|
43
|
-
const mockDisableTransition = jest.fn((_pipeline, _stage, _reason) => Promise.resolve(undefined))
|
|
44
|
-
.mockName('disableTransition');
|
|
45
|
-
transitions.disableTransition = mockDisableTransition;
|
|
46
|
-
const mockShouldBlockPipeline = jest.fn((_icsData, _now) => undefined)
|
|
47
|
-
.mockName('shouldBlockPipeline');
|
|
48
|
-
timeWindow.shouldBlockPipeline = mockShouldBlockPipeline;
|
|
49
|
-
const initialEnv = process.env;
|
|
50
|
-
beforeEach(() => {
|
|
51
|
-
jest.restoreAllMocks();
|
|
52
|
-
process.env = { ...testEnv };
|
|
53
|
-
});
|
|
54
|
-
const mockConsoleLog = jest.fn().mockName('console.log');
|
|
55
|
-
console.log = mockConsoleLog;
|
|
56
|
-
const bucketName = 'BucketName';
|
|
57
|
-
const objectKey = 'ObjectKey';
|
|
58
|
-
const stageName = 'StageName';
|
|
59
|
-
const pipelineName = 'PipelineName';
|
|
60
|
-
const testEnv = {
|
|
61
|
-
CHANGE_CONTROL_BUCKET_NAME: bucketName,
|
|
62
|
-
CHANGE_CONTROL_OBJECT_KEY: objectKey,
|
|
63
|
-
STAGE_NAME: stageName,
|
|
64
|
-
PIPELINE_NAME: pipelineName,
|
|
65
|
-
};
|
|
66
|
-
// _______ _
|
|
67
|
-
// |__ __| | |
|
|
68
|
-
// | | ___ ___| |_ ___
|
|
69
|
-
// | |/ _ \/ __| __/ __|
|
|
70
|
-
// | | __/\__ \ |_\__ \
|
|
71
|
-
// |_|\___||___/\__|___/
|
|
72
|
-
describe('handler', () => {
|
|
73
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
74
|
-
const handler = require('../../change-control-lambda/index').handler;
|
|
75
|
-
describe('failing conditions', () => {
|
|
76
|
-
for (const variable of Object.keys(testEnv)) {
|
|
77
|
-
test(`when ${variable} is not set`, () => {
|
|
78
|
-
// GIVEN
|
|
79
|
-
delete process.env[variable];
|
|
80
|
-
// THEN
|
|
81
|
-
return expect(handler())
|
|
82
|
-
.rejects.toThrow(`Environment variable "${variable}" is required`);
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
test('when S3 access fails', async () => {
|
|
86
|
-
// GIVEN
|
|
87
|
-
const e = new Error('S3 Not Working - the apocalypse has begun');
|
|
88
|
-
mockGetObject.mockImplementationOnce(() => ({
|
|
89
|
-
promise: () => Promise.reject(e),
|
|
90
|
-
}));
|
|
91
|
-
// THEN
|
|
92
|
-
return expect(handler()).rejects.toThrow(e);
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
for (const cause of ['NoSuchKey', 'NoSuchBucket']) {
|
|
96
|
-
test(`when no calendar is found (due to ${cause})`, async () => {
|
|
97
|
-
// GIVEN
|
|
98
|
-
mockGetObject.mockImplementationOnce(() => ({
|
|
99
|
-
promise: () => Promise.reject({ code: cause, message: cause }),
|
|
100
|
-
}));
|
|
101
|
-
mockShouldBlockPipeline.mockReturnValueOnce({
|
|
102
|
-
summary: 'Blocked by default',
|
|
103
|
-
// Other properties - values irrelevant
|
|
104
|
-
start: new Date(),
|
|
105
|
-
end: new Date(),
|
|
106
|
-
dtstamp: new Date(),
|
|
107
|
-
type: 'VEVENT',
|
|
108
|
-
datetype: 'date-time',
|
|
109
|
-
params: [],
|
|
110
|
-
});
|
|
111
|
-
// WHEN
|
|
112
|
-
await expect(handler()).resolves.toBeUndefined();
|
|
113
|
-
// THEN
|
|
114
|
-
await expect(mockGetObject)
|
|
115
|
-
.toHaveBeenCalledWith({ Bucket: bucketName, Key: objectKey });
|
|
116
|
-
await expect(mockShouldBlockPipeline)
|
|
117
|
-
.toHaveBeenCalledWith(expect.stringContaining('No change control calendar was found'), expect.any(Date));
|
|
118
|
-
return expect(mockDisableTransition)
|
|
119
|
-
.toHaveBeenCalledWith(pipelineName, stageName, 'Blocked by default');
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
test('when the window is open', async () => {
|
|
123
|
-
// GIVEN
|
|
124
|
-
const iCalBody = 'Some iCal document (obviously, this is a fake one!)';
|
|
125
|
-
mockGetObject.mockImplementationOnce(() => ({
|
|
126
|
-
promise: () => Promise.resolve({ Body: iCalBody }),
|
|
127
|
-
}));
|
|
128
|
-
mockShouldBlockPipeline.mockReturnValueOnce(undefined);
|
|
129
|
-
// WHEN
|
|
130
|
-
await expect(handler()).resolves.toBeUndefined();
|
|
131
|
-
// THEN
|
|
132
|
-
await expect(mockGetObject)
|
|
133
|
-
.toHaveBeenCalledWith({ Bucket: bucketName, Key: objectKey });
|
|
134
|
-
await expect(mockShouldBlockPipeline)
|
|
135
|
-
.toHaveBeenCalledWith(iCalBody, expect.any(Date));
|
|
136
|
-
return expect(mockEnableTransition)
|
|
137
|
-
.toHaveBeenCalledWith(pipelineName, stageName);
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
afterAll(() => {
|
|
141
|
-
process.env = initialEnv;
|
|
142
|
-
});
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaGFuZGxlci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlFQUFpRTtBQUNqRSwrQkFBZ0M7QUFDaEMsNEZBQThFO0FBQzlFLG9GQUFzRTtBQUV0RSw0QkFBNEI7QUFFNUIsNkNBQTZDO0FBQzdDLCtDQUErQztBQUMvQyx5REFBeUQ7QUFDekQsMERBQTBEO0FBQzFELDJEQUEyRDtBQUMzRCwyREFBMkQ7QUFDM0QscUJBQXFCO0FBQ3JCLHFCQUFxQjtBQUVyQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0RBQWdELENBQUMsQ0FBQztBQUM1RCxJQUFJLENBQUMsSUFBSSxDQUFDLHlDQUF5QyxDQUFDLENBQUM7QUFFckQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzVELEdBQVcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFRLENBQUM7QUFFMUYsTUFBTSxvQkFBb0IsR0FDeEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQWlCLEVBQUUsTUFBYyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQ3ZFLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQ2pDLFdBQW1CLENBQUMsZ0JBQWdCLEdBQUcsb0JBQW9CLENBQUM7QUFFN0QsTUFBTSxxQkFBcUIsR0FDekIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQWlCLEVBQUUsTUFBYyxFQUFFLE9BQWUsRUFBRSxFQUFF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TUFBTSxRQUFRLEdBQUcscURBQXFELENBQUM7UUFDdkUsYUFBYSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDMUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7U0FDbkQsQ0FBQyxDQUFDLENBQUM7UUFDSix1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV2RCxPQUFPO1FBQ1AsTUFBTSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFakQsT0FBTztRQUNQLE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQzthQUN4QixvQkFBb0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFaEUsTUFBTSxNQUFNLENBQUMsdUJBQXVCLENBQUM7YUFDbEMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUVwRCxPQUFPLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQzthQUNoQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbkQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUVILFFBQVEsQ0FBQyxHQUFHLEVBQUU7SUFDWixPQUFPLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQztBQUMzQixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5pbXBvcnQgQVdTID0gcmVxdWlyZSgnYXdzLXNkaycpO1xuaW1wb3J0ICogYXMgdHJhbnNpdGlvbnMgZnJvbSAnLi4vLi4vY2hhbmdlLWNvbnRyb2wtbGFtYmRhL2Rpc2FibGUtdHJhbnNpdGlvbic7XG5pbXBvcnQgKiBhcyB0aW1lV2luZG93IGZyb20gJy4uLy4uL2NoYW5nZS1jb250cm9sLWxhbWJkYS90aW1lLXdpbmRvdyc7XG5cbi8vIHRzbGludDpkaXNhYmxlOm5vLWNvbnNvbGVcblxuLy8gX19fX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gICBfXG4vLyB8ICBfXyBcXCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgfCAoXylcbi8vIHwgfF9fKSB8IF9fIF9fXyBfIF9fICAgX18gXyBfIF9fIF9fIF98IHxfIF8gIF9fXyAgXyBfX1xuLy8gfCAgX19fLyAnX18vIF8gXFwgJ18gXFwgLyBfYCB8ICdfXy8gX2AgfCBfX3wgfC8gXyBcXHwgJ18gXFxcbi8vIHwgfCAgIHwgfCB8ICBfXy8gfF8pIHwgKF98IHwgfCB8IChffCB8IHxffCB8IChfKSB8IHwgfCB8XG4vLyB8X3wgICB8X3wgIFxcX19ffCAuX18vIFxcX18sX3xffCAgXFxfXyxffFxcX198X3xcXF9fXy98X3wgfF98XG4vLyAgICAgICAgICAgICAgICB8IHxcbi8vICAgICAgICAgICAgICAgIHxffFxuXG5qZXN0Lm1vY2soJ2F3cy1zZGsnKTtcbmplc3QubW9jaygnLi4vLi4vY2hhbmdlLWNvbnRyb2wtbGFtYmRhL2Rpc2FibGUtdHJhbnNpdGlvbicpO1xuamVzdC5tb2NrKCcuLi8uLi9jaGFuZ2UtY29udHJvbC1sYW1iZGEvdGltZS13aW5kb3cnKTtcblxuY29uc3QgbW9ja0dldE9iamVjdCA9IGplc3QuZm4oKS5tb2NrTmFtZSgnQVdTLlMzLmdldE9iamVjdCcpO1xuKEFXUyBhcyBhbnkpLlMzID0gamVzdC5mbigoKSA9PiAoeyBnZXRPYmplY3Q6IG1vY2tHZXRPYmplY3QgfSkpLm1vY2tOYW1lKCdBV1MuUzMnKSBhcyBhbnk7XG5cbmNvbnN0IG1vY2tFbmFibGVUcmFuc2l0aW9uID1cbiAgamVzdC5mbigoX3BpcGVsaW5lOiBzdHJpbmcsIF9zdGFnZTogc3RyaW5nKSA9PiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKSlcbiAgICAubW9ja05hbWUoJ2VuYWJsZVRyYW5zaXRpb24nKTtcbih0cmFuc2l0aW9ucyBhcyBhbnkpLmVuYWJsZVRyYW5zaXRpb24gPSBtb2NrRW5hYmxlVHJhbnNpdGlvbjtcblxuY29uc3QgbW9ja0Rpc2FibGVUcmFuc2l0aW9uID1cbiAgamVzdC5mbigoX3BpcGVsaW5lOiBzdHJpbmcsIF9zdGFnZTogc3RyaW5nLCBfcmVhc29uOiBzdHJpbmcpID0+IFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpKVxuICAgIC5tb2NrTmFtZSgnZGlzYWJsZVRyYW5zaXRpb24nKTtcbih0cmFuc2l0aW9ucyBhcyBhbnkpLmRpc2FibGVUcmFuc2l0aW9uID0gbW9ja0Rpc2FibGVUcmFuc2l0aW9uO1xuXG5jb25zdCBtb2NrU2hvdWxkQmxvY2tQaXBlbGluZSA9IGplc3QuZm4oKF9pY3NEYXRhOiBzdHJpbmcgfCBCdWZmZXIsIF9ub3c/OiBEYXRlKTogdGltZVdpbmRvdy5DYWxlbmRhckV2ZW50IHwgdW5kZWZpbmVkID0+IHVuZGVmaW5lZClcbiAgLm1vY2tOYW1lKCdzaG91bGRCbG9ja1BpcGVsaW5lJyk7XG4odGltZVdpbmRvdyBhcyBhbnkpLnNob3VsZEJsb2NrUGlwZWxpbmUgPSBtb2NrU2hvdWxkQmxvY2tQaXBlbGluZTtcblxuY29uc3QgaW5pdGlhbEVudiA9IHByb2Nlc3MuZW52O1xuYmVmb3JlRWFjaCgoKSA9PiB7XG4gIGplc3QucmVzdG9yZUFsbE1vY2tzKCk7XG4gIHByb2Nlc3MuZW52ID0geyAuLi50ZXN0RW52IH07XG59KTtcblxuY29uc3QgbW9ja0NvbnNvbGVMb2cgPSBqZXN0LmZuKCkubW9ja05hbWUoJ2NvbnNvbGUubG9nJyk7XG5jb25zb2xlLmxvZyA9IG1vY2tDb25zb2xlTG9nO1xuXG5jb25zdCBidWNrZXROYW1lID0gJ0J1Y2tldE5hbWUnO1xuY29uc3Qgb2JqZWN0S2V5ID0gJ09iamVjdEtleSc7XG5jb25zdCBzdGFnZU5hbWUgPSAnU3RhZ2VOYW1lJztcbmNvbnN0IHBpcGVsaW5lTmFtZSA9ICdQaXBlbGluZU5hbWUnO1xuY29uc3QgdGVzdEVudiA9IHtcbiAgQ0hBTkdFX0NPTlRST0xfQlVDS0VUX05BTUU6IGJ1Y2tldE5hbWUsXG4gIENIQU5HRV9DT05UUk9MX09CSkVDVF9LRVk6IG9iamVjdEtleSxcbiAgU1RBR0VfTkFNRTogc3RhZ2VOYW1lLFxuICBQSVBFTElORV9OQU1FOiBwaXBlbGluZU5hbWUsXG59O1xuXG4vLyBfX19fX19fICAgICAgICBfXG4vLyB8X18gICBfX3wgICAgICB8IHxcbi8vICAgIHwgfCBfX18gIF9fX3wgfF8gX19fXG4vLyAgICB8IHwvIF8gXFwvIF9ffCBfXy8gX198XG4vLyAgICB8IHwgIF9fL1xcX18gXFwgfF9cXF9fIFxcXG4vLyAgICB8X3xcXF9fX3x8X19fL1xcX198X19fL1xuXG5kZXNjcmliZSgnaGFuZGxlcicsICgpID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgY29uc3QgaGFuZGxlciA9IHJlcXVpcmUoJy4uLy4uL2NoYW5nZS1jb250cm9sLWxhbWJkYS9pbmRleCcpLmhhbmRsZXI7XG5cbiAgZGVzY3JpYmUoJ2ZhaWxpbmcgY29uZGl0aW9ucycsICgpID0+IHtcbiAgICBmb3IgKGNvbnN0IHZhcmlhYmxlIG9mIE9iamVjdC5rZXlzKHRlc3RFbnYpKSB7XG4gICAgICB0ZXN0KGB3aGVuICR7dmFyaWFibGV9IGlzIG5vdCBzZXRgLCAoKSA9PiB7XG4gICAgICAgIC8vIEdJVkVOXG4gICAgICAgIGRlbGV0ZSBwcm9jZXNzLmVudlt2YXJpYWJsZV07XG5cbiAgICAgICAgLy8gVEhFTlxuICAgICAgICByZXR1cm4gZXhwZWN0KGhhbmRsZXIoKSlcbiAgICAgICAgICAucmVqZWN0cy50b1Rocm93KGBFbnZpcm9ubWVudCB2YXJpYWJsZSBcIiR7dmFyaWFibGV9XCIgaXMgcmVxdWlyZWRgKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRlc3QoJ3doZW4gUzMgYWNjZXNzIGZhaWxzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gR0lWRU5cbiAgICAgIGNvbnN0IGUgPSBuZXcgRXJyb3IoJ1MzIE5vdCBXb3JraW5nIC0gdGhlIGFwb2NhbHlwc2UgaGFzIGJlZ3VuJyk7XG4gICAgICBtb2NrR2V0T2JqZWN0Lm1vY2tJbXBsZW1lbnRhdGlvbk9uY2UoKCkgPT4gKHtcbiAgICAgICAgcHJvbWlzZTogKCkgPT4gUHJvbWlzZS5yZWplY3QoZSksXG4gICAgICB9KSk7XG5cbiAgICAgIC8vIFRIRU5cbiAgICAgIHJldHVybiBleHBlY3QoaGFuZGxlcigpKS5yZWplY3RzLnRvVGhyb3coZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGZvciAoY29uc3QgY2F1c2Ugb2YgWydOb1N1Y2hLZXknLCAnTm9TdWNoQnVja2V0J10pIHtcbiAgICB0ZXN0KGB3aGVuIG5vIGNhbGVuZGFyIGlzIGZvdW5kIChkdWUgdG8gJHtjYXVzZX0pYCwgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gR0lWRU5cbiAgICAgIG1vY2tHZXRPYmplY3QubW9ja0ltcGxlbWVudGF0aW9uT25jZSgoKSA9PiAoe1xuICAgICAgICBwcm9taXNlOiAoKSA9PiBQcm9taXNlLnJlamVjdCh7IGNvZGU6IGNhdXNlLCBtZXNzYWdlOiBjYXVzZSB9KSxcbiAgICAgIH0pKTtcbiAgICAgIG1vY2tTaG91bGRCbG9ja1BpcGVsaW5lLm1vY2tSZXR1cm5WYWx1ZU9uY2Uoe1xuICAgICAgICBzdW1tYXJ5OiAnQmxvY2tlZCBieSBkZWZhdWx0JyxcbiAgICAgICAgLy8gT3RoZXIgcHJvcGVydGllcyAtIHZhbHVlcyBpcnJlbGV2YW50XG4gICAgICAgIHN0YXJ0OiBuZXcgRGF0ZSgpLFxuICAgICAgICBlbmQ6IG5ldyBEYXRlKCksXG4gICAgICAgIGR0c3RhbXA6IG5ldyBEYXRlKCksXG4gICAgICAgIHR5cGU6ICdWRVZFTlQnLFxuICAgICAgICBkYXRldHlwZTogJ2RhdGUtdGltZScsXG4gICAgICAgIHBhcmFtczogW10sXG4gICAgICB9KTtcblxuICAgICAgLy8gV0hFTlxuICAgICAgYXdhaXQgZXhwZWN0KGhhbmRsZXIoKSkucmVzb2x2ZXMudG9CZVVuZGVmaW5lZCgpO1xuXG4gICAgICAvLyBUSEVOXG4gICAgICBhd2FpdCBleHBlY3QobW9ja0dldE9iamVjdClcbiAgICAgICAgLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHsgQnVja2V0OiBidWNrZXROYW1lLCBLZXk6IG9iamVjdEtleSB9KTtcblxuICAgICAgYXdhaXQgZXhwZWN0KG1vY2tTaG91bGRCbG9ja1BpcGVsaW5lKVxuICAgICAgICAudG9IYXZlQmVlbkNhbGxlZFdpdGgoZXhwZWN0LnN0cmluZ0NvbnRhaW5pbmcoJ05vIGNoYW5nZSBjb250cm9sIGNhbGVuZGFyIHdhcyBmb3VuZCcpLFxuICAgICAgICAgIGV4cGVjdC5hbnkoRGF0ZSkpO1xuXG4gICAgICByZXR1cm4gZXhwZWN0KG1vY2tEaXNhYmxlVHJhbnNpdGlvbilcbiAgICAgICAgLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHBpcGVsaW5lTmFtZSwgc3RhZ2VOYW1lLCAnQmxvY2tlZCBieSBkZWZhdWx0Jyk7XG4gICAgfSk7XG4gIH1cblxuICB0ZXN0KCd3aGVuIHRoZSB3aW5kb3cgaXMgb3BlbicsIGFzeW5jICgpID0+IHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IGlDYWxCb2R5ID0gJ1NvbWUgaUNhbCBkb2N1bWVudCAob2J2aW91c2x5LCB0aGlzIGlzIGEgZmFrZSBvbmUhKSc7XG4gICAgbW9ja0dldE9iamVjdC5tb2NrSW1wbGVtZW50YXRpb25PbmNlKCgpID0+ICh7XG4gICAgICBwcm9taXNlOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBCb2R5OiBpQ2FsQm9keSB9KSxcbiAgICB9KSk7XG4gICAgbW9ja1Nob3VsZEJsb2NrUGlwZWxpbmUubW9ja1JldHVyblZhbHVlT25jZSh1bmRlZmluZWQpO1xuXG4gICAgLy8gV0hFTlxuICAgIGF3YWl0IGV4cGVjdChoYW5kbGVyKCkpLnJlc29sdmVzLnRvQmVVbmRlZmluZWQoKTtcblxuICAgIC8vIFRIRU5cbiAgICBhd2FpdCBleHBlY3QobW9ja0dldE9iamVjdClcbiAgICAgIC50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7IEJ1Y2tldDogYnVja2V0TmFtZSwgS2V5OiBvYmplY3RLZXkgfSk7XG5cbiAgICBhd2FpdCBleHBlY3QobW9ja1Nob3VsZEJsb2NrUGlwZWxpbmUpXG4gICAgICAudG9IYXZlQmVlbkNhbGxlZFdpdGgoaUNhbEJvZHksIGV4cGVjdC5hbnkoRGF0ZSkpO1xuXG4gICAgcmV0dXJuIGV4cGVjdChtb2NrRW5hYmxlVHJhbnNpdGlvbilcbiAgICAgIC50b0hhdmVCZWVuQ2FsbGVkV2l0aChwaXBlbGluZU5hbWUsIHN0YWdlTmFtZSk7XG4gIH0pO1xufSk7XG5cbmFmdGVyQWxsKCgpID0+IHtcbiAgcHJvY2Vzcy5lbnYgPSBpbml0aWFsRW52O1xufSk7XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const time_window_1 = require("../../change-control-lambda/time-window");
|
|
4
|
-
// tslint:disable:no-console
|
|
5
|
-
const ics = `
|
|
6
|
-
BEGIN:VCALENDAR
|
|
7
|
-
VERSION:2.0
|
|
8
|
-
PRODID:-//Events Calendar//iCal4j 1.0//EN
|
|
9
|
-
|
|
10
|
-
BEGIN:VEVENT
|
|
11
|
-
UID:2017-04-12T07:00:00.000Z to 2017-04-19T06:59:59.000Z
|
|
12
|
-
DTSTAMP:20190114T161956Z
|
|
13
|
-
DTSTART:20170412T070000Z
|
|
14
|
-
DTEND:20170419T065959Z
|
|
15
|
-
SUMMARY:Block1
|
|
16
|
-
END:VEVENT
|
|
17
|
-
|
|
18
|
-
BEGIN:VEVENT
|
|
19
|
-
UID:2017-11-23T08:00:00.000Z to 2017-11-27T08:00:00.000Z
|
|
20
|
-
DTSTAMP:20190114T161956Z
|
|
21
|
-
DTSTART:20171123T080000Z
|
|
22
|
-
DTEND:20171127T080000Z
|
|
23
|
-
SUMMARY:Block2
|
|
24
|
-
END:VEVENT
|
|
25
|
-
|
|
26
|
-
BEGIN:VEVENT
|
|
27
|
-
UID:2019-02-03T08:00:00.000Z to 2019-02-04T07:59:00.000Z
|
|
28
|
-
DTSTAMP:20190114T161956Z
|
|
29
|
-
DTSTART:20190203T080000Z
|
|
30
|
-
DTEND:20190204T075900Z
|
|
31
|
-
SUMMARY:Block3
|
|
32
|
-
END:VEVENT
|
|
33
|
-
|
|
34
|
-
END:VCALENDAR
|
|
35
|
-
`;
|
|
36
|
-
/**
|
|
37
|
-
* An event with an 'RRULE' property will be recurring. Events following the
|
|
38
|
-
* initial event are calculated based on the RRULE specified and the
|
|
39
|
-
* initial event.
|
|
40
|
-
*
|
|
41
|
-
* https://icalendar.org/iCalendar-RFC-5545/3-3-10-recurrence-rule.html
|
|
42
|
-
*
|
|
43
|
-
* Example:
|
|
44
|
-
*
|
|
45
|
-
* BEGIN:VEVENT
|
|
46
|
-
* RRULE:FREQ=WEEKLY;INTERVAL=1 <--- Weekly recurrence, every 1 week. If we set
|
|
47
|
-
* the INTERVAL=2, it would be every 2 weeks.
|
|
48
|
-
* DTSTART:20200501T220000Z <--- Start datetime of the initial event in the series.
|
|
49
|
-
* DTEND:20200504T170000Z <--- End datetime of the initial event in the series.
|
|
50
|
-
* SUMMARY:RecurringBlock1
|
|
51
|
-
* DTSTAMP:20200501T163641Z
|
|
52
|
-
* SEQUENCE:0
|
|
53
|
-
* END:VEVENT
|
|
54
|
-
*
|
|
55
|
-
*/
|
|
56
|
-
const recurringIcs = `
|
|
57
|
-
BEGIN:VCALENDAR
|
|
58
|
-
VERSION:2.0
|
|
59
|
-
PRODID:-//Events Calendar//iCal4j 1.0//EN
|
|
60
|
-
|
|
61
|
-
BEGIN:VEVENT
|
|
62
|
-
RRULE:FREQ=WEEKLY;INTERVAL=1
|
|
63
|
-
DTSTART:20200501T220000Z
|
|
64
|
-
DTEND:20200504T170000Z
|
|
65
|
-
DTSTAMP:20200501T163641Z
|
|
66
|
-
SUMMARY:RecurringBlock1
|
|
67
|
-
SEQUENCE:0
|
|
68
|
-
END:VEVENT
|
|
69
|
-
|
|
70
|
-
BEGIN:VEVENT
|
|
71
|
-
RRULE:FREQ=WEEKLY;INTERVAL=1
|
|
72
|
-
DTSTART:20200505T220000Z
|
|
73
|
-
DTEND:20200506T040000Z
|
|
74
|
-
DTSTAMP:20200501T163641Z
|
|
75
|
-
SUMMARY:RecurringBlock2
|
|
76
|
-
SEQUENCE:0
|
|
77
|
-
END:VEVENT
|
|
78
|
-
|
|
79
|
-
END:VCALENDAR
|
|
80
|
-
`;
|
|
81
|
-
test('non blocked time before all events', () => {
|
|
82
|
-
const x = (0, time_window_1.shouldBlockPipeline)(ics, new Date('2019-02-03T07:00:00.000Z'), 300);
|
|
83
|
-
expect(x).toBeUndefined();
|
|
84
|
-
});
|
|
85
|
-
test('non blocked time in between events', () => {
|
|
86
|
-
const x = (0, time_window_1.shouldBlockPipeline)(ics, new Date('2017-07-12T07:00:00.000Z'));
|
|
87
|
-
expect(x).toBeUndefined();
|
|
88
|
-
});
|
|
89
|
-
test('left edge', () => {
|
|
90
|
-
const x = (0, time_window_1.shouldBlockPipeline)(ics, new Date('2017-04-12T07:00:00.000Z'));
|
|
91
|
-
expect(x && x.summary).toBe('Block1');
|
|
92
|
-
});
|
|
93
|
-
test('right edge', () => {
|
|
94
|
-
const x = (0, time_window_1.shouldBlockPipeline)(ics, new Date('2017-11-27T08:00:00.000Z'));
|
|
95
|
-
expect(x && x.summary).toBe('Block2');
|
|
96
|
-
});
|
|
97
|
-
test('a blocked window starts AND finishes within margin', () => {
|
|
98
|
-
// Using 72 hours padding to widely overlap Block3
|
|
99
|
-
const x = (0, time_window_1.shouldBlockPipeline)(ics, new Date('2019-02-03T07:00:00.000Z'), 72 * 3600);
|
|
100
|
-
expect(x && x.summary).toBe('Block3');
|
|
101
|
-
});
|
|
102
|
-
// Test that the initial event in a recurring series blocks the pipeline when
|
|
103
|
-
// the left edge aligns with the current time.
|
|
104
|
-
test('current time aligns with the left edge of the first event in a series blocks pipeline', () => {
|
|
105
|
-
const x = (0, time_window_1.shouldBlockPipeline)(recurringIcs, new Date('2020-05-01T22:00:00.000Z'));
|
|
106
|
-
expect(x && x.summary).toBe('RecurringBlock1');
|
|
107
|
-
});
|
|
108
|
-
// Test that a future event in a recurring series blocks the pipeline when
|
|
109
|
-
// the left edge aligns with the current time.
|
|
110
|
-
test('current time aligns with the left edge of future event in a series blocks pipeline', () => {
|
|
111
|
-
const x = (0, time_window_1.shouldBlockPipeline)(recurringIcs, new Date('2020-05-22T22:00:00.000Z'));
|
|
112
|
-
expect(x && x.summary).toBe('RecurringBlock1');
|
|
113
|
-
});
|
|
114
|
-
// Test that the initial event in a recurring series blocks the pipeline when
|
|
115
|
-
// the right edge aligns with the current time.
|
|
116
|
-
test('current time aligns with the right edge of the first occurrence blocks pipeline', () => {
|
|
117
|
-
const x = (0, time_window_1.shouldBlockPipeline)(recurringIcs, new Date('2020-05-06T04:00:00.000Z'));
|
|
118
|
-
expect(x && x.summary).toBe('RecurringBlock2');
|
|
119
|
-
});
|
|
120
|
-
// Test that a future event in a recurring series blocks the pipeline when
|
|
121
|
-
// the right edge aligns with the current time.
|
|
122
|
-
test('current time aligns with the right edge of future event in series blocks pipeline', () => {
|
|
123
|
-
const x = (0, time_window_1.shouldBlockPipeline)(recurringIcs, new Date('2020-05-27T04:00:00.000Z'));
|
|
124
|
-
expect(x && x.summary).toBe('RecurringBlock2');
|
|
125
|
-
});
|
|
126
|
-
// Test that we do not block between events in a recurring series.
|
|
127
|
-
test('current time is between future events in recurring series does not block pipeline', () => {
|
|
128
|
-
const x = (0, time_window_1.shouldBlockPipeline)(recurringIcs, new Date('2020-05-14T00:00:00.000Z'));
|
|
129
|
-
expect(x).toBeUndefined();
|
|
130
|
-
});
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS13aW5kb3cudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRpbWUtd2luZG93LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5RUFBOEU7QUFDOUUsNEJBQTRCO0FBRTVCLE1BQU0sR0FBRyxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E4QlgsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsTUFBTSxZQUFZLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXdCcEIsQ0FBQztBQUVGLElBQUksQ0FBQyxvQ0FBb0MsRUFBRSxHQUFHLEVBQUU7SUFDOUMsTUFBTSxDQUFDLEdBQUcsSUFBQSxpQ0FBbUIsRUFBQyxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsMEJBQTBCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM5RSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsb0NBQW9DLEVBQUUsR0FBRyxFQUFFO0lBQzlDLE1BQU0sQ0FBQyxHQUFHLElBQUEsaUNBQW1CLEVBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQztJQUN6RSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRTtJQUNyQixNQUFNLENBQUMsR0FBRyxJQUFBLGlDQUFtQixFQUFDLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUM7SUFDekUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3hDLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7SUFDdEIsTUFBTSxDQUFDLEdBQUcsSUFBQSxpQ0FBbUIsRUFBQyxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN4QyxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxvREFBb0QsRUFBRSxHQUFHLEVBQUU7SUFDOUQsa0RBQWtEO0lBQ2xELE1BQU0sQ0FBQyxHQUFHLElBQUEsaUNBQW1CLEVBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLDBCQUEwQixDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUssQ0FBQyxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN4QyxDQUFDLENBQUMsQ0FBQztBQUVILDZFQUE2RTtBQUM3RSw4Q0FBOEM7QUFDOUMsSUFBSSxDQUFDLHVGQUF1RixFQUFFLEdBQUcsRUFBRTtJQUNqRyxNQUFNLENBQUMsR0FBRyxJQUFBLGlDQUFtQixFQUFDLFlBQVksRUFBRSxJQUFJLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUM7SUFDbEYsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDakQsQ0FBQyxDQUFDLENBQUM7QUFFSCwwRUFBMEU7QUFDMUUsOENBQThDO0FBQzlDLElBQUksQ0FBQyxvRkFBb0YsRUFBRSxHQUFHLEVBQUU7SUFDOUYsTUFBTSxDQUFDLEdBQUcsSUFBQSxpQ0FBbUIsRUFBQyxZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQyxDQUFDO0FBRUgsNkVBQTZFO0FBQzdFLCtDQUErQztBQUMvQyxJQUFJLENBQUMsaUZBQWlGLEVBQUUsR0FBRyxFQUFFO0lBQzNGLE1BQU0sQ0FBQyxHQUFHLElBQUEsaUNBQW1CLEVBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQztJQUNsRixNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUNqRCxDQUFDLENBQUMsQ0FBQztBQUdILDBFQUEwRTtBQUMxRSwrQ0FBK0M7QUFDL0MsSUFBSSxDQUFDLG1GQUFtRixFQUFFLEdBQUcsRUFBRTtJQUM3RixNQUFNLENBQUMsR0FBRyxJQUFBLGlDQUFtQixFQUFDLFlBQVksRUFBRSxJQUFJLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUM7SUFDbEYsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDakQsQ0FBQyxDQUFDLENBQUM7QUFFSCxrRUFBa0U7QUFDbEUsSUFBSSxDQUFDLG1GQUFtRixFQUFFLEdBQUcsRUFBRTtJQUM3RixNQUFNLENBQUMsR0FBRyxJQUFBLGlDQUFtQixFQUFDLFlBQVksRUFBRSxJQUFJLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUM7SUFDbEYsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO0FBQzVCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2hvdWxkQmxvY2tQaXBlbGluZSB9IGZyb20gJy4uLy4uL2NoYW5nZS1jb250cm9sLWxhbWJkYS90aW1lLXdpbmRvdyc7XG4vLyB0c2xpbnQ6ZGlzYWJsZTpuby1jb25zb2xlXG5cbmNvbnN0IGljcyA9IGBcbkJFR0lOOlZDQUxFTkRBUlxuVkVSU0lPTjoyLjBcblBST0RJRDotLy9FdmVudHMgQ2FsZW5kYXIvL2lDYWw0aiAxLjAvL0VOXG5cbkJFR0lOOlZFVkVOVFxuVUlEOjIwMTctMDQtMTJUMDc6MDA6MDAuMDAwWiB0byAyMDE3LTA0LTE5VDA2OjU5OjU5LjAwMFpcbkRUU1RBTVA6MjAxOTAxMTRUMTYxOTU2WlxuRFRTVEFSVDoyMDE3MDQxMlQwNzAwMDBaXG5EVEVORDoyMDE3MDQxOVQwNjU5NTlaXG5TVU1NQVJZOkJsb2NrMVxuRU5EOlZFVkVOVFxuXG5CRUdJTjpWRVZFTlRcblVJRDoyMDE3LTExLTIzVDA4OjAwOjAwLjAwMFogdG8gMjAxNy0xMS0yN1QwODowMDowMC4wMDBaXG5EVFNUQU1QOjIwMTkwMTE0VDE2MTk1NlpcbkRUU1RBUlQ6MjAxNzExMjNUMDgwMDAwWlxuRFRFTkQ6MjAxNzExMjdUMDgwMDAwWlxuU1VNTUFSWTpCbG9jazJcbkVORDpWRVZFTlRcblxuQkVHSU46VkVWRU5UXG5VSUQ6MjAxOS0wMi0wM1QwODowMDowMC4wMDBaIHRvIDIwMTktMDItMDRUMDc6NTk6MDAuMDAwWlxuRFRTVEFNUDoyMDE5MDExNFQxNjE5NTZaXG5EVFNUQVJUOjIwMTkwMjAzVDA4MDAwMFpcbkRURU5EOjIwMTkwMjA0VDA3NTkwMFpcblNVTU1BUlk6QmxvY2szXG5FTkQ6VkVWRU5UXG5cbkVORDpWQ0FMRU5EQVJcbmA7XG5cbi8qKlxuICogQW4gZXZlbnQgd2l0aCBhbiAnUlJVTEUnIHByb3BlcnR5IHdpbGwgYmUgcmVjdXJyaW5nLiBFdmVudHMgZm9sbG93aW5nIHRoZVxuICogaW5pdGlhbCBldmVudCBhcmUgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgUlJVTEUgc3BlY2lmaWVkIGFuZCB0aGVcbiAqIGluaXRpYWwgZXZlbnQuXG4gKlxuICogaHR0cHM6Ly9pY2FsZW5kYXIub3JnL2lDYWxlbmRhci1SRkMtNTU0NS8zLTMtMTAtcmVjdXJyZW5jZS1ydWxlLmh0bWxcbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIEJFR0lOOlZFVkVOVFxuICogUlJVTEU6RlJFUT1XRUVLTFk7SU5URVJWQUw9MSAgPC0tLSBXZWVrbHkgcmVjdXJyZW5jZSwgZXZlcnkgMSB3ZWVrLiBJZiB3ZSBzZXRcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIElOVEVSVkFMPTIsIGl0IHdvdWxkIGJlIGV2ZXJ5IDIgd2Vla3MuXG4gKiBEVFNUQVJUOjIwMjAwNTAxVDIyMDAwMFogICAgICA8LS0tIFN0YXJ0IGRhdGV0aW1lIG9mIHRoZSBpbml0aWFsIGV2ZW50IGluIHRoZSBzZXJpZXMuXG4gKiBEVEVORDoyMDIwMDUwNFQxNzAwMDBaICAgICAgICA8LS0tIEVuZCBkYXRldGltZSBvZiB0aGUgaW5pdGlhbCBldmVudCBpbiB0aGUgc2VyaWVzLlxuICogU1VNTUFSWTpSZWN1cnJpbmdCbG9jazFcbiAqIERUU1RBTVA6MjAyMDA1MDFUMTYzNjQxWlxuICogU0VRVUVOQ0U6MFxuICogRU5EOlZFVkVOVFxuICpcbiAqL1xuY29uc3QgcmVjdXJyaW5nSWNzID0gYFxuQkVHSU46VkNBTEVOREFSXG5WRVJTSU9OOjIuMFxuUFJPRElEOi0vL0V2ZW50cyBDYWxlbmRhci8vaUNhbDRqIDEuMC8vRU5cblxuQkVHSU46VkVWRU5UXG5SUlVMRTpGUkVRPVdFRUtMWTtJTlRFUlZBTD0xXG5EVFNUQVJUOjIwMjAwNTAxVDIyMDAwMFpcbkRURU5EOjIwMjAwNTA0VDE3MDAwMFpcbkRUU1RBTVA6MjAyMDA1MDFUMTYzNjQxWlxuU1VNTUFSWTpSZWN1cnJpbmdCbG9jazFcblNFUVVFTkNFOjBcbkVORDpWRVZFTlRcblxuQkVHSU46VkVWRU5UXG5SUlVMRTpGUkVRPVdFRUtMWTtJTlRFUlZBTD0xXG5EVFNUQVJUOjIwMjAwNTA1VDIyMDAwMFpcbkRURU5EOjIwMjAwNTA2VDA0MDAwMFpcbkRUU1RBTVA6MjAyMDA1MDFUMTYzNjQxWlxuU1VNTUFSWTpSZWN1cnJpbmdCbG9jazJcblNFUVVFTkNFOjBcbkVORDpWRVZFTlRcblxuRU5EOlZDQUxFTkRBUlxuYDtcblxudGVzdCgnbm9uIGJsb2NrZWQgdGltZSBiZWZvcmUgYWxsIGV2ZW50cycsICgpID0+IHtcbiAgY29uc3QgeCA9IHNob3VsZEJsb2NrUGlwZWxpbmUoaWNzLCBuZXcgRGF0ZSgnMjAxOS0wMi0wM1QwNzowMDowMC4wMDBaJyksIDMwMCk7XG4gIGV4cGVjdCh4KS50b0JlVW5kZWZpbmVkKCk7XG59KTtcblxudGVzdCgnbm9uIGJsb2NrZWQgdGltZSBpbiBiZXR3ZWVuIGV2ZW50cycsICgpID0+IHtcbiAgY29uc3QgeCA9IHNob3VsZEJsb2NrUGlwZWxpbmUoaWNzLCBuZXcgRGF0ZSgnMjAxNy0wNy0xMlQwNzowMDowMC4wMDBaJykpO1xuICBleHBlY3QoeCkudG9CZVVuZGVmaW5lZCgpO1xufSk7XG5cbnRlc3QoJ2xlZnQgZWRnZScsICgpID0+IHtcbiAgY29uc3QgeCA9IHNob3VsZEJsb2NrUGlwZWxpbmUoaWNzLCBuZXcgRGF0ZSgnMjAxNy0wNC0xMlQwNzowMDowMC4wMDBaJykpO1xuICBleHBlY3QoeCAmJiB4LnN1bW1hcnkpLnRvQmUoJ0Jsb2NrMScpO1xufSk7XG5cbnRlc3QoJ3JpZ2h0IGVkZ2UnLCAoKSA9PiB7XG4gIGNvbnN0IHggPSBzaG91bGRCbG9ja1BpcGVsaW5lKGljcywgbmV3IERhdGUoJzIwMTctMTEtMjdUMDg6MDA6MDAuMDAwWicpKTtcbiAgZXhwZWN0KHggJiYgeC5zdW1tYXJ5KS50b0JlKCdCbG9jazInKTtcbn0pO1xuXG50ZXN0KCdhIGJsb2NrZWQgd2luZG93IHN0YXJ0cyBBTkQgZmluaXNoZXMgd2l0aGluIG1hcmdpbicsICgpID0+IHtcbiAgLy8gVXNpbmcgNzIgaG91cnMgcGFkZGluZyB0byB3aWRlbHkgb3ZlcmxhcCBCbG9jazNcbiAgY29uc3QgeCA9IHNob3VsZEJsb2NrUGlwZWxpbmUoaWNzLCBuZXcgRGF0ZSgnMjAxOS0wMi0wM1QwNzowMDowMC4wMDBaJyksIDcyICogM182MDApO1xuICBleHBlY3QoeCAmJiB4LnN1bW1hcnkpLnRvQmUoJ0Jsb2NrMycpO1xufSk7XG5cbi8vIFRlc3QgdGhhdCB0aGUgaW5pdGlhbCBldmVudCBpbiBhIHJlY3VycmluZyBzZXJpZXMgYmxvY2tzIHRoZSBwaXBlbGluZSB3aGVuXG4vLyB0aGUgbGVmdCBlZGdlIGFsaWducyB3aXRoIHRoZSBjdXJyZW50IHRpbWUuXG50ZXN0KCdjdXJyZW50IHRpbWUgYWxpZ25zIHdpdGggdGhlIGxlZnQgZWRnZSBvZiB0aGUgZmlyc3QgZXZlbnQgaW4gYSBzZXJpZXMgYmxvY2tzIHBpcGVsaW5lJywgKCkgPT4ge1xuICBjb25zdCB4ID0gc2hvdWxkQmxvY2tQaXBlbGluZShyZWN1cnJpbmdJY3MsIG5ldyBEYXRlKCcyMDIwLTA1LTAxVDIyOjAwOjAwLjAwMFonKSk7XG4gIGV4cGVjdCh4ICYmIHguc3VtbWFyeSkudG9CZSgnUmVjdXJyaW5nQmxvY2sxJyk7XG59KTtcblxuLy8gVGVzdCB0aGF0IGEgZnV0dXJlIGV2ZW50IGluIGEgcmVjdXJyaW5nIHNlcmllcyBibG9ja3MgdGhlIHBpcGVsaW5lIHdoZW5cbi8vIHRoZSBsZWZ0IGVkZ2UgYWxpZ25zIHdpdGggdGhlIGN1cnJlbnQgdGltZS5cbnRlc3QoJ2N1cnJlbnQgdGltZSBhbGlnbnMgd2l0aCB0aGUgbGVmdCBlZGdlIG9mIGZ1dHVyZSBldmVudCBpbiBhIHNlcmllcyBibG9ja3MgcGlwZWxpbmUnLCAoKSA9PiB7XG4gIGNvbnN0IHggPSBzaG91bGRCbG9ja1BpcGVsaW5lKHJlY3VycmluZ0ljcywgbmV3IERhdGUoJzIwMjAtMDUtMjJUMjI6MDA6MDAuMDAwWicpKTtcbiAgZXhwZWN0KHggJiYgeC5zdW1tYXJ5KS50b0JlKCdSZWN1cnJpbmdCbG9jazEnKTtcbn0pO1xuXG4vLyBUZXN0IHRoYXQgdGhlIGluaXRpYWwgZXZlbnQgaW4gYSByZWN1cnJpbmcgc2VyaWVzIGJsb2NrcyB0aGUgcGlwZWxpbmUgd2hlblxuLy8gdGhlIHJpZ2h0IGVkZ2UgYWxpZ25zIHdpdGggdGhlIGN1cnJlbnQgdGltZS5cbnRlc3QoJ2N1cnJlbnQgdGltZSBhbGlnbnMgd2l0aCB0aGUgcmlnaHQgZWRnZSBvZiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBibG9ja3MgcGlwZWxpbmUnLCAoKSA9PiB7XG4gIGNvbnN0IHggPSBzaG91bGRCbG9ja1BpcGVsaW5lKHJlY3VycmluZ0ljcywgbmV3IERhdGUoJzIwMjAtMDUtMDZUMDQ6MDA6MDAuMDAwWicpKTtcbiAgZXhwZWN0KHggJiYgeC5zdW1tYXJ5KS50b0JlKCdSZWN1cnJpbmdCbG9jazInKTtcbn0pO1xuXG5cbi8vIFRlc3QgdGhhdCBhIGZ1dHVyZSBldmVudCBpbiBhIHJlY3VycmluZyBzZXJpZXMgYmxvY2tzIHRoZSBwaXBlbGluZSB3aGVuXG4vLyB0aGUgcmlnaHQgZWRnZSBhbGlnbnMgd2l0aCB0aGUgY3VycmVudCB0aW1lLlxudGVzdCgnY3VycmVudCB0aW1lIGFsaWducyB3aXRoIHRoZSByaWdodCBlZGdlIG9mIGZ1dHVyZSBldmVudCBpbiBzZXJpZXMgYmxvY2tzIHBpcGVsaW5lJywgKCkgPT4ge1xuICBjb25zdCB4ID0gc2hvdWxkQmxvY2tQaXBlbGluZShyZWN1cnJpbmdJY3MsIG5ldyBEYXRlKCcyMDIwLTA1LTI3VDA0OjAwOjAwLjAwMFonKSk7XG4gIGV4cGVjdCh4ICYmIHguc3VtbWFyeSkudG9CZSgnUmVjdXJyaW5nQmxvY2syJyk7XG59KTtcblxuLy8gVGVzdCB0aGF0IHdlIGRvIG5vdCBibG9jayBiZXR3ZWVuIGV2ZW50cyBpbiBhIHJlY3VycmluZyBzZXJpZXMuXG50ZXN0KCdjdXJyZW50IHRpbWUgaXMgYmV0d2VlbiBmdXR1cmUgZXZlbnRzIGluIHJlY3VycmluZyBzZXJpZXMgZG9lcyBub3QgYmxvY2sgcGlwZWxpbmUnLCAoKSA9PiB7XG4gIGNvbnN0IHggPSBzaG91bGRCbG9ja1BpcGVsaW5lKHJlY3VycmluZ0ljcywgbmV3IERhdGUoJzIwMjAtMDUtMTRUMDA6MDA6MDAuMDAwWicpKTtcbiAgZXhwZWN0KHgpLnRvQmVVbmRlZmluZWQoKTtcbn0pO1xuIl19
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Construct, aws_codepipeline as aws_codepipeline, aws_codepipeline_actions as aws_codepipeline_actions } from 'monocdk';
|
|
2
|
-
import '@monocdk-experiment/assert/jest';
|
|
3
|
-
export declare class FakeSourceAction extends aws_codepipeline_actions.Action {
|
|
4
|
-
constructor();
|
|
5
|
-
protected bound(_scope: Construct, _stage: aws_codepipeline.IStage, _options: aws_codepipeline.ActionBindOptions): aws_codepipeline.ActionConfig;
|
|
6
|
-
}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FakeSourceAction = void 0;
|
|
4
|
-
const monocdk_1 = require("monocdk");
|
|
5
|
-
const lib_1 = require("../../lib");
|
|
6
|
-
const notifier_handler_1 = require("../../lib/chime-notifier/handler/notifier-handler");
|
|
7
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
8
|
-
const https = require('https');
|
|
9
|
-
require("@monocdk-experiment/assert/jest");
|
|
10
|
-
jest.mock('https');
|
|
11
|
-
const mockHttpsWrite = jest.fn();
|
|
12
|
-
https.request = jest.fn((_url, _options, cb) => {
|
|
13
|
-
return {
|
|
14
|
-
on: jest.fn(),
|
|
15
|
-
write: mockHttpsWrite,
|
|
16
|
-
end: () => cb({
|
|
17
|
-
statusCode: 200,
|
|
18
|
-
headers: {},
|
|
19
|
-
setEncoding: () => undefined,
|
|
20
|
-
on: (event, listener) => {
|
|
21
|
-
if (event === 'end') {
|
|
22
|
-
listener();
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
}),
|
|
26
|
-
};
|
|
27
|
-
});
|
|
28
|
-
test('call codepipeline and then post to webhooks', async () => {
|
|
29
|
-
notifier_handler_1.codePipeline.getPipelineExecution = jest.fn().mockReturnValue({
|
|
30
|
-
promise: () => Promise.resolve({
|
|
31
|
-
pipelineExecution: {
|
|
32
|
-
pipelineExecutionId: 'xyz',
|
|
33
|
-
pipelineVersion: 1,
|
|
34
|
-
pipelineName: 'xyz',
|
|
35
|
-
status: 'Succeeded',
|
|
36
|
-
artifactRevisions: [
|
|
37
|
-
{
|
|
38
|
-
revisionUrl: 'revision.com/url',
|
|
39
|
-
revisionId: '1234',
|
|
40
|
-
name: 'Source',
|
|
41
|
-
revisionSummary: 'A thing happened',
|
|
42
|
-
},
|
|
43
|
-
],
|
|
44
|
-
},
|
|
45
|
-
}),
|
|
46
|
-
});
|
|
47
|
-
notifier_handler_1.codePipeline.listActionExecutions = jest.fn().mockReturnValue({
|
|
48
|
-
promise: () => Promise.resolve({
|
|
49
|
-
actionExecutionDetails: [
|
|
50
|
-
{
|
|
51
|
-
stageName: 'Source',
|
|
52
|
-
actionName: 'Source',
|
|
53
|
-
status: 'Succeeded',
|
|
54
|
-
output: {
|
|
55
|
-
executionResult: {
|
|
56
|
-
externalExecutionUrl: 'https://SUCCEED',
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
stageName: 'Build',
|
|
62
|
-
actionName: 'Build',
|
|
63
|
-
status: 'Failed',
|
|
64
|
-
output: {
|
|
65
|
-
executionResult: {
|
|
66
|
-
externalExecutionUrl: 'https://FAIL',
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
},
|
|
70
|
-
],
|
|
71
|
-
}),
|
|
72
|
-
});
|
|
73
|
-
await (0, notifier_handler_1.handler)({
|
|
74
|
-
webhookUrls: ['https://my.url/'],
|
|
75
|
-
message: "Pipeline '$PIPELINE' failed on '$REVISION' in '$ACTION' (see $URL)",
|
|
76
|
-
detail: {
|
|
77
|
-
'pipeline': 'myPipeline',
|
|
78
|
-
'version': '1',
|
|
79
|
-
'state': 'FAILED',
|
|
80
|
-
'execution-id': 'abcdef',
|
|
81
|
-
},
|
|
82
|
-
});
|
|
83
|
-
expect(https.request).toBeCalledWith('https://my.url/', expect.objectContaining({
|
|
84
|
-
method: 'POST',
|
|
85
|
-
}), expect.any(Function));
|
|
86
|
-
expect(mockHttpsWrite).toBeCalledWith(expect.stringContaining('"Content"')); // Contains JSON
|
|
87
|
-
expect(mockHttpsWrite).toBeCalledWith(expect.stringContaining('myPipeline')); // Contains the pipeline name
|
|
88
|
-
expect(mockHttpsWrite).toBeCalledWith(expect.stringContaining('A thing happened')); // Contains the revision summary
|
|
89
|
-
expect(mockHttpsWrite).toBeCalledWith(expect.stringContaining('Build')); // Contains the failing action name
|
|
90
|
-
expect(mockHttpsWrite).toBeCalledWith(expect.stringContaining('https://FAIL')); // Contains the failing URL
|
|
91
|
-
});
|
|
92
|
-
test('can add to stack', () => {
|
|
93
|
-
const stack = new monocdk_1.Stack(new monocdk_1.App(), 'TestStack');
|
|
94
|
-
const pipeline = new monocdk_1.aws_codepipeline.Pipeline(stack, 'Pipe');
|
|
95
|
-
pipeline.addStage({ stageName: 'Source', actions: [new FakeSourceAction()] });
|
|
96
|
-
pipeline.addStage({ stageName: 'Build', actions: [new monocdk_1.aws_codepipeline_actions.ManualApprovalAction({ actionName: 'Dummy' })] });
|
|
97
|
-
new lib_1.ChimeNotifier(stack, 'Chime', {
|
|
98
|
-
pipeline,
|
|
99
|
-
webhookUrls: ['https://go/'],
|
|
100
|
-
});
|
|
101
|
-
// EXPECT: no error
|
|
102
|
-
expect(stack).toHaveResource('AWS::Lambda::Function');
|
|
103
|
-
});
|
|
104
|
-
test('webhook url can be a token', () => {
|
|
105
|
-
const stack = new monocdk_1.Stack(new monocdk_1.App(), 'TestStack');
|
|
106
|
-
const pipeline = new monocdk_1.aws_codepipeline.Pipeline(stack, 'Pipe');
|
|
107
|
-
pipeline.addStage({ stageName: 'Source', actions: [new FakeSourceAction()] });
|
|
108
|
-
pipeline.addStage({ stageName: 'Build', actions: [new monocdk_1.aws_codepipeline_actions.ManualApprovalAction({ actionName: 'Dummy' })] });
|
|
109
|
-
new lib_1.ChimeNotifier(stack, 'Chime', {
|
|
110
|
-
pipeline,
|
|
111
|
-
webhookUrls: [monocdk_1.Lazy.stringValue({ produce: () => 'https://go/' })],
|
|
112
|
-
});
|
|
113
|
-
expect(stack).toHaveResource('AWS::Lambda::Function');
|
|
114
|
-
});
|
|
115
|
-
class FakeSourceAction extends monocdk_1.aws_codepipeline_actions.Action {
|
|
116
|
-
constructor() {
|
|
117
|
-
super({
|
|
118
|
-
actionName: 'Fake',
|
|
119
|
-
category: monocdk_1.aws_codepipeline.ActionCategory.SOURCE,
|
|
120
|
-
provider: 'FAKE',
|
|
121
|
-
artifactBounds: {
|
|
122
|
-
minInputs: 0,
|
|
123
|
-
maxInputs: 0,
|
|
124
|
-
minOutputs: 1,
|
|
125
|
-
maxOutputs: 1,
|
|
126
|
-
},
|
|
127
|
-
outputs: [new monocdk_1.aws_codepipeline.Artifact('bla')],
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
// tslint:disable-next-line: max-line-length
|
|
131
|
-
bound(_scope, _stage, _options) {
|
|
132
|
-
return {
|
|
133
|
-
configuration: {},
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
exports.FakeSourceAction = FakeSourceAction;
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbWUtbm90aWZpZXIudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNoaW1lLW5vdGlmaWVyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBSWlCO0FBQ2pCLG1DQUEwQztBQUMxQyx3RkFBMEY7QUFDMUYsaUVBQWlFO0FBQ2pFLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMvQiwyQ0FBeUM7QUFFekMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVuQixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7QUFDaEMsS0FBYSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRTtJQUN0RCxPQUFPO1FBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7UUFDYixLQUFLLEVBQUUsY0FBYztRQUNyQixHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ1osVUFBVSxFQUFFLEdBQUc7WUFDZixPQUFPLEVBQUUsRUFBRTtZQUNYLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTO1lBQzVCLEVBQUUsRUFBRSxDQUFDLEtBQWEsRUFBRSxRQUFvQixFQUFFLEVBQUU7Z0JBQzFDLElBQUksS0FBSyxLQUFLLEtBQUssRUFBRTtvQkFBRSxRQUFRLEVBQUUsQ0FBQztpQkFBRTtZQUN0QyxDQUFDO1NBQ0YsQ0FBQztLQUNILENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyw2Q0FBNkMsRUFBRSxLQUFLLElBQUksRUFBRTtJQUM3RCwrQkFBWSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUM7UUFDNUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENB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LENBQUMsY0FBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0tBQ2xFLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUN4RCxDQUFDLENBQUMsQ0FBQztBQUVILE1BQWEsZ0JBQWlCLFNBQVEsa0NBQXdCLENBQUMsTUFBTTtJQUNuRTtRQUNFLEtBQUssQ0FBQztZQUNKLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLFFBQVEsRUFBRSwwQkFBZ0IsQ0FBQyxjQUFjLENBQUMsTUFBTTtZQUNoRCxRQUFRLEVBQUUsTUFBTTtZQUNoQixjQUFjLEVBQUU7Z0JBQ2QsU0FBUyxFQUFFLENBQUM7Z0JBQ1osU0FBUyxFQUFFLENBQUM7Z0JBQ1osVUFBVSxFQUFFLENBQUM7Z0JBQ2IsVUFBVSxFQUFFLENBQUM7YUFDZDtZQUNELE9BQU8sRUFBRSxDQUFDLElBQUksMEJBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2hELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCw0Q0FBNEM7SUFDbEMsS0FBSyxDQUFDLE1BQWlCLEVBQUUsTUFBK0IsRUFBRSxRQUE0QztRQUM5RyxPQUFPO1lBQ0wsYUFBYSxFQUFFLEVBQUc7U0FDbkIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXRCRCw0Q0FzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHAsIENvbnN0cnVjdCwgTGF6eSwgU3RhY2ssXG4gIGF3c19jb2RlcGlwZWxpbmUgYXMgYXdzX2NvZGVwaXBlbGluZSxcbiAgYXdzX2NvZGVwaXBlbGluZV9hY3Rpb25zIGFzIGF3c19jb2RlcGlwZWxpbmVfYWN0aW9ucyxcbn0gZnJvbSAnbW9ub2Nkayc7XG5pbXBvcnQgeyBDaGltZU5vdGlmaWVyIH0gZnJvbSAnLi4vLi4vbGliJztcbmltcG9ydCB7IGNvZGVQaXBlbGluZSwgaGFuZGxlciB9IGZyb20gJy4uLy4uL2xpYi9jaGltZS1ub3RpZmllci9oYW5kbGVyL25vdGlmaWVyLWhhbmRsZXInO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmNvbnN0IGh0dHBzID0gcmVxdWlyZSgnaHR0cHMnKTtcbmltcG9ydCAnQG1vbm9jZGstZXhwZXJpbWVudC9hc3NlcnQvamVzdCc7XG5cbmplc3QubW9jaygnaHR0cHMnKTtcblxuY29uc3QgbW9ja0h0dHBzV3JpdGUgPSBqZXN0LmZuKCk7XG4oaHR0cHMgYXMgYW55KS5yZXF1ZXN0ID0gamVzdC5mbigoX3VybCwgX29wdGlvbnMsIGNiKSA9PiB7XG4gIHJldHVybiB7XG4gICAgb246IGplc3QuZm4oKSxcbiAgICB3cml0ZTogbW9ja0h0dHBzV3JpdGUsXG4gICAgZW5kOiAoKSA9PiBjYih7XG4gICAgICBzdGF0dXNDb2RlOiAyMDAsXG4gICAgICBoZWFkZXJzOiB7fSxcbiAgICAgIHNldEVuY29kaW5nOiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICBvbjogKGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiAoKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgIGlmIChldmVudCA9PT0gJ2VuZCcpIHsgbGlzdGVuZXIoKTsgfVxuICAgICAgfSxcbiAgICB9KSxcbiAgfTtcbn0pO1xuXG50ZXN0KCdjYWxsIGNvZGVwaXBlbGluZSBhbmQgdGhlbiBwb3N0IHRvIHdlYmhvb2tzJywgYXN5bmMgKCkgPT4ge1xuICBjb2RlUGlwZWxpbmUuZ2V0UGlwZWxpbmVFeGVjdXRpb24gPSBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKHtcbiAgICBwcm9taXNlOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgcGlwZWxpbmVFeGVjdXRpb246IHtcbiAgICAgICAgcGlwZWxpbmVFeGVjdXRpb25JZDogJ3h5eicsXG4gICAgICAgIHBpcGVsaW5lVmVyc2lvbjogMSxcbiAgICAgICAgcGlwZWxpbmVOYW1lOiAneHl6JyxcbiAgICAgICAgc3RhdHVzOiAnU3VjY2VlZGVkJyxcbiAgICAgICAgYXJ0aWZhY3RSZXZpc2lvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICByZXZpc2lvblVybDogJ3JldmlzaW9uLmNvbS91cmwnLFxuICAgICAgICAgICAgcmV2aXNpb25JZDogJzEyMzQnLFxuICAgICAgICAgICAgbmFtZTogJ1NvdXJjZScsXG4gICAgICAgICAgICByZXZpc2lvblN1bW1hcnk6ICdBIHRoaW5nIGhhcHBlbmVkJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KSxcbiAgfSk7XG5cbiAgY29kZVBpcGVsaW5lLmxpc3RBY3Rpb25FeGVjdXRpb25zID0gamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZSh7XG4gICAgcHJvbWlzZTogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgIGFjdGlvbkV4ZWN1dGlvbkRldGFpbHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHN0YWdlTmFtZTogJ1NvdXJjZScsXG4gICAgICAgICAgYWN0aW9uTmFtZTogJ1NvdXJjZScsXG4gICAgICAgICAgc3RhdHVzOiAnU3VjY2VlZGVkJyxcbiAgICAgICAgICBvdXRwdXQ6IHtcbiAgICAgICAgICAgIGV4ZWN1dGlvblJlc3VsdDoge1xuICAgICAgICAgICAgICBleHRlcm5hbEV4ZWN1dGlvblVybDogJ2h0dHBzOi8vU1VDQ0VFRCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzdGFnZU5hbWU6ICdCdWlsZCcsXG4gICAgICAgICAgYWN0aW9uTmFtZTogJ0J1aWxkJyxcbiAgICAgICAgICBzdGF0dXM6ICdGYWlsZWQnLFxuICAgICAgICAgIG91dHB1dDoge1xuICAgICAgICAgICAgZXhlY3V0aW9uUmVzdWx0OiB7XG4gICAgICAgICAgICAgIGV4dGVybmFsRXhlY3V0aW9uVXJsOiAnaHR0cHM6Ly9GQUlMJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSksXG4gIH0pO1xuXG4gIGF3YWl0IGhhbmRsZXIoe1xuICAgIHdlYmhvb2tVcmxzOiBbJ2h0dHBzOi8vbXkudXJsLyddLFxuICAgIG1lc3NhZ2U6IFwiUGlwZWxpbmUgJyRQSVBFTElORScgZmFpbGVkIG9uICckUkVWSVNJT04nIGluICckQUNUSU9OJyAoc2VlICRVUkwpXCIsXG4gICAgZGV0YWlsOiB7XG4gICAgICAncGlwZWxpbmUnOiAnbXlQaXBlbGluZScsXG4gICAgICAndmVyc2lvbic6ICcxJyxcbiAgICAgICdzdGF0ZSc6ICdGQUlMRUQnLFxuICAgICAgJ2V4ZWN1dGlvbi1pZCc6ICdhYmNkZWYnLFxuICAgIH0sXG4gIH0pO1xuXG4gIGV4cGVjdChodHRwcy5yZXF1ZXN0KS50b0JlQ2FsbGVkV2l0aCgnaHR0cHM6Ly9teS51cmwvJywgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgIG1ldGhvZDogJ1BPU1QnLFxuICB9KSwgZXhwZWN0LmFueShGdW5jdGlvbikpO1xuICBleHBlY3QobW9ja0h0dHBzV3JpdGUpLnRvQmVDYWxsZWRXaXRoKGV4cGVjdC5zdHJpbmdDb250YWluaW5nKCdcIkNvbnRlbnRcIicpKTsgLy8gQ29udGFpbnMgSlNPTlxuXG4gIGV4cGVjdChtb2NrSHR0cHNXcml0ZSkudG9CZUNhbGxlZFdpdGgoZXhwZWN0LnN0cmluZ0NvbnRhaW5pbmcoJ215UGlwZWxpbmUnKSk7IC8vIENvbnRhaW5zIHRoZSBwaXBlbGluZSBuYW1lXG4gIGV4cGVjdChtb2NrSHR0cHNXcml0ZSkudG9CZUNhbGxlZFdpdGgoZXhwZWN0LnN0cmluZ0NvbnRhaW5pbmcoJ0EgdGhpbmcgaGFwcGVuZWQnKSk7IC8vIENvbnRhaW5zIHRoZSByZXZpc2lvbiBzdW1tYXJ5XG4gIGV4cGVjdChtb2NrSHR0cHNXcml0ZSkudG9CZUNhbGxlZFdpdGgoZXhwZWN0LnN0cmluZ0NvbnRhaW5pbmcoJ0J1aWxkJykpOyAvLyBDb250YWlucyB0aGUgZmFpbGluZyBhY3Rpb24gbmFtZVxuICBleHBlY3QobW9ja0h0dHBzV3JpdGUpLnRvQmVDYWxsZWRXaXRoKGV4cGVjdC5zdHJpbmdDb250YWluaW5nKCdodHRwczovL0ZBSUwnKSk7IC8vIENvbnRhaW5zIHRoZSBmYWlsaW5nIFVSTFxufSk7XG5cbnRlc3QoJ2NhbiBhZGQgdG8gc3RhY2snLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKG5ldyBBcHAoKSwgJ1Rlc3RTdGFjaycpO1xuICBjb25zdCBwaXBlbGluZSA9IG5ldyBhd3NfY29kZXBpcGVsaW5lLlBpcGVsaW5lKHN0YWNrLCAnUGlwZScpO1xuICBwaXBlbGluZS5hZGRTdGFnZSh7IHN0YWdlTmFtZTogJ1NvdXJjZScsIGFjdGlvbnM6IFtuZXcgRmFrZVNvdXJjZUFjdGlvbigpXSB9KTtcbiAgcGlwZWxpbmUuYWRkU3RhZ2UoeyBzdGFnZU5hbWU6ICdCdWlsZCcsIGFjdGlvbnM6IFtuZXcgYXdzX2NvZGVwaXBlbGluZV9hY3Rpb25zLk1hbnVhbEFwcHJvdmFsQWN0aW9uKHsgYWN0aW9uTmFtZTogJ0R1bW15JyB9KV0gfSk7XG5cbiAgbmV3IENoaW1lTm90aWZpZXIoc3RhY2ssICdDaGltZScsIHtcbiAgICBwaXBlbGluZSxcbiAgICB3ZWJob29rVXJsczogWydodHRwczovL2dvLyddLFxuICB9KTtcblxuICAvLyBFWFBFQ1Q6IG5vIGVycm9yXG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicpO1xufSk7XG5cbnRlc3QoJ3dlYmhvb2sgdXJsIGNhbiBiZSBhIHRva2VuJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjayhuZXcgQXBwKCksICdUZXN0U3RhY2snKTtcbiAgY29uc3QgcGlwZWxpbmUgPSBuZXcgYXdzX2NvZGVwaXBlbGluZS5QaXBlbGluZShzdGFjaywgJ1BpcGUnKTtcbiAgcGlwZWxpbmUuYWRkU3RhZ2UoeyBzdGFnZU5hbWU6ICdTb3VyY2UnLCBhY3Rpb25zOiBbbmV3IEZha2VTb3VyY2VBY3Rpb24oKV0gfSk7XG4gIHBpcGVsaW5lLmFkZFN0YWdlKHsgc3RhZ2VOYW1lOiAnQnVpbGQnLCBhY3Rpb25zOiBbbmV3IGF3c19jb2RlcGlwZWxpbmVfYWN0aW9ucy5NYW51YWxBcHByb3ZhbEFjdGlvbih7IGFjdGlvbk5hbWU6ICdEdW1teScgfSldIH0pO1xuXG4gIG5ldyBDaGltZU5vdGlmaWVyKHN0YWNrLCAnQ2hpbWUnLCB7XG4gICAgcGlwZWxpbmUsXG4gICAgd2ViaG9va1VybHM6IFtMYXp5LnN0cmluZ1ZhbHVlKHsgcHJvZHVjZTogKCkgPT4gJ2h0dHBzOi8vZ28vJyB9KV0sXG4gIH0pO1xuXG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicpO1xufSk7XG5cbmV4cG9ydCBjbGFzcyBGYWtlU291cmNlQWN0aW9uIGV4dGVuZHMgYXdzX2NvZGVwaXBlbGluZV9hY3Rpb25zLkFjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKHtcbiAgICAgIGFjdGlvbk5hbWU6ICdGYWtlJyxcbiAgICAgIGNhdGVnb3J5OiBhd3NfY29kZXBpcGVsaW5lLkFjdGlvbkNhdGVnb3J5LlNPVVJDRSxcbiAgICAgIHByb3ZpZGVyOiAnRkFLRScsXG4gICAgICBhcnRpZmFjdEJvdW5kczoge1xuICAgICAgICBtaW5JbnB1dHM6IDAsXG4gICAgICAgIG1heElucHV0czogMCxcbiAgICAgICAgbWluT3V0cHV0czogMSxcbiAgICAgICAgbWF4T3V0cHV0czogMSxcbiAgICAgIH0sXG4gICAgICBvdXRwdXRzOiBbbmV3IGF3c19jb2RlcGlwZWxpbmUuQXJ0aWZhY3QoJ2JsYScpXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXG4gIHByb3RlY3RlZCBib3VuZChfc2NvcGU6IENvbnN0cnVjdCwgX3N0YWdlOiBhd3NfY29kZXBpcGVsaW5lLklTdGFnZSwgX29wdGlvbnM6IGF3c19jb2RlcGlwZWxpbmUuQWN0aW9uQmluZE9wdGlvbnMpOiBhd3NfY29kZXBpcGVsaW5lLkFjdGlvbkNvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbmZpZ3VyYXRpb246IHsgfSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import '@monocdk-experiment/assert/jest';
|