@digitraffic/common 2022.10.5-1
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/LICENSE +291 -0
- package/aws/infra/api/integration.d.ts +21 -0
- package/aws/infra/api/integration.js +52 -0
- package/aws/infra/api/response.d.ts +22 -0
- package/aws/infra/api/response.js +61 -0
- package/aws/infra/api/responses.d.ts +39 -0
- package/aws/infra/api/responses.js +79 -0
- package/aws/infra/api/static-integration.d.ts +15 -0
- package/aws/infra/api/static-integration.js +54 -0
- package/aws/infra/canaries/canary-alarm.d.ts +6 -0
- package/aws/infra/canaries/canary-alarm.js +26 -0
- package/aws/infra/canaries/canary-parameters.d.ts +18 -0
- package/aws/infra/canaries/canary-parameters.js +3 -0
- package/aws/infra/canaries/canary-role.d.ts +6 -0
- package/aws/infra/canaries/canary-role.js +46 -0
- package/aws/infra/canaries/canary.d.ts +8 -0
- package/aws/infra/canaries/canary.js +29 -0
- package/aws/infra/canaries/database-canary.d.ts +18 -0
- package/aws/infra/canaries/database-canary.js +55 -0
- package/aws/infra/canaries/database-checker.d.ts +21 -0
- package/aws/infra/canaries/database-checker.js +109 -0
- package/aws/infra/canaries/url-canary.d.ts +19 -0
- package/aws/infra/canaries/url-canary.js +46 -0
- package/aws/infra/canaries/url-checker.d.ts +46 -0
- package/aws/infra/canaries/url-checker.js +238 -0
- package/aws/infra/documentation.d.ts +56 -0
- package/aws/infra/documentation.js +95 -0
- package/aws/infra/scheduler.d.ts +12 -0
- package/aws/infra/scheduler.js +31 -0
- package/aws/infra/security-rule.d.ts +12 -0
- package/aws/infra/security-rule.js +39 -0
- package/aws/infra/sqs-integration.d.ts +7 -0
- package/aws/infra/sqs-integration.js +93 -0
- package/aws/infra/sqs-queue.d.ts +16 -0
- package/aws/infra/sqs-queue.js +130 -0
- package/aws/infra/stack/lambda-configs.d.ts +72 -0
- package/aws/infra/stack/lambda-configs.js +93 -0
- package/aws/infra/stack/monitoredfunction.d.ts +84 -0
- package/aws/infra/stack/monitoredfunction.js +135 -0
- package/aws/infra/stack/rest_apis.d.ts +40 -0
- package/aws/infra/stack/rest_apis.js +179 -0
- package/aws/infra/stack/stack-checking-aspect.d.ts +20 -0
- package/aws/infra/stack/stack-checking-aspect.js +163 -0
- package/aws/infra/stack/stack.d.ts +41 -0
- package/aws/infra/stack/stack.js +58 -0
- package/aws/infra/stack/subscription.d.ts +17 -0
- package/aws/infra/stack/subscription.js +41 -0
- package/aws/infra/usage-plans.d.ts +15 -0
- package/aws/infra/usage-plans.js +42 -0
- package/aws/runtime/apikey.d.ts +2 -0
- package/aws/runtime/apikey.js +13 -0
- package/aws/runtime/digitraffic-integration-response.d.ts +8 -0
- package/aws/runtime/digitraffic-integration-response.js +26 -0
- package/aws/runtime/messaging.d.ts +10 -0
- package/aws/runtime/messaging.js +31 -0
- package/aws/runtime/s3.d.ts +2 -0
- package/aws/runtime/s3.js +30 -0
- package/aws/runtime/secrets/dbsecret.d.ts +54 -0
- package/aws/runtime/secrets/dbsecret.js +96 -0
- package/aws/runtime/secrets/proxy-holder.d.ts +9 -0
- package/aws/runtime/secrets/proxy-holder.js +26 -0
- package/aws/runtime/secrets/rds-holder.d.ts +9 -0
- package/aws/runtime/secrets/rds-holder.js +26 -0
- package/aws/runtime/secrets/secret-holder.d.ts +26 -0
- package/aws/runtime/secrets/secret-holder.js +73 -0
- package/aws/runtime/secrets/secret.d.ts +8 -0
- package/aws/runtime/secrets/secret.js +43 -0
- package/aws/types/errors.d.ts +4 -0
- package/aws/types/errors.js +9 -0
- package/aws/types/lambda-response.d.ts +12 -0
- package/aws/types/lambda-response.js +28 -0
- package/aws/types/mediatypes.d.ts +10 -0
- package/aws/types/mediatypes.js +15 -0
- package/aws/types/model-with-reference.d.ts +7 -0
- package/aws/types/model-with-reference.js +3 -0
- package/aws/types/proxytypes.d.ts +26 -0
- package/aws/types/proxytypes.js +3 -0
- package/aws/types/tags.d.ts +2 -0
- package/aws/types/tags.js +7 -0
- package/database/cached.d.ts +7 -0
- package/database/cached.js +32 -0
- package/database/database.d.ts +19 -0
- package/database/database.js +62 -0
- package/database/last-updated.d.ts +16 -0
- package/database/last-updated.js +54 -0
- package/index.d.ts +1 -0
- package/index.js +18 -0
- package/marine/id_utils.d.ts +3 -0
- package/marine/id_utils.js +33 -0
- package/marine/rtz.d.ts +48 -0
- package/marine/rtz.js +3 -0
- package/package.json +55 -0
- package/src/aws/infra/api/integration.js +52 -0
- package/src/aws/infra/api/response.js +61 -0
- package/src/aws/infra/api/responses.js +79 -0
- package/src/aws/infra/api/static-integration.js +54 -0
- package/src/aws/infra/canaries/canary-alarm.js +26 -0
- package/src/aws/infra/canaries/canary-parameters.js +3 -0
- package/src/aws/infra/canaries/canary-role.js +46 -0
- package/src/aws/infra/canaries/canary.js +29 -0
- package/src/aws/infra/canaries/database-canary.js +55 -0
- package/src/aws/infra/canaries/database-checker.js +109 -0
- package/src/aws/infra/canaries/url-canary.js +46 -0
- package/src/aws/infra/canaries/url-checker.js +238 -0
- package/src/aws/infra/documentation.js +95 -0
- package/src/aws/infra/scheduler.js +31 -0
- package/src/aws/infra/security-rule.js +39 -0
- package/src/aws/infra/sqs-integration.js +93 -0
- package/src/aws/infra/sqs-queue.js +130 -0
- package/src/aws/infra/stack/lambda-configs.js +93 -0
- package/src/aws/infra/stack/monitoredfunction.js +135 -0
- package/src/aws/infra/stack/rest_apis.js +179 -0
- package/src/aws/infra/stack/stack-checking-aspect.js +163 -0
- package/src/aws/infra/stack/stack.js +58 -0
- package/src/aws/infra/stack/subscription.js +41 -0
- package/src/aws/infra/usage-plans.js +42 -0
- package/src/aws/runtime/apikey.js +13 -0
- package/src/aws/runtime/digitraffic-integration-response.js +26 -0
- package/src/aws/runtime/messaging.js +31 -0
- package/src/aws/runtime/s3.js +30 -0
- package/src/aws/runtime/secrets/dbsecret.js +96 -0
- package/src/aws/runtime/secrets/proxy-holder.js +26 -0
- package/src/aws/runtime/secrets/rds-holder.js +26 -0
- package/src/aws/runtime/secrets/secret-holder.js +73 -0
- package/src/aws/runtime/secrets/secret.js +43 -0
- package/src/aws/types/errors.js +9 -0
- package/src/aws/types/lambda-response.js +28 -0
- package/src/aws/types/mediatypes.js +15 -0
- package/src/aws/types/model-with-reference.js +3 -0
- package/src/aws/types/proxytypes.js +3 -0
- package/src/aws/types/tags.js +7 -0
- package/src/database/cached.js +32 -0
- package/src/database/database.js +62 -0
- package/src/database/last-updated.js +54 -0
- package/src/marine/id_utils.js +33 -0
- package/src/marine/rtz.js +3 -0
- package/src/test/asserter.js +45 -0
- package/src/test/db-testutils.js +31 -0
- package/src/test/httpserver.js +67 -0
- package/src/test/secret.js +25 -0
- package/src/test/secrets-manager.js +59 -0
- package/src/test/testutils.js +44 -0
- package/src/types/input-error.js +7 -0
- package/src/types/language.js +10 -0
- package/src/types/traffictype.js +13 -0
- package/src/types/validator.js +14 -0
- package/src/utils/api-model.js +129 -0
- package/src/utils/base64.js +21 -0
- package/src/utils/date-utils.js +34 -0
- package/src/utils/geojson-types.js +18 -0
- package/src/utils/geometry.js +140 -0
- package/src/utils/retry.js +50 -0
- package/src/utils/slack.js +25 -0
- package/src/utils/utils.js +40 -0
- package/test/asserter.d.ts +11 -0
- package/test/asserter.js +45 -0
- package/test/db-testutils.d.ts +2 -0
- package/test/db-testutils.js +31 -0
- package/test/httpserver.d.ts +18 -0
- package/test/httpserver.js +67 -0
- package/test/marine/id_utils.test.js +69 -0
- package/test/promise/promise.test.js +125 -0
- package/test/secret.d.ts +3 -0
- package/test/secret.js +25 -0
- package/test/secrets/dbsecret.test.js +71 -0
- package/test/secrets/secret-holder.test.js +124 -0
- package/test/secrets/secret.test.js +66 -0
- package/test/secrets-manager.d.ts +9 -0
- package/test/secrets-manager.js +59 -0
- package/test/test/httpserver.test.js +87 -0
- package/test/testutils.d.ts +12 -0
- package/test/testutils.js +44 -0
- package/test/utils/date-utils.test.js +51 -0
- package/test/utils/geometry.test.js +49 -0
- package/test/utils/utils.test.js +49 -0
- package/types/input-error.d.ts +2 -0
- package/types/input-error.js +7 -0
- package/types/language.d.ts +5 -0
- package/types/language.js +10 -0
- package/types/traffictype.d.ts +8 -0
- package/types/traffictype.js +13 -0
- package/types/validator.d.ts +4 -0
- package/types/validator.js +14 -0
- package/utils/api-model.d.ts +87 -0
- package/utils/api-model.js +129 -0
- package/utils/base64.d.ts +12 -0
- package/utils/base64.js +21 -0
- package/utils/date-utils.d.ts +17 -0
- package/utils/date-utils.js +34 -0
- package/utils/geojson-types.d.ts +14 -0
- package/utils/geojson-types.js +18 -0
- package/utils/geometry.d.ts +36 -0
- package/utils/geometry.js +140 -0
- package/utils/retry.d.ts +13 -0
- package/utils/retry.js +50 -0
- package/utils/slack.d.ts +5 -0
- package/utils/slack.js +25 -0
- package/utils/utils.d.ts +22 -0
- package/utils/utils.js +40 -0
- package/yarn.lock +3200 -0
@@ -0,0 +1,69 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
const IdUtils = __importStar(require("../../src/marine/id_utils"));
|
27
|
+
const testutils_1 = require("../../src/test/testutils");
|
28
|
+
describe('IdUtils tests', () => {
|
29
|
+
test('isValidLOCODE - success', () => {
|
30
|
+
expect(IdUtils.isValidLOCODE('FILOL')).toBe(true);
|
31
|
+
});
|
32
|
+
test('isValidLOCODE - fail with non-finnish prefix', () => {
|
33
|
+
expect(IdUtils.isValidLOCODE('SEABS')).toBe(false);
|
34
|
+
});
|
35
|
+
test('isValidLOCODE - fail with numbers', () => {
|
36
|
+
expect(IdUtils.isValidLOCODE('FIAA1')).toBe(false);
|
37
|
+
});
|
38
|
+
test('isValidIMO - successful checksum - ship TRANSMAR', () => {
|
39
|
+
expect(IdUtils.isValidIMO(9167332)).toBe(true);
|
40
|
+
});
|
41
|
+
test('isValidIMO - successful checksum - ship ANNIKA B', () => {
|
42
|
+
expect(IdUtils.isValidIMO(9213715)).toBe(true);
|
43
|
+
});
|
44
|
+
test('isValidIMO - successful checksum - ship X PRESS ELBE', () => {
|
45
|
+
expect(IdUtils.isValidIMO(9483669)).toBe(true);
|
46
|
+
});
|
47
|
+
test('isValidIMO - successful checksum - ship SILVERFORS', () => {
|
48
|
+
expect(IdUtils.isValidIMO(8322765)).toBe(true);
|
49
|
+
});
|
50
|
+
test('isValidIMO - invalid checksum', () => {
|
51
|
+
expect(IdUtils.isValidIMO(8322766)).toBe(false);
|
52
|
+
});
|
53
|
+
test('isValidIMO - fail with number smaller than 1000000', () => {
|
54
|
+
expect(IdUtils.isValidIMO((0, testutils_1.getRandomNumber)(0, 1000000 - 1))).toBe(false);
|
55
|
+
});
|
56
|
+
test('isValidIMO - fail with number larger than 9999999', () => {
|
57
|
+
expect(IdUtils.isValidIMO((0, testutils_1.getRandomNumber)(9999999 + 1, 99999999))).toBe(false);
|
58
|
+
});
|
59
|
+
test('isValidMMSI - success', () => {
|
60
|
+
expect(IdUtils.isValidMMSI(230927000)).toBe(true);
|
61
|
+
});
|
62
|
+
test('isValidMMSI - fail with number smaller than 100000000', () => {
|
63
|
+
expect(IdUtils.isValidMMSI((0, testutils_1.getRandomNumber)(0, 100000000 - 1))).toBe(false);
|
64
|
+
});
|
65
|
+
test('isValidMMSI - fail with number larger than 999999999', () => {
|
66
|
+
expect(IdUtils.isValidMMSI((0, testutils_1.getRandomNumber)(999999999 + 1, 9999999999))).toBe(false);
|
67
|
+
});
|
68
|
+
});
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRfdXRpbHMudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvbWFyaW5lL2lkX3V0aWxzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1FQUFxRDtBQUNyRCx3REFBeUQ7QUFFekQsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7SUFFM0IsSUFBSSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtRQUNqQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7UUFDdEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsbUNBQW1DLEVBQUUsR0FBRyxFQUFFO1FBQzNDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLGtEQUFrRCxFQUFFLEdBQUcsRUFBRTtRQUMxRCxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxrREFBa0QsRUFBRSxHQUFHLEVBQUU7UUFDMUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsc0RBQXNELEVBQUUsR0FBRyxFQUFFO1FBQzlELE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLG9EQUFvRCxFQUFFLEdBQUcsRUFBRTtRQUM1RCxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQywrQkFBK0IsRUFBRSxHQUFHLEVBQUU7UUFDdkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsb0RBQW9ELEVBQUUsR0FBRyxFQUFFO1FBQzVELE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUEsMkJBQWUsRUFBQyxDQUFDLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUUsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsbURBQW1ELEVBQUUsR0FBRyxFQUFFO1FBQzNELE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUEsMkJBQWUsRUFBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkYsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO1FBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLHVEQUF1RCxFQUFFLEdBQUcsRUFBRTtRQUMvRCxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFBLDJCQUFlLEVBQUMsQ0FBQyxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9FLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLHNEQUFzRCxFQUFFLEdBQUcsRUFBRTtRQUM5RCxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFBLDJCQUFlLEVBQUMsU0FBUyxHQUFHLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hGLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBJZFV0aWxzIGZyb20gJy4uLy4uL3NyYy9tYXJpbmUvaWRfdXRpbHMnO1xuaW1wb3J0IHtnZXRSYW5kb21OdW1iZXJ9IGZyb20gXCIuLi8uLi9zcmMvdGVzdC90ZXN0dXRpbHNcIjtcblxuZGVzY3JpYmUoJ0lkVXRpbHMgdGVzdHMnLCAoKSA9PiB7XG5cbiAgICB0ZXN0KCdpc1ZhbGlkTE9DT0RFIC0gc3VjY2VzcycsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KElkVXRpbHMuaXNWYWxpZExPQ09ERSgnRklMT0wnKSkudG9CZSh0cnVlKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2lzVmFsaWRMT0NPREUgLSBmYWlsIHdpdGggbm9uLWZpbm5pc2ggcHJlZml4JywgKCkgPT4ge1xuICAgICAgICBleHBlY3QoSWRVdGlscy5pc1ZhbGlkTE9DT0RFKCdTRUFCUycpKS50b0JlKGZhbHNlKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2lzVmFsaWRMT0NPREUgLSBmYWlsIHdpdGggbnVtYmVycycsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KElkVXRpbHMuaXNWYWxpZExPQ09ERSgnRklBQTEnKSkudG9CZShmYWxzZSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdpc1ZhbGlkSU1PIC0gc3VjY2Vzc2Z1bCBjaGVja3N1bSAtIHNoaXAgVFJBTlNNQVInLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdChJZFV0aWxzLmlzVmFsaWRJTU8oOTE2NzMzMikpLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdpc1ZhbGlkSU1PIC0gc3VjY2Vzc2Z1bCBjaGVja3N1bSAtIHNoaXAgQU5OSUtBIEInLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdChJZFV0aWxzLmlzVmFsaWRJTU8oOTIxMzcxNSkpLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdpc1ZhbGlkSU1PIC0gc3VjY2Vzc2Z1bCBjaGVja3N1bSAtIHNoaXAgWCBQUkVTUyBFTEJFJywgKCkgPT4ge1xuICAgICAgICBleHBlY3QoSWRVdGlscy5pc1ZhbGlkSU1PKDk0ODM2NjkpKS50b0JlKHRydWUpO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnaXNWYWxpZElNTyAtIHN1Y2Nlc3NmdWwgY2hlY2tzdW0gLSBzaGlwIFNJTFZFUkZPUlMnLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdChJZFV0aWxzLmlzVmFsaWRJTU8oODMyMjc2NSkpLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdpc1ZhbGlkSU1PIC0gaW52YWxpZCBjaGVja3N1bScsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KElkVXRpbHMuaXNWYWxpZElNTyg4MzIyNzY2KSkudG9CZShmYWxzZSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdpc1ZhbGlkSU1PIC0gZmFpbCB3aXRoIG51bWJlciBzbWFsbGVyIHRoYW4gMTAwMDAwMCcsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KElkVXRpbHMuaXNWYWxpZElNTyhnZXRSYW5kb21OdW1iZXIoMCwgMTAwMDAwMCAtIDEpKSkudG9CZShmYWxzZSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdpc1ZhbGlkSU1PIC0gZmFpbCB3aXRoIG51bWJlciBsYXJnZXIgdGhhbiA5OTk5OTk5JywgKCkgPT4ge1xuICAgICAgICBleHBlY3QoSWRVdGlscy5pc1ZhbGlkSU1PKGdldFJhbmRvbU51bWJlcig5OTk5OTk5ICsgMSwgOTk5OTk5OTkpKSkudG9CZShmYWxzZSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdpc1ZhbGlkTU1TSSAtIHN1Y2Nlc3MnLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdChJZFV0aWxzLmlzVmFsaWRNTVNJKDIzMDkyNzAwMCkpLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdpc1ZhbGlkTU1TSSAtIGZhaWwgd2l0aCBudW1iZXIgc21hbGxlciB0aGFuIDEwMDAwMDAwMCcsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KElkVXRpbHMuaXNWYWxpZE1NU0koZ2V0UmFuZG9tTnVtYmVyKDAsIDEwMDAwMDAwMCAtIDEpKSkudG9CZShmYWxzZSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdpc1ZhbGlkTU1TSSAtIGZhaWwgd2l0aCBudW1iZXIgbGFyZ2VyIHRoYW4gOTk5OTk5OTk5JywgKCkgPT4ge1xuICAgICAgICBleHBlY3QoSWRVdGlscy5pc1ZhbGlkTU1TSShnZXRSYW5kb21OdW1iZXIoOTk5OTk5OTk5ICsgMSwgOTk5OTk5OTk5OSkpKS50b0JlKGZhbHNlKTtcbiAgICB9KTtcbn0pO1xuIl19
|
@@ -0,0 +1,125 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const testutils_1 = require("../../src/test/testutils");
|
4
|
+
const retry_1 = require("../../src/utils/retry");
|
5
|
+
describe('Promise utils tests', () => {
|
6
|
+
test('retry - no retries', async () => {
|
7
|
+
const fn = jest.fn().mockResolvedValue(1);
|
8
|
+
const ret = await (0, retry_1.retry)(fn, 0, retry_1.RetryLogError.NO_LOGGING);
|
9
|
+
expect(ret).toBe(1);
|
10
|
+
expect(fn.mock.calls.length).toBe(1);
|
11
|
+
});
|
12
|
+
test('retry - error with n+1 retries', async () => {
|
13
|
+
const fn = jest.fn().mockRejectedValue('error');
|
14
|
+
const retries = (0, testutils_1.getRandomInteger)(1, 10);
|
15
|
+
try {
|
16
|
+
await (0, retry_1.retry)(fn, retries, retry_1.RetryLogError.NO_LOGGING);
|
17
|
+
}
|
18
|
+
catch {
|
19
|
+
// ignore
|
20
|
+
}
|
21
|
+
finally {
|
22
|
+
expect(fn.mock.calls.length).toBe(retries + 1);
|
23
|
+
}
|
24
|
+
});
|
25
|
+
test('retry - no error with n+1 retries', async () => {
|
26
|
+
const fn = jest.fn().mockResolvedValue(1);
|
27
|
+
const retries = (0, testutils_1.getRandomInteger)(1, 10);
|
28
|
+
const ret = await (0, retry_1.retry)(fn, retries, retry_1.RetryLogError.NO_LOGGING);
|
29
|
+
expect(ret).toBe(1);
|
30
|
+
expect(fn.mock.calls.length).toBe(1);
|
31
|
+
});
|
32
|
+
test('retry - errors with no error logging', async () => {
|
33
|
+
const fn = jest.fn().mockRejectedValue('error');
|
34
|
+
const consoleErrorSpy = jest.spyOn(global.console, 'error').mockImplementation();
|
35
|
+
try {
|
36
|
+
await (0, retry_1.retry)(fn, (0, testutils_1.getRandomInteger)(0, 10), retry_1.RetryLogError.NO_LOGGING);
|
37
|
+
}
|
38
|
+
catch {
|
39
|
+
// ignore
|
40
|
+
}
|
41
|
+
finally {
|
42
|
+
expect(consoleErrorSpy).toHaveBeenCalledTimes(0);
|
43
|
+
consoleErrorSpy.mockRestore();
|
44
|
+
}
|
45
|
+
});
|
46
|
+
test('retry - no retries with error logging', async () => {
|
47
|
+
const fn = jest.fn().mockRejectedValue('error');
|
48
|
+
const consoleErrorSpy = jest.spyOn(global.console, 'error').mockImplementation();
|
49
|
+
try {
|
50
|
+
await (0, retry_1.retry)(fn, 0, retry_1.RetryLogError.LOG_ALL_AS_ERRORS);
|
51
|
+
}
|
52
|
+
catch {
|
53
|
+
// ignore
|
54
|
+
}
|
55
|
+
finally {
|
56
|
+
expect(consoleErrorSpy).toHaveBeenCalledTimes(1);
|
57
|
+
consoleErrorSpy.mockRestore();
|
58
|
+
}
|
59
|
+
});
|
60
|
+
test('retry - retries with error logging', async () => {
|
61
|
+
const fn = jest.fn().mockRejectedValue('error');
|
62
|
+
const retries = (0, testutils_1.getRandomInteger)(1, 10);
|
63
|
+
const consoleErrorSpy = jest.spyOn(global.console, 'error').mockImplementation();
|
64
|
+
try {
|
65
|
+
await (0, retry_1.retry)(fn, retries, retry_1.RetryLogError.LOG_ALL_AS_ERRORS);
|
66
|
+
}
|
67
|
+
catch {
|
68
|
+
// ignore
|
69
|
+
}
|
70
|
+
finally {
|
71
|
+
expect(consoleErrorSpy).toHaveBeenCalledTimes(retries + 1);
|
72
|
+
consoleErrorSpy.mockRestore();
|
73
|
+
}
|
74
|
+
});
|
75
|
+
test('retry - exceeded retry count throws error', async () => {
|
76
|
+
const fn = jest.fn().mockRejectedValue('error');
|
77
|
+
await expect(() => (0, retry_1.retry)(fn, 3, retry_1.RetryLogError.LOG_ALL_AS_ERRORS)).rejects.toThrow();
|
78
|
+
});
|
79
|
+
test('retry - defaults', async () => {
|
80
|
+
const fn = jest.fn().mockRejectedValue('error');
|
81
|
+
const consoleErrorSpy = jest.spyOn(global.console, 'error').mockImplementation();
|
82
|
+
try {
|
83
|
+
await (0, retry_1.retry)(fn);
|
84
|
+
}
|
85
|
+
catch {
|
86
|
+
// ignore
|
87
|
+
}
|
88
|
+
finally {
|
89
|
+
expect(fn.mock.calls.length).toBe(3 + 1);
|
90
|
+
expect(consoleErrorSpy).toHaveBeenCalledTimes(1); // last retry
|
91
|
+
}
|
92
|
+
});
|
93
|
+
test('retry - NaN throws error', async () => {
|
94
|
+
const fn = jest.fn();
|
95
|
+
await expect(() => (0, retry_1.retry)(fn, NaN, retry_1.RetryLogError.NO_LOGGING)).rejects.toThrow();
|
96
|
+
});
|
97
|
+
test('retry - Infinity throws error', async () => {
|
98
|
+
const fn = jest.fn();
|
99
|
+
await expect(() => (0, retry_1.retry)(fn, Infinity, retry_1.RetryLogError.NO_LOGGING)).rejects.toThrow();
|
100
|
+
});
|
101
|
+
test('retry - exceeded maximum retry count throws error', async () => {
|
102
|
+
const fn = jest.fn();
|
103
|
+
await expect(() => (0, retry_1.retry)(fn, (0, testutils_1.getRandomInteger)(101, 1000000), retry_1.RetryLogError.NO_LOGGING)).rejects.toThrow();
|
104
|
+
});
|
105
|
+
test('retry - use without mocks without retry', async () => {
|
106
|
+
const val = 1;
|
107
|
+
const fn = () => Promise.resolve(val);
|
108
|
+
const ret = await (0, retry_1.retry)(fn);
|
109
|
+
expect(ret).toBe(val);
|
110
|
+
});
|
111
|
+
test('retry - use without mocks with retry', async () => {
|
112
|
+
let i = 0;
|
113
|
+
const val = 1;
|
114
|
+
const fn = () => {
|
115
|
+
if (i < 3) {
|
116
|
+
i++;
|
117
|
+
throw new Error('not yet');
|
118
|
+
}
|
119
|
+
return Promise.resolve(val);
|
120
|
+
};
|
121
|
+
const ret = await (0, retry_1.retry)(fn);
|
122
|
+
expect(ret).toBe(val);
|
123
|
+
});
|
124
|
+
});
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9wcm9taXNlL3Byb21pc2UudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHdEQUEwRDtBQUMxRCxpREFBMkQ7QUFFM0QsUUFBUSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtJQUVqQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDbEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTFDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBQSxhQUFLLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxxQkFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXpELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUM5QyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsTUFBTSxPQUFPLEdBQUcsSUFBQSw0QkFBZ0IsRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFeEMsSUFBSTtZQUNBLE1BQU0sSUFBQSxhQUFLLEVBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxxQkFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3REO1FBQUMsTUFBTTtZQUNKLFNBQVM7U0FDWjtnQkFBUztZQUNOLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FB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QSxhQUFLLEVBQUMsRUFBRSxDQUFDLENBQUM7UUFFNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxzQ0FBc0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDZCxNQUFNLEVBQUUsR0FBRyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ1AsQ0FBQyxFQUFFLENBQUM7Z0JBQ0osTUFBTSxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUM5QjtZQUNELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUM7UUFFRixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUEsYUFBSyxFQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTVCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Z2V0UmFuZG9tSW50ZWdlcn0gZnJvbSBcIi4uLy4uL3NyYy90ZXN0L3Rlc3R1dGlsc1wiO1xuaW1wb3J0IHtyZXRyeSwgUmV0cnlMb2dFcnJvcn0gZnJvbSBcIi4uLy4uL3NyYy91dGlscy9yZXRyeVwiO1xuXG5kZXNjcmliZSgnUHJvbWlzZSB1dGlscyB0ZXN0cycsICgpID0+IHtcblxuICAgIHRlc3QoJ3JldHJ5IC0gbm8gcmV0cmllcycsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgZm4gPSBqZXN0LmZuKCkubW9ja1Jlc29sdmVkVmFsdWUoMSk7XG5cbiAgICAgICAgY29uc3QgcmV0ID0gYXdhaXQgcmV0cnkoZm4sIDAsIFJldHJ5TG9nRXJyb3IuTk9fTE9HR0lORyk7XG5cbiAgICAgICAgZXhwZWN0KHJldCkudG9CZSgxKTtcbiAgICAgICAgZXhwZWN0KGZuLm1vY2suY2FsbHMubGVuZ3RoKS50b0JlKDEpO1xuICAgIH0pO1xuXG4gICAgdGVzdCgncmV0cnkgLSBlcnJvciB3aXRoIG4rMSByZXRyaWVzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBmbiA9IGplc3QuZm4oKS5tb2NrUmVqZWN0ZWRWYWx1ZSgnZXJyb3InKTtcbiAgICAgICAgY29uc3QgcmV0cmllcyA9IGdldFJhbmRvbUludGVnZXIoMSwgMTApO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCByZXRyeShmbiwgcmV0cmllcywgUmV0cnlMb2dFcnJvci5OT19MT0dHSU5HKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAvLyBpZ25vcmVcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGV4cGVjdChmbi5tb2NrLmNhbGxzLmxlbmd0aCkudG9CZShyZXRyaWVzICsgMSk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHRlc3QoJ3JldHJ5IC0gbm8gZXJyb3Igd2l0aCBuKzEgcmV0cmllcycsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgZm4gPSBqZXN0LmZuKCkubW9ja1Jlc29sdmVkVmFsdWUoMSk7XG4gICAgICAgIGNvbnN0IHJldHJpZXMgPSBnZXRSYW5kb21JbnRlZ2VyKDEsIDEwKTtcblxuICAgICAgICBjb25zdCByZXQgPSBhd2FpdCByZXRyeShmbiwgcmV0cmllcywgUmV0cnlMb2dFcnJvci5OT19MT0dHSU5HKTtcblxuICAgICAgICBleHBlY3QocmV0KS50b0JlKDEpO1xuICAgICAgICBleHBlY3QoZm4ubW9jay5jYWxscy5sZW5ndGgpLnRvQmUoMSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdyZXRyeSAtIGVycm9ycyB3aXRoIG5vIGVycm9yIGxvZ2dpbmcnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZuID0gamVzdC5mbigpLm1vY2tSZWplY3RlZFZhbHVlKCdlcnJvcicpO1xuICAgICAgICBjb25zdCBjb25zb2xlRXJyb3JTcHkgPSBqZXN0LnNweU9uKGdsb2JhbC5jb25zb2xlLCAnZXJyb3InKS5tb2NrSW1wbGVtZW50YXRpb24oKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgcmV0cnkoZm4sIGdldFJhbmRvbUludGVnZXIoMCwgMTApLCBSZXRyeUxvZ0Vycm9yLk5PX0xPR0dJTkcpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vIGlnbm9yZVxuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgZXhwZWN0KGNvbnNvbGVFcnJvclNweSkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDApO1xuICAgICAgICAgICAgY29uc29sZUVycm9yU3B5Lm1vY2tSZXN0b3JlKCk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHRlc3QoJ3JldHJ5IC0gbm8gcmV0cmllcyB3aXRoIGVycm9yIGxvZ2dpbmcnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZuID0gamVzdC5mbigpLm1vY2tSZWplY3RlZFZhbHVlKCdlcnJvcicpO1xuICAgICAgICBjb25zdCBjb25zb2xlRXJyb3JTcHkgPSBqZXN0LnNweU9uKGdsb2JhbC5jb25zb2xlLCAnZXJyb3InKS5tb2NrSW1wbGVtZW50YXRpb24oKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgcmV0cnkoZm4sIDAsIFJldHJ5TG9nRXJyb3IuTE9HX0FMTF9BU19FUlJPUlMpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vIGlnbm9yZVxuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgZXhwZWN0KGNvbnNvbGVFcnJvclNweSkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICAgICAgICAgICAgY29uc29sZUVycm9yU3B5Lm1vY2tSZXN0b3JlKCk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHRlc3QoJ3JldHJ5IC0gcmV0cmllcyB3aXRoIGVycm9yIGxvZ2dpbmcnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZuID0gamVzdC5mbigpLm1vY2tSZWplY3RlZFZhbHVlKCdlcnJvcicpO1xuICAgICAgICBjb25zdCByZXRyaWVzID0gZ2V0UmFuZG9tSW50ZWdlcigxLCAxMCk7XG4gICAgICAgIGNvbnN0IGNvbnNvbGVFcnJvclNweSA9IGplc3Quc3B5T24oZ2xvYmFsLmNvbnNvbGUsICdlcnJvcicpLm1vY2tJbXBsZW1lbnRhdGlvbigpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCByZXRyeShmbiwgcmV0cmllcywgUmV0cnlMb2dFcnJvci5MT0dfQUxMX0FTX0VSUk9SUyk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gaWdub3JlXG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBleHBlY3QoY29uc29sZUVycm9yU3B5KS50b0hhdmVCZWVuQ2FsbGVkVGltZXMocmV0cmllcyArIDEpO1xuICAgICAgICAgICAgY29uc29sZUVycm9yU3B5Lm1vY2tSZXN0b3JlKCk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHRlc3QoJ3JldHJ5IC0gZXhjZWVkZWQgcmV0cnkgY291bnQgdGhyb3dzIGVycm9yJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBmbiA9IGplc3QuZm4oKS5tb2NrUmVqZWN0ZWRWYWx1ZSgnZXJyb3InKTtcblxuICAgICAgICBhd2FpdCBleHBlY3QoKCkgPT4gcmV0cnkoZm4sIDMsIFJldHJ5TG9nRXJyb3IuTE9HX0FMTF9BU19FUlJPUlMpKS5yZWplY3RzLnRvVGhyb3coKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ3JldHJ5IC0gZGVmYXVsdHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZuID0gamVzdC5mbigpLm1vY2tSZWplY3RlZFZhbHVlKCdlcnJvcicpO1xuICAgICAgICBjb25zdCBjb25zb2xlRXJyb3JTcHkgPSBqZXN0LnNweU9uKGdsb2JhbC5jb25zb2xlLCAnZXJyb3InKS5tb2NrSW1wbGVtZW50YXRpb24oKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgcmV0cnkoZm4pO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vIGlnbm9yZVxuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgZXhwZWN0KGZuLm1vY2suY2FsbHMubGVuZ3RoKS50b0JlKDMgKyAxKTtcbiAgICAgICAgICAgIGV4cGVjdChjb25zb2xlRXJyb3JTcHkpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTsgLy8gbGFzdCByZXRyeVxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdyZXRyeSAtIE5hTiB0aHJvd3MgZXJyb3InLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZuID0gamVzdC5mbigpO1xuXG4gICAgICAgIGF3YWl0IGV4cGVjdCgoKSA9PiByZXRyeShmbiwgTmFOLCBSZXRyeUxvZ0Vycm9yLk5PX0xPR0dJTkcpKS5yZWplY3RzLnRvVGhyb3coKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ3JldHJ5IC0gSW5maW5pdHkgdGhyb3dzIGVycm9yJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBmbiA9IGplc3QuZm4oKTtcblxuICAgICAgICBhd2FpdCBleHBlY3QoKCkgPT4gcmV0cnkoZm4sIEluZmluaXR5LCBSZXRyeUxvZ0Vycm9yLk5PX0xPR0dJTkcpKS5yZWplY3RzLnRvVGhyb3coKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ3JldHJ5IC0gZXhjZWVkZWQgbWF4aW11bSByZXRyeSBjb3VudCB0aHJvd3MgZXJyb3InLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZuID0gamVzdC5mbigpO1xuXG4gICAgICAgIGF3YWl0IGV4cGVjdCgoKSA9PiByZXRyeShmbiwgZ2V0UmFuZG9tSW50ZWdlcigxMDEsIDEwMDAwMDApLCBSZXRyeUxvZ0Vycm9yLk5PX0xPR0dJTkcpKS5yZWplY3RzLnRvVGhyb3coKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ3JldHJ5IC0gdXNlIHdpdGhvdXQgbW9ja3Mgd2l0aG91dCByZXRyeScsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgdmFsID0gMTtcbiAgICAgICAgY29uc3QgZm4gPSAoKSA9PiBQcm9taXNlLnJlc29sdmUodmFsKTtcblxuICAgICAgICBjb25zdCByZXQgPSBhd2FpdCByZXRyeShmbik7XG5cbiAgICAgICAgZXhwZWN0KHJldCkudG9CZSh2YWwpO1xuICAgIH0pO1xuXG4gICAgdGVzdCgncmV0cnkgLSB1c2Ugd2l0aG91dCBtb2NrcyB3aXRoIHJldHJ5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGNvbnN0IHZhbCA9IDE7XG4gICAgICAgIGNvbnN0IGZuID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGkgPCAzKSB7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbm90IHlldCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh2YWwpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJldCA9IGF3YWl0IHJldHJ5KGZuKTtcblxuICAgICAgICBleHBlY3QocmV0KS50b0JlKHZhbCk7XG4gICAgfSk7XG59KTtcbiJdfQ==
|
package/test/secret.d.ts
ADDED
@@ -0,0 +1,3 @@
|
|
1
|
+
import { EmptySecretFunction, SecretFunction } from "../aws/runtime/secrets/dbsecret";
|
2
|
+
export declare function createSecretFunction<Secret, Response>(secret: Secret): SecretFunction<Secret, Response>;
|
3
|
+
export declare function createEmptySecretFunction<Response>(): EmptySecretFunction<Response>;
|
package/test/secret.js
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.createEmptySecretFunction = exports.createSecretFunction = void 0;
|
4
|
+
const EMPTY_DB_SECRET = {
|
5
|
+
username: '',
|
6
|
+
password: '',
|
7
|
+
host: '',
|
8
|
+
// eslint-disable-next-line camelcase
|
9
|
+
ro_host: '',
|
10
|
+
};
|
11
|
+
function createSecretFunction(secret) {
|
12
|
+
// eslint-disable-next-line require-await
|
13
|
+
return async (secretId, fn) => {
|
14
|
+
return fn(secret);
|
15
|
+
};
|
16
|
+
}
|
17
|
+
exports.createSecretFunction = createSecretFunction;
|
18
|
+
function createEmptySecretFunction() {
|
19
|
+
// eslint-disable-next-line require-await
|
20
|
+
return async (secretId, fn) => {
|
21
|
+
return fn(EMPTY_DB_SECRET);
|
22
|
+
};
|
23
|
+
}
|
24
|
+
exports.createEmptySecretFunction = createEmptySecretFunction;
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3Qvc2VjcmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQU0sZUFBZSxHQUFhO0lBQzlCLFFBQVEsRUFBRSxFQUFFO0lBQ1osUUFBUSxFQUFFLEVBQUU7SUFDWixJQUFJLEVBQUUsRUFBRTtJQUNSLHFDQUFxQztJQUNyQyxPQUFPLEVBQUUsRUFBRTtDQUNkLENBQUM7QUFFRixTQUFnQixvQkFBb0IsQ0FBbUIsTUFBYztJQUNqRSx5Q0FBeUM7SUFDekMsT0FBTyxLQUFLLEVBQUUsUUFBZ0IsRUFBRSxFQUE2QyxFQUFFLEVBQUU7UUFDN0UsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEIsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUxELG9EQUtDO0FBRUQsU0FBZ0IseUJBQXlCO0lBQ3JDLHlDQUF5QztJQUN6QyxPQUFPLEtBQUssRUFBRSxRQUFnQixFQUFFLEVBQStDLEVBQUUsRUFBRTtRQUMvRSxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMvQixDQUFDLENBQUM7QUFDTixDQUFDO0FBTEQsOERBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RiU2VjcmV0LCBFbXB0eVNlY3JldEZ1bmN0aW9uLCBTZWNyZXRGdW5jdGlvbiwgU2VjcmV0VG9Qcm9taXNlRnVuY3Rpb259IGZyb20gXCIuLi9hd3MvcnVudGltZS9zZWNyZXRzL2Ric2VjcmV0XCI7XG5cbmNvbnN0IEVNUFRZX0RCX1NFQ1JFVDogRGJTZWNyZXQgPSB7XG4gICAgdXNlcm5hbWU6ICcnLFxuICAgIHBhc3N3b3JkOiAnJyxcbiAgICBob3N0OiAnJyxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlXG4gICAgcm9faG9zdDogJycsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VjcmV0RnVuY3Rpb248U2VjcmV0LCBSZXNwb25zZT4oc2VjcmV0OiBTZWNyZXQpOiBTZWNyZXRGdW5jdGlvbjxTZWNyZXQsIFJlc3BvbnNlPiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXdhaXRcbiAgICByZXR1cm4gYXN5bmMgKHNlY3JldElkOiBzdHJpbmcsIGZuOiBTZWNyZXRUb1Byb21pc2VGdW5jdGlvbjxTZWNyZXQsIFJlc3BvbnNlPikgPT4ge1xuICAgICAgICByZXR1cm4gZm4oc2VjcmV0KTtcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRW1wdHlTZWNyZXRGdW5jdGlvbjxSZXNwb25zZT4oKTogRW1wdHlTZWNyZXRGdW5jdGlvbjxSZXNwb25zZT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZXF1aXJlLWF3YWl0XG4gICAgcmV0dXJuIGFzeW5jIChzZWNyZXRJZDogc3RyaW5nLCBmbjogU2VjcmV0VG9Qcm9taXNlRnVuY3Rpb248RGJTZWNyZXQsIFJlc3BvbnNlPikgPT4ge1xuICAgICAgICByZXR1cm4gZm4oRU1QVFlfREJfU0VDUkVUKTtcbiAgICB9O1xufVxuIl19
|
@@ -0,0 +1,71 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
const secrets_manager_1 = require("../../src/test/secrets-manager");
|
27
|
+
const sinon = __importStar(require("sinon"));
|
28
|
+
const SECRET_ID = "test_secret";
|
29
|
+
const SECRET_WITH_PREFIX = {
|
30
|
+
"prefix.value": "value",
|
31
|
+
"prefix.name": "name",
|
32
|
+
"wrong.value": "value",
|
33
|
+
};
|
34
|
+
const SECRET_EMPTY = {};
|
35
|
+
(0, secrets_manager_1.stubSecretsManager)();
|
36
|
+
const secret_1 = require("../../src/aws/runtime/secrets/secret");
|
37
|
+
describe('secret - test', () => {
|
38
|
+
afterEach(() => {
|
39
|
+
sinon.restore();
|
40
|
+
});
|
41
|
+
test('getSecret - no secret', async () => {
|
42
|
+
(0, secrets_manager_1.mockSecret)(null);
|
43
|
+
await expect(async () => {
|
44
|
+
await (0, secret_1.withSecret)(SECRET_ID, () => {
|
45
|
+
// do nothing
|
46
|
+
});
|
47
|
+
}).rejects.toThrowError("No secret found!");
|
48
|
+
});
|
49
|
+
test('getSecret - empty secret', async () => {
|
50
|
+
(0, secrets_manager_1.mockSecret)(SECRET_EMPTY);
|
51
|
+
await (0, secret_1.withSecret)(SECRET_ID, (secret) => {
|
52
|
+
expect(secret).toEqual(SECRET_EMPTY);
|
53
|
+
});
|
54
|
+
});
|
55
|
+
test('getSecret - no prefix', async () => {
|
56
|
+
(0, secrets_manager_1.mockSecret)(SECRET_WITH_PREFIX);
|
57
|
+
await (0, secret_1.withSecret)(SECRET_ID, (secret) => {
|
58
|
+
expect(secret).toEqual(SECRET_WITH_PREFIX);
|
59
|
+
});
|
60
|
+
});
|
61
|
+
test('getSecret - with prefix', async () => {
|
62
|
+
(0, secrets_manager_1.mockSecret)(SECRET_WITH_PREFIX);
|
63
|
+
await (0, secret_1.withSecretAndPrefix)(SECRET_ID, 'prefix', (secret) => {
|
64
|
+
expect(secret).toEqual({
|
65
|
+
value: "value",
|
66
|
+
name: "name",
|
67
|
+
});
|
68
|
+
});
|
69
|
+
});
|
70
|
+
});
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGJzZWNyZXQudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3Qvc2VjcmV0cy9kYnNlY3JldC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvRUFBOEU7QUFFOUUsNkNBQStCO0FBRS9CLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQztBQUNoQyxNQUFNLGtCQUFrQixHQUFHO0lBQ3ZCLGNBQWMsRUFBRyxPQUFPO0lBQ3hCLGFBQWEsRUFBRyxNQUFNO0lBQ3RCLGFBQWEsRUFBRyxPQUFPO0NBQzFCLENBQUM7QUFDRixNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7QUFFeEIsSUFBQSxvQ0FBa0IsR0FBRSxDQUFDO0FBRXJCLGlFQUFvRztBQUVwRyxRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtJQUMzQixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ1gsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLHVCQUF1QixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3JDLElBQUEsNEJBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUVqQixNQUFNLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNwQixNQUFNLElBQUEsbUJBQVUsRUFBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO2dCQUM3QixhQUFhO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2hELENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLDBCQUEwQixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3hDLElBQUEsNEJBQVUsRUFBQyxZQUFZLENBQUMsQ0FBQztRQUV6QixNQUFNLElBQUEsbUJBQVUsRUFBQyxTQUFTLEVBQUcsQ0FBQyxNQUFxQixFQUFFLEVBQUU7WUFDbkQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLHVCQUF1QixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3JDLElBQUEsNEJBQVUsRUFBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRS9CLE1BQU0sSUFBQSxtQkFBVSxFQUFDLFNBQVMsRUFBRyxDQUFDLE1BQXFCLEVBQUUsRUFBRTtZQUNuRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN2QyxJQUFBLDRCQUFVLEVBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUUvQixNQUFNLElBQUEsNEJBQW1CLEVBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRyxDQUFDLE1BQXFCLEVBQUUsRUFBRTtZQUN0RSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUNuQixLQUFLLEVBQUUsT0FBTztnQkFDZCxJQUFJLEVBQUUsTUFBTTthQUNmLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7bW9ja1NlY3JldCwgc3R1YlNlY3JldHNNYW5hZ2VyfSBmcm9tIFwiLi4vLi4vc3JjL3Rlc3Qvc2VjcmV0cy1tYW5hZ2VyXCI7XG5cbmltcG9ydCAqIGFzIHNpbm9uIGZyb20gJ3Npbm9uJztcblxuY29uc3QgU0VDUkVUX0lEID0gXCJ0ZXN0X3NlY3JldFwiO1xuY29uc3QgU0VDUkVUX1dJVEhfUFJFRklYID0ge1xuICAgIFwicHJlZml4LnZhbHVlXCIgOiBcInZhbHVlXCIsXG4gICAgXCJwcmVmaXgubmFtZVwiIDogXCJuYW1lXCIsXG4gICAgXCJ3cm9uZy52YWx1ZVwiIDogXCJ2YWx1ZVwiLFxufTtcbmNvbnN0IFNFQ1JFVF9FTVBUWSA9IHt9O1xuXG5zdHViU2VjcmV0c01hbmFnZXIoKTtcblxuaW1wb3J0IHtHZW5lcmljU2VjcmV0LCB3aXRoU2VjcmV0LCB3aXRoU2VjcmV0QW5kUHJlZml4fSBmcm9tIFwiLi4vLi4vc3JjL2F3cy9ydW50aW1lL3NlY3JldHMvc2VjcmV0XCI7XG5cbmRlc2NyaWJlKCdzZWNyZXQgLSB0ZXN0JywgKCkgPT4ge1xuICAgIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgICAgIHNpbm9uLnJlc3RvcmUoKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2dldFNlY3JldCAtIG5vIHNlY3JldCcsIGFzeW5jICgpID0+IHtcbiAgICAgICAgbW9ja1NlY3JldChudWxsKTtcblxuICAgICAgICBhd2FpdCBleHBlY3QoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgd2l0aFNlY3JldChTRUNSRVRfSUQsICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBkbyBub3RoaW5nXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkucmVqZWN0cy50b1Rocm93RXJyb3IoXCJObyBzZWNyZXQgZm91bmQhXCIpO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnZ2V0U2VjcmV0IC0gZW1wdHkgc2VjcmV0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBtb2NrU2VjcmV0KFNFQ1JFVF9FTVBUWSk7XG5cbiAgICAgICAgYXdhaXQgd2l0aFNlY3JldChTRUNSRVRfSUQsICAoc2VjcmV0OiBHZW5lcmljU2VjcmV0KSA9PiB7XG4gICAgICAgICAgICBleHBlY3Qoc2VjcmV0KS50b0VxdWFsKFNFQ1JFVF9FTVBUWSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnZ2V0U2VjcmV0IC0gbm8gcHJlZml4JywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBtb2NrU2VjcmV0KFNFQ1JFVF9XSVRIX1BSRUZJWCk7XG5cbiAgICAgICAgYXdhaXQgd2l0aFNlY3JldChTRUNSRVRfSUQsICAoc2VjcmV0OiBHZW5lcmljU2VjcmV0KSA9PiB7XG4gICAgICAgICAgICBleHBlY3Qoc2VjcmV0KS50b0VxdWFsKFNFQ1JFVF9XSVRIX1BSRUZJWCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnZ2V0U2VjcmV0IC0gd2l0aCBwcmVmaXgnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIG1vY2tTZWNyZXQoU0VDUkVUX1dJVEhfUFJFRklYKTtcblxuICAgICAgICBhd2FpdCB3aXRoU2VjcmV0QW5kUHJlZml4KFNFQ1JFVF9JRCwgJ3ByZWZpeCcsICAoc2VjcmV0OiBHZW5lcmljU2VjcmV0KSA9PiB7XG4gICAgICAgICAgICBleHBlY3Qoc2VjcmV0KS50b0VxdWFsKHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJ2YWx1ZVwiLFxuICAgICAgICAgICAgICAgIG5hbWU6IFwibmFtZVwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgfSk7XG59KTtcbiJdfQ==
|
@@ -0,0 +1,124 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
const secrets_manager_1 = require("../../src/test/secrets-manager");
|
27
|
+
const sinon = __importStar(require("sinon"));
|
28
|
+
const SECRET_WITH_PREFIX = {
|
29
|
+
"prefix.value": "value",
|
30
|
+
"prefix.name": "name",
|
31
|
+
"wrong.value": "value",
|
32
|
+
"username": "DB_USER",
|
33
|
+
};
|
34
|
+
const SECRET_EMPTY = {};
|
35
|
+
const stubSM = (0, secrets_manager_1.stubSecretsManager)();
|
36
|
+
const secret_holder_1 = require("../../src/aws/runtime/secrets/secret-holder");
|
37
|
+
const dbsecret_1 = require("../../src/aws/runtime/secrets/dbsecret");
|
38
|
+
describe('SecretHolder - tests', () => {
|
39
|
+
afterEach(() => {
|
40
|
+
sinon.restore();
|
41
|
+
sinon.reset();
|
42
|
+
delete process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_USER];
|
43
|
+
});
|
44
|
+
test('get - no secret', async () => {
|
45
|
+
(0, secrets_manager_1.mockSecret)(null);
|
46
|
+
const holder = secret_holder_1.SecretHolder.create();
|
47
|
+
await expect(async () => {
|
48
|
+
await holder.get();
|
49
|
+
}).rejects.toThrowError("No secret found!");
|
50
|
+
});
|
51
|
+
test('get - empty secret', async () => {
|
52
|
+
(0, secrets_manager_1.mockSecret)(SECRET_EMPTY);
|
53
|
+
const holder = secret_holder_1.SecretHolder.create();
|
54
|
+
const secret = await holder.get();
|
55
|
+
expect(secret).toEqual(SECRET_EMPTY);
|
56
|
+
});
|
57
|
+
test('get - no prefix', async () => {
|
58
|
+
(0, secrets_manager_1.mockSecret)(SECRET_WITH_PREFIX);
|
59
|
+
const holder = secret_holder_1.SecretHolder.create();
|
60
|
+
const secret = await holder.get();
|
61
|
+
expect(secret).toEqual(SECRET_WITH_PREFIX);
|
62
|
+
});
|
63
|
+
test('get - check keys - not found', async () => {
|
64
|
+
(0, secrets_manager_1.mockSecret)(SECRET_WITH_PREFIX);
|
65
|
+
const holder = secret_holder_1.SecretHolder.create('', ['not_found']);
|
66
|
+
await expect(async () => {
|
67
|
+
await holder.get();
|
68
|
+
}).rejects.toThrow();
|
69
|
+
});
|
70
|
+
test('get - check keys - found', async () => {
|
71
|
+
(0, secrets_manager_1.mockSecret)(SECRET_WITH_PREFIX);
|
72
|
+
const holder = secret_holder_1.SecretHolder.create('', ['prefix.value', 'username']);
|
73
|
+
await holder.get();
|
74
|
+
});
|
75
|
+
test('setDatabaseCredentials - no prefix', async () => {
|
76
|
+
(0, secrets_manager_1.mockSecret)(SECRET_WITH_PREFIX);
|
77
|
+
const holder = secret_holder_1.SecretHolder.create();
|
78
|
+
expect(process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_USER]).toBeUndefined();
|
79
|
+
await holder.setDatabaseCredentials();
|
80
|
+
expect(process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_USER]).toEqual(SECRET_WITH_PREFIX.username);
|
81
|
+
});
|
82
|
+
test('setDatabaseCredentials - with prefix', async () => {
|
83
|
+
(0, secrets_manager_1.mockSecret)(SECRET_WITH_PREFIX);
|
84
|
+
const holder = secret_holder_1.SecretHolder.create('prefix');
|
85
|
+
expect(process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_USER]).toBeUndefined();
|
86
|
+
await holder.setDatabaseCredentials();
|
87
|
+
expect(process.env[dbsecret_1.DatabaseEnvironmentKeys.DB_USER]).toEqual(SECRET_WITH_PREFIX.username);
|
88
|
+
});
|
89
|
+
test('getSecret - with prefix', async () => {
|
90
|
+
(0, secrets_manager_1.mockSecret)(SECRET_WITH_PREFIX);
|
91
|
+
const holder = secret_holder_1.SecretHolder.create('prefix');
|
92
|
+
const secret = await holder.get();
|
93
|
+
expect(secret).toEqual({
|
94
|
+
value: "value",
|
95
|
+
name: "name",
|
96
|
+
});
|
97
|
+
});
|
98
|
+
test('get - ttl - do not fetch', async () => {
|
99
|
+
(0, secrets_manager_1.mockSecret)(SECRET_WITH_PREFIX);
|
100
|
+
const holder = secret_holder_1.SecretHolder.create();
|
101
|
+
const callCount = stubSM.callCount;
|
102
|
+
await holder.get();
|
103
|
+
expect(stubSM.callCount).toEqual(callCount + 1);
|
104
|
+
// gets cached secret
|
105
|
+
await holder.get();
|
106
|
+
expect(stubSM.callCount).toEqual(callCount + 1);
|
107
|
+
});
|
108
|
+
test('get - ttl - fetch', async () => {
|
109
|
+
(0, secrets_manager_1.mockSecret)(SECRET_WITH_PREFIX);
|
110
|
+
const holder = new secret_holder_1.SecretHolder('', '', [], {
|
111
|
+
ttl: 1,
|
112
|
+
});
|
113
|
+
const callCount = stubSM.callCount;
|
114
|
+
await holder.get();
|
115
|
+
expect(stubSM.callCount).toEqual(callCount + 1);
|
116
|
+
// cache expires, fetches secret again
|
117
|
+
const start = Date.now();
|
118
|
+
while (Date.now() < start + 2000)
|
119
|
+
;
|
120
|
+
await holder.get();
|
121
|
+
expect(stubSM.callCount).toEqual(callCount + 2);
|
122
|
+
});
|
123
|
+
});
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LWhvbGRlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9zZWNyZXRzL3NlY3JldC1ob2xkZXIudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0VBQThFO0FBRTlFLDZDQUErQjtBQUUvQixNQUFNLGtCQUFrQixHQUFHO0lBQ3ZCLGNBQWMsRUFBRyxPQUFPO0lBQ3hCLGFBQWEsRUFBRyxNQUFNO0lBQ3RCLGFBQWEsRUFBRyxPQUFPO0lBQ3ZCLFVBQVUsRUFBRSxTQUFTO0NBQ3hCLENBQUM7QUFDRixNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7QUFFeEIsTUFBTSxNQUFNLEdBQUcsSUFBQSxvQ0FBa0IsR0FBRSxDQUFDO0FBRXBDLCtFQUF5RTtBQUN6RSxxRUFBK0U7QUFFL0UsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUNsQyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ1gsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNkLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUMvQixJQUFBLDRCQUFVLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFFakIsTUFBTSxNQUFNLEdBQUcsNEJBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQyxNQUFNLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNwQixNQUFNLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENB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QUVILE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFFbkMsTUFBTSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDbkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRWhELHNDQUFzQztRQUN0QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFDLElBQUk7WUFBQyxDQUFDO1FBRWhDLE1BQU0sTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHttb2NrU2VjcmV0LCBzdHViU2VjcmV0c01hbmFnZXJ9IGZyb20gXCIuLi8uLi9zcmMvdGVzdC9zZWNyZXRzLW1hbmFnZXJcIjtcblxuaW1wb3J0ICogYXMgc2lub24gZnJvbSAnc2lub24nO1xuXG5jb25zdCBTRUNSRVRfV0lUSF9QUkVGSVggPSB7XG4gICAgXCJwcmVmaXgudmFsdWVcIiA6IFwidmFsdWVcIixcbiAgICBcInByZWZpeC5uYW1lXCIgOiBcIm5hbWVcIixcbiAgICBcIndyb25nLnZhbHVlXCIgOiBcInZhbHVlXCIsXG4gICAgXCJ1c2VybmFtZVwiOiBcIkRCX1VTRVJcIixcbn07XG5jb25zdCBTRUNSRVRfRU1QVFkgPSB7fTtcblxuY29uc3Qgc3R1YlNNID0gc3R1YlNlY3JldHNNYW5hZ2VyKCk7XG5cbmltcG9ydCB7U2VjcmV0SG9sZGVyfSBmcm9tIFwiLi4vLi4vc3JjL2F3cy9ydW50aW1lL3NlY3JldHMvc2VjcmV0LWhvbGRlclwiO1xuaW1wb3J0IHtEYXRhYmFzZUVudmlyb25tZW50S2V5c30gZnJvbSBcIi4uLy4uL3NyYy9hd3MvcnVudGltZS9zZWNyZXRzL2Ric2VjcmV0XCI7XG5cbmRlc2NyaWJlKCdTZWNyZXRIb2xkZXIgLSB0ZXN0cycsICgpID0+IHtcbiAgICBhZnRlckVhY2goKCkgPT4ge1xuICAgICAgICBzaW5vbi5yZXN0b3JlKCk7XG4gICAgICAgIHNpbm9uLnJlc2V0KCk7XG4gICAgICAgIGRlbGV0ZSBwcm9jZXNzLmVudltEYXRhYmFzZUVudmlyb25tZW50S2V5cy5EQl9VU0VSXTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2dldCAtIG5vIHNlY3JldCcsIGFzeW5jICgpID0+IHtcbiAgICAgICAgbW9ja1NlY3JldChudWxsKTtcblxuICAgICAgICBjb25zdCBob2xkZXIgPSBTZWNyZXRIb2xkZXIuY3JlYXRlKCk7XG4gICAgICAgIGF3YWl0IGV4cGVjdChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBhd2FpdCBob2xkZXIuZ2V0KCk7XG4gICAgICAgIH0pLnJlamVjdHMudG9UaHJvd0Vycm9yKFwiTm8gc2VjcmV0IGZvdW5kIVwiKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2dldCAtIGVtcHR5IHNlY3JldCcsIGFzeW5jICgpID0+IHtcbiAgICAgICAgbW9ja1NlY3JldChTRUNSRVRfRU1QVFkpO1xuXG4gICAgICAgIGNvbnN0IGhvbGRlciA9IFNlY3JldEhvbGRlci5jcmVhdGUoKTtcbiAgICAgICAgY29uc3Qgc2VjcmV0ID0gYXdhaXQgaG9sZGVyLmdldCgpO1xuXG4gICAgICAgIGV4cGVjdChzZWNyZXQpLnRvRXF1YWwoU0VDUkVUX0VNUFRZKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2dldCAtIG5vIHByZWZpeCcsIGFzeW5jICgpID0+IHtcbiAgICAgICAgbW9ja1NlY3JldChTRUNSRVRfV0lUSF9QUkVGSVgpO1xuXG4gICAgICAgIGNvbnN0IGhvbGRlciA9IFNlY3JldEhvbGRlci5jcmVhdGUoKTtcbiAgICAgICAgY29uc3Qgc2VjcmV0ID0gYXdhaXQgaG9sZGVyLmdldCgpO1xuXG4gICAgICAgIGV4cGVjdChzZWNyZXQpLnRvRXF1YWwoU0VDUkVUX1dJVEhfUFJFRklYKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2dldCAtIGNoZWNrIGtleXMgLSBub3QgZm91bmQnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIG1vY2tTZWNyZXQoU0VDUkVUX1dJVEhfUFJFRklYKTtcblxuICAgICAgICBjb25zdCBob2xkZXIgPSBTZWNyZXRIb2xkZXIuY3JlYXRlKCcnLCBbJ25vdF9mb3VuZCddKTtcbiAgICAgICAgYXdhaXQgZXhwZWN0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IGhvbGRlci5nZXQoKTtcbiAgICAgICAgfSkucmVqZWN0cy50b1Rocm93KCk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdnZXQgLSBjaGVjayBrZXlzIC0gZm91bmQnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIG1vY2tTZWNyZXQoU0VDUkVUX1dJVEhfUFJFRklYKTtcblxuICAgICAgICBjb25zdCBob2xkZXIgPSBTZWNyZXRIb2xkZXIuY3JlYXRlKCcnLCBbJ3ByZWZpeC52YWx1ZScsICd1c2VybmFtZSddKTtcblxuICAgICAgICBhd2FpdCBob2xkZXIuZ2V0KCk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdzZXREYXRhYmFzZUNyZWRlbnRpYWxzIC0gbm8gcHJlZml4JywgYXN5bmMoKSA9PiB7XG4gICAgICAgIG1vY2tTZWNyZXQoU0VDUkVUX1dJVEhfUFJFRklYKTtcblxuICAgICAgICBjb25zdCBob2xkZXIgPSBTZWNyZXRIb2xkZXIuY3JlYXRlKCk7XG4gICAgICAgIGV4cGVjdChwcm9jZXNzLmVudltEYXRhYmFzZUVudmlyb25tZW50S2V5cy5EQl9VU0VSXSkudG9CZVVuZGVmaW5lZCgpO1xuXG4gICAgICAgIGF3YWl0IGhvbGRlci5zZXREYXRhYmFzZUNyZWRlbnRpYWxzKCk7XG4gICAgICAgIGV4cGVjdChwcm9jZXNzLmVudltEYXRhYmFzZUVudmlyb25tZW50S2V5cy5EQl9VU0VSXSkudG9FcXVhbChTRUNSRVRfV0lUSF9QUkVGSVgudXNlcm5hbWUpO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnc2V0RGF0YWJhc2VDcmVkZW50aWFscyAtIHdpdGggcHJlZml4JywgYXN5bmMoKSA9PiB7XG4gICAgICAgIG1vY2tTZWNyZXQoU0VDUkVUX1dJVEhfUFJFRklYKTtcblxuICAgICAgICBjb25zdCBob2xkZXIgPSBTZWNyZXRIb2xkZXIuY3JlYXRlKCdwcmVmaXgnKTtcbiAgICAgICAgZXhwZWN0KHByb2Nlc3MuZW52W0RhdGFiYXNlRW52aXJvbm1lbnRLZXlzLkRCX1VTRVJdKS50b0JlVW5kZWZpbmVkKCk7XG5cbiAgICAgICAgYXdhaXQgaG9sZGVyLnNldERhdGFiYXNlQ3JlZGVudGlhbHMoKTtcbiAgICAgICAgZXhwZWN0KHByb2Nlc3MuZW52W0RhdGFiYXNlRW52aXJvbm1lbnRLZXlzLkRCX1VTRVJdKS50b0VxdWFsKFNFQ1JFVF9XSVRIX1BSRUZJWC51c2VybmFtZSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdnZXRTZWNyZXQgLSB3aXRoIHByZWZpeCcsIGFzeW5jICgpID0+IHtcbiAgICAgICAgbW9ja1NlY3JldChTRUNSRVRfV0lUSF9QUkVGSVgpO1xuXG4gICAgICAgIGNvbnN0IGhvbGRlciA9IFNlY3JldEhvbGRlci5jcmVhdGUoJ3ByZWZpeCcpO1xuICAgICAgICBjb25zdCBzZWNyZXQgPSBhd2FpdCBob2xkZXIuZ2V0KCk7XG5cbiAgICAgICAgZXhwZWN0KHNlY3JldCkudG9FcXVhbCh7XG4gICAgICAgICAgICB2YWx1ZTogXCJ2YWx1ZVwiLFxuICAgICAgICAgICAgbmFtZTogXCJuYW1lXCIsXG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnZ2V0IC0gdHRsIC0gZG8gbm90IGZldGNoJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBtb2NrU2VjcmV0KFNFQ1JFVF9XSVRIX1BSRUZJWCk7XG5cbiAgICAgICAgY29uc3QgaG9sZGVyID0gU2VjcmV0SG9sZGVyLmNyZWF0ZSgpO1xuXG4gICAgICAgIGNvbnN0IGNhbGxDb3VudCA9IHN0dWJTTS5jYWxsQ291bnQ7XG5cbiAgICAgICAgYXdhaXQgaG9sZGVyLmdldCgpO1xuICAgICAgICBleHBlY3Qoc3R1YlNNLmNhbGxDb3VudCkudG9FcXVhbChjYWxsQ291bnQgKyAxKTtcblxuICAgICAgICAvLyBnZXRzIGNhY2hlZCBzZWNyZXRcbiAgICAgICAgYXdhaXQgaG9sZGVyLmdldCgpO1xuICAgICAgICBleHBlY3Qoc3R1YlNNLmNhbGxDb3VudCkudG9FcXVhbChjYWxsQ291bnQgKyAxKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2dldCAtIHR0bCAtIGZldGNoJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBtb2NrU2VjcmV0KFNFQ1JFVF9XSVRIX1BSRUZJWCk7XG5cbiAgICAgICAgY29uc3QgaG9sZGVyID0gbmV3IFNlY3JldEhvbGRlcignJywgJycsIFtdLCB7XG4gICAgICAgICAgICB0dGw6IDEsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGNhbGxDb3VudCA9IHN0dWJTTS5jYWxsQ291bnQ7XG5cbiAgICAgICAgYXdhaXQgaG9sZGVyLmdldCgpO1xuICAgICAgICBleHBlY3Qoc3R1YlNNLmNhbGxDb3VudCkudG9FcXVhbChjYWxsQ291bnQgKyAxKTtcblxuICAgICAgICAvLyBjYWNoZSBleHBpcmVzLCBmZXRjaGVzIHNlY3JldCBhZ2FpblxuICAgICAgICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgICAgIHdoaWxlIChEYXRlLm5vdygpIDwgc3RhcnQrMjAwMCk7XG5cbiAgICAgICAgYXdhaXQgaG9sZGVyLmdldCgpO1xuICAgICAgICBleHBlY3Qoc3R1YlNNLmNhbGxDb3VudCkudG9FcXVhbChjYWxsQ291bnQgKyAyKTtcbiAgICB9KTtcbn0pO1xuIl19
|
@@ -0,0 +1,66 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
const secrets_manager_1 = require("../../src/test/secrets-manager");
|
27
|
+
const sinon = __importStar(require("sinon"));
|
28
|
+
const SECRET_ID = "test_secret";
|
29
|
+
const SECRET_WITH_PREFIX = {
|
30
|
+
"prefix.value": "value",
|
31
|
+
"prefix.name": "name",
|
32
|
+
"wrong.value": "value",
|
33
|
+
};
|
34
|
+
const SECRET_EMPTY = {};
|
35
|
+
(0, secrets_manager_1.stubSecretsManager)();
|
36
|
+
const secret_1 = require("../../src/aws/runtime/secrets/secret");
|
37
|
+
describe('secret - test', () => {
|
38
|
+
afterEach(() => {
|
39
|
+
sinon.restore();
|
40
|
+
});
|
41
|
+
test('getSecret - no secret', async () => {
|
42
|
+
(0, secrets_manager_1.mockSecret)(null);
|
43
|
+
await expect(async () => {
|
44
|
+
await (0, secret_1.getSecret)(SECRET_ID, '');
|
45
|
+
}).rejects.toThrowError("No secret found!");
|
46
|
+
});
|
47
|
+
test('getSecret - empty secret', async () => {
|
48
|
+
(0, secrets_manager_1.mockSecret)(SECRET_EMPTY);
|
49
|
+
const secret = await (0, secret_1.getSecret)(SECRET_ID, '');
|
50
|
+
expect(secret).toEqual(SECRET_EMPTY);
|
51
|
+
});
|
52
|
+
test('getSecret - no prefix', async () => {
|
53
|
+
(0, secrets_manager_1.mockSecret)(SECRET_WITH_PREFIX);
|
54
|
+
const secret = await (0, secret_1.getSecret)(SECRET_ID, '');
|
55
|
+
expect(secret).toEqual(SECRET_WITH_PREFIX);
|
56
|
+
});
|
57
|
+
test('getSecret - with prefix', async () => {
|
58
|
+
(0, secrets_manager_1.mockSecret)(SECRET_WITH_PREFIX);
|
59
|
+
const secret = await (0, secret_1.getSecret)(SECRET_ID, 'prefix');
|
60
|
+
expect(secret).toEqual({
|
61
|
+
value: "value",
|
62
|
+
name: "name",
|
63
|
+
});
|
64
|
+
});
|
65
|
+
});
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3NlY3JldHMvc2VjcmV0LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9FQUE4RTtBQUU5RSw2Q0FBK0I7QUFFL0IsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDO0FBQ2hDLE1BQU0sa0JBQWtCLEdBQUc7SUFDdkIsY0FBYyxFQUFHLE9BQU87SUFDeEIsYUFBYSxFQUFHLE1BQU07SUFDdEIsYUFBYSxFQUFHLE9BQU87Q0FDMUIsQ0FBQztBQUNGLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztBQUV4QixJQUFBLG9DQUFrQixHQUFFLENBQUM7QUFFckIsaUVBQStEO0FBRS9ELFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO0lBQzNCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDWCxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDckMsSUFBQSw0QkFBVSxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3BCLE1BQU0sSUFBQSxrQkFBUyxFQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDeEMsSUFBQSw0QkFBVSxFQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxrQkFBUyxFQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLHVCQUF1QixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3JDLElBQUEsNEJBQVUsRUFBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxrQkFBUyxFQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMseUJBQXlCLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDdkMsSUFBQSw0QkFBVSxFQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDL0IsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLGtCQUFTLEVBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDbkIsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUsTUFBTTtTQUNmLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge21vY2tTZWNyZXQsIHN0dWJTZWNyZXRzTWFuYWdlcn0gZnJvbSBcIi4uLy4uL3NyYy90ZXN0L3NlY3JldHMtbWFuYWdlclwiO1xuXG5pbXBvcnQgKiBhcyBzaW5vbiBmcm9tICdzaW5vbic7XG5cbmNvbnN0IFNFQ1JFVF9JRCA9IFwidGVzdF9zZWNyZXRcIjtcbmNvbnN0IFNFQ1JFVF9XSVRIX1BSRUZJWCA9IHtcbiAgICBcInByZWZpeC52YWx1ZVwiIDogXCJ2YWx1ZVwiLFxuICAgIFwicHJlZml4Lm5hbWVcIiA6IFwibmFtZVwiLFxuICAgIFwid3JvbmcudmFsdWVcIiA6IFwidmFsdWVcIixcbn07XG5jb25zdCBTRUNSRVRfRU1QVFkgPSB7fTtcblxuc3R1YlNlY3JldHNNYW5hZ2VyKCk7XG5cbmltcG9ydCB7Z2V0U2VjcmV0fSBmcm9tIFwiLi4vLi4vc3JjL2F3cy9ydW50aW1lL3NlY3JldHMvc2VjcmV0XCI7XG5cbmRlc2NyaWJlKCdzZWNyZXQgLSB0ZXN0JywgKCkgPT4ge1xuICAgIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgICAgIHNpbm9uLnJlc3RvcmUoKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2dldFNlY3JldCAtIG5vIHNlY3JldCcsIGFzeW5jICgpID0+IHtcbiAgICAgICAgbW9ja1NlY3JldChudWxsKTtcbiAgICAgICAgYXdhaXQgZXhwZWN0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IGdldFNlY3JldChTRUNSRVRfSUQsICcnKTtcbiAgICAgICAgfSkucmVqZWN0cy50b1Rocm93RXJyb3IoXCJObyBzZWNyZXQgZm91bmQhXCIpO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnZ2V0U2VjcmV0IC0gZW1wdHkgc2VjcmV0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBtb2NrU2VjcmV0KFNFQ1JFVF9FTVBUWSk7XG4gICAgICAgIGNvbnN0IHNlY3JldCA9IGF3YWl0IGdldFNlY3JldChTRUNSRVRfSUQsICcnKTtcbiAgICAgICAgZXhwZWN0KHNlY3JldCkudG9FcXVhbChTRUNSRVRfRU1QVFkpO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnZ2V0U2VjcmV0IC0gbm8gcHJlZml4JywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBtb2NrU2VjcmV0KFNFQ1JFVF9XSVRIX1BSRUZJWCk7XG4gICAgICAgIGNvbnN0IHNlY3JldCA9IGF3YWl0IGdldFNlY3JldChTRUNSRVRfSUQsICcnKTtcbiAgICAgICAgZXhwZWN0KHNlY3JldCkudG9FcXVhbChTRUNSRVRfV0lUSF9QUkVGSVgpO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnZ2V0U2VjcmV0IC0gd2l0aCBwcmVmaXgnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIG1vY2tTZWNyZXQoU0VDUkVUX1dJVEhfUFJFRklYKTtcbiAgICAgICAgY29uc3Qgc2VjcmV0ID0gYXdhaXQgZ2V0U2VjcmV0KFNFQ1JFVF9JRCwgJ3ByZWZpeCcpO1xuICAgICAgICBleHBlY3Qoc2VjcmV0KS50b0VxdWFsKHtcbiAgICAgICAgICAgIHZhbHVlOiBcInZhbHVlXCIsXG4gICAgICAgICAgICBuYW1lOiBcIm5hbWVcIixcbiAgICAgICAgfSk7XG4gICAgfSk7XG59KTtcbiJdfQ==
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import * as sinon from "sinon";
|
2
|
+
/**
|
3
|
+
* Stub Secrets Manager for tests. You must call this
|
4
|
+
* before you instantiate Secrets Manager(this might happen when you import the function that uses Secrets Manager).
|
5
|
+
*
|
6
|
+
* To mock the actual secret, call mockSecret()
|
7
|
+
*/
|
8
|
+
export declare function stubSecretsManager(): sinon.SinonStub<any[], any>;
|
9
|
+
export declare function mockSecret<Secret>(secret: Secret): void;
|
@@ -0,0 +1,59 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
exports.mockSecret = exports.stubSecretsManager = void 0;
|
27
|
+
const AWS = require("aws-sdk");
|
28
|
+
const sinon = __importStar(require("sinon"));
|
29
|
+
const secretValue = sinon.stub();
|
30
|
+
/**
|
31
|
+
* Stub Secrets Manager for tests. You must call this
|
32
|
+
* before you instantiate Secrets Manager(this might happen when you import the function that uses Secrets Manager).
|
33
|
+
*
|
34
|
+
* To mock the actual secret, call mockSecret()
|
35
|
+
*/
|
36
|
+
function stubSecretsManager() {
|
37
|
+
const smStub = {
|
38
|
+
getSecretValue: secretValue,
|
39
|
+
};
|
40
|
+
sinon.stub(AWS, 'SecretsManager').returns(smStub);
|
41
|
+
return smStub.getSecretValue;
|
42
|
+
}
|
43
|
+
exports.stubSecretsManager = stubSecretsManager;
|
44
|
+
function mockSecret(secret) {
|
45
|
+
if (!secret) {
|
46
|
+
secretValue.returns({
|
47
|
+
promise: sinon.stub().returns({}),
|
48
|
+
});
|
49
|
+
}
|
50
|
+
else {
|
51
|
+
secretValue.returns({
|
52
|
+
promise: sinon.stub().returns({
|
53
|
+
SecretString: JSON.stringify(secret),
|
54
|
+
}),
|
55
|
+
});
|
56
|
+
}
|
57
|
+
}
|
58
|
+
exports.mockSecret = mockSecret;
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0cy1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3Qvc2VjcmV0cy1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQWdDO0FBQ2hDLDZDQUErQjtBQUUvQixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7QUFFakM7Ozs7O0dBS0c7QUFDSCxTQUFnQixrQkFBa0I7SUFDOUIsTUFBTSxNQUFNLEdBQUc7UUFDWCxjQUFjLEVBQUUsV0FBVztLQUM5QixDQUFDO0lBRUYsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFbEQsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDO0FBQ2pDLENBQUM7QUFSRCxnREFRQztBQUVELFNBQWdCLFVBQVUsQ0FBUyxNQUFjO0lBQzdDLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDVCxXQUFXLENBQUMsT0FBTyxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztTQUNwQyxDQUFDLENBQUM7S0FDTjtTQUFNO1FBQ0gsV0FBVyxDQUFDLE9BQU8sQ0FBQztZQUNoQixPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQztnQkFDMUIsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO2FBQ3ZDLENBQUM7U0FDTCxDQUFDLENBQUM7S0FDTjtBQUNMLENBQUM7QUFaRCxnQ0FZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBV1MgPSByZXF1aXJlKCdhd3Mtc2RrJyk7XG5pbXBvcnQgKiBhcyBzaW5vbiBmcm9tIFwic2lub25cIjtcblxuY29uc3Qgc2VjcmV0VmFsdWUgPSBzaW5vbi5zdHViKCk7XG5cbi8qKlxuICogU3R1YiBTZWNyZXRzIE1hbmFnZXIgZm9yIHRlc3RzLiAgWW91IG11c3QgY2FsbCB0aGlzXG4gKiBiZWZvcmUgeW91IGluc3RhbnRpYXRlIFNlY3JldHMgTWFuYWdlcih0aGlzIG1pZ2h0IGhhcHBlbiB3aGVuIHlvdSBpbXBvcnQgdGhlIGZ1bmN0aW9uIHRoYXQgdXNlcyBTZWNyZXRzIE1hbmFnZXIpLlxuICpcbiAqIFRvIG1vY2sgdGhlIGFjdHVhbCBzZWNyZXQsIGNhbGwgbW9ja1NlY3JldCgpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHViU2VjcmV0c01hbmFnZXIoKSB7XG4gICAgY29uc3Qgc21TdHViID0ge1xuICAgICAgICBnZXRTZWNyZXRWYWx1ZTogc2VjcmV0VmFsdWUsXG4gICAgfTtcblxuICAgIHNpbm9uLnN0dWIoQVdTLCAnU2VjcmV0c01hbmFnZXInKS5yZXR1cm5zKHNtU3R1Yik7XG5cbiAgICByZXR1cm4gc21TdHViLmdldFNlY3JldFZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja1NlY3JldDxTZWNyZXQ+KHNlY3JldDogU2VjcmV0KSB7XG4gICAgaWYgKCFzZWNyZXQpIHtcbiAgICAgICAgc2VjcmV0VmFsdWUucmV0dXJucyh7XG4gICAgICAgICAgICBwcm9taXNlOiBzaW5vbi5zdHViKCkucmV0dXJucyh7fSksXG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNlY3JldFZhbHVlLnJldHVybnMoe1xuICAgICAgICAgICAgcHJvbWlzZTogc2lub24uc3R1YigpLnJldHVybnMoe1xuICAgICAgICAgICAgICAgIFNlY3JldFN0cmluZzogSlNPTi5zdHJpbmdpZnkoc2VjcmV0KSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|