aws-cdk
Version:
CDK Toolkit, the command line tool for CDK apps
43 lines • 5.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const client_ssm_1 = require("@aws-sdk/client-ssm");
const api_1 = require("../../lib/api");
const ssm_parameters_1 = require("../../lib/context-providers/ssm-parameters");
const mock_sdk_1 = require("../util/mock-sdk");
const mockSDK = new (class extends mock_sdk_1.MockSdkProvider {
forEnvironment() {
return Promise.resolve({ sdk: new api_1.SDK(mock_sdk_1.FAKE_CREDENTIAL_CHAIN, mockSDK.defaultRegion, {}), didAssumeRole: false });
}
})();
describe('ssmParameters', () => {
test('returns value', async () => {
(0, mock_sdk_1.restoreSdkMocksToDefault)();
const provider = new ssm_parameters_1.SSMContextProviderPlugin(mockSDK);
mock_sdk_1.mockSSMClient.on(client_ssm_1.GetParameterCommand).resolves({
Parameter: {
Value: 'bar',
},
});
// WHEN
const value = await provider.getValue({
account: '1234',
region: 'us-east-1',
parameterName: 'foo',
});
expect(value).toEqual('bar');
});
test('errors when parameter is not found', async () => {
(0, mock_sdk_1.restoreSdkMocksToDefault)();
const provider = new ssm_parameters_1.SSMContextProviderPlugin(mockSDK);
const notFound = new Error('Parameter not found');
notFound.name = 'ParameterNotFound';
mock_sdk_1.mockSSMClient.on(client_ssm_1.GetParameterCommand).rejects(notFound);
// WHEN
await expect(provider.getValue({
account: '1234',
region: 'us-east-1',
parameterName: 'foo',
})).rejects.toThrow(/SSM parameter not available in account/);
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NtLXBhcmFtZXRlcnMudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNzbS1wYXJhbWV0ZXJzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxvREFBMEQ7QUFDMUQsdUNBQXVEO0FBQ3ZELCtFQUFzRjtBQUN0RiwrQ0FBbUg7QUFFbkgsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQU0sU0FBUSwwQkFBZTtJQUN6QyxjQUFjO1FBQ25CLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLFNBQUcsQ0FBQyxnQ0FBcUIsRUFBRSxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ25ILENBQUM7Q0FDRixDQUFDLEVBQUUsQ0FBQztBQUVMLFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO0lBQzdCLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDL0IsSUFBQSxtQ0FBd0IsR0FBRSxDQUFDO1FBQzNCLE1BQU0sUUFBUSxHQUFHLElBQUkseUNBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkQsd0JBQWEsQ0FBQyxFQUFFLENBQUMsZ0NBQW1CLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDN0MsU0FBUyxFQUFFO2dCQUNULEtBQUssRUFBRSxLQUFLO2FBQ2I7U0FDRixDQUFDLENBQUM7UUFFSCxPQUFPO1FBQ1AsTUFBTSxLQUFLLEdBQUcsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ3BDLE9BQU8sRUFBRSxNQUFNO1lBQ2YsTUFBTSxFQUFFLFdBQVc7WUFDbkIsYUFBYSxFQUFFLEtBQUs7U0FDckIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxvQ0FBb0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNwRCxJQUFBLG1DQUF3QixHQUFFLENBQUM7UUFDM0IsTUFBTSxRQUFRLEdBQUcsSUFBSSx5Q0FBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV2RCxNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2xELFFBQVEsQ0FBQyxJQUFJLEdBQUcsbUJBQW1CLENBQUM7UUFDcEMsd0JBQWEsQ0FBQyxFQUFFLENBQUMsZ0NBQW1CLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFeEQsT0FBTztRQUNQLE1BQU0sTUFBTSxDQUNWLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDaEIsT0FBTyxFQUFFLE1BQU07WUFDZixNQUFNLEVBQUUsV0FBVztZQUNuQixhQUFhLEVBQUUsS0FBSztTQUNyQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7SUFDbEUsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdldFBhcmFtZXRlckNvbW1hbmQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtc3NtJztcbmltcG9ydCB7IFNESywgU2RrRm9yRW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi9saWIvYXBpJztcbmltcG9ydCB7IFNTTUNvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4uLy4uL2xpYi9jb250ZXh0LXByb3ZpZGVycy9zc20tcGFyYW1ldGVycyc7XG5pbXBvcnQgeyBGQUtFX0NSRURFTlRJQUxfQ0hBSU4sIE1vY2tTZGtQcm92aWRlciwgbW9ja1NTTUNsaWVudCwgcmVzdG9yZVNka01vY2tzVG9EZWZhdWx0IH0gZnJvbSAnLi4vdXRpbC9tb2NrLXNkayc7XG5cbmNvbnN0IG1vY2tTREsgPSBuZXcgKGNsYXNzIGV4dGVuZHMgTW9ja1Nka1Byb3ZpZGVyIHtcbiAgcHVibGljIGZvckVudmlyb25tZW50KCk6IFByb21pc2U8U2RrRm9yRW52aXJvbm1lbnQ+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsgc2RrOiBuZXcgU0RLKEZBS0VfQ1JFREVOVElBTF9DSEFJTiwgbW9ja1NESy5kZWZhdWx0UmVnaW9uLCB7fSksIGRpZEFzc3VtZVJvbGU6IGZhbHNlIH0pO1xuICB9XG59KSgpO1xuXG5kZXNjcmliZSgnc3NtUGFyYW1ldGVycycsICgpID0+IHtcbiAgdGVzdCgncmV0dXJucyB2YWx1ZScsIGFzeW5jICgpID0+IHtcbiAgICByZXN0b3JlU2RrTW9ja3NUb0RlZmF1bHQoKTtcbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBTU01Db250ZXh0UHJvdmlkZXJQbHVnaW4obW9ja1NESyk7XG5cbiAgICBtb2NrU1NNQ2xpZW50Lm9uKEdldFBhcmFtZXRlckNvbW1hbmQpLnJlc29sdmVzKHtcbiAgICAgIFBhcmFtZXRlcjoge1xuICAgICAgICBWYWx1ZTogJ2JhcicsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gV0hFTlxuICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgcHJvdmlkZXIuZ2V0VmFsdWUoe1xuICAgICAgYWNjb3VudDogJzEyMzQnLFxuICAgICAgcmVnaW9uOiAndXMtZWFzdC0xJyxcbiAgICAgIHBhcmFtZXRlck5hbWU6ICdmb28nLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KHZhbHVlKS50b0VxdWFsKCdiYXInKTtcbiAgfSk7XG5cbiAgdGVzdCgnZXJyb3JzIHdoZW4gcGFyYW1ldGVyIGlzIG5vdCBmb3VuZCcsIGFzeW5jICgpID0+IHtcbiAgICByZXN0b3JlU2RrTW9ja3NUb0RlZmF1bHQoKTtcbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBTU01Db250ZXh0UHJvdmlkZXJQbHVnaW4obW9ja1NESyk7XG5cbiAgICBjb25zdCBub3RGb3VuZCA9IG5ldyBFcnJvcignUGFyYW1ldGVyIG5vdCBmb3VuZCcpO1xuICAgIG5vdEZvdW5kLm5hbWUgPSAnUGFyYW1ldGVyTm90Rm91bmQnO1xuICAgIG1vY2tTU01DbGllbnQub24oR2V0UGFyYW1ldGVyQ29tbWFuZCkucmVqZWN0cyhub3RGb3VuZCk7XG5cbiAgICAvLyBXSEVOXG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgcHJvdmlkZXIuZ2V0VmFsdWUoe1xuICAgICAgICBhY2NvdW50OiAnMTIzNCcsXG4gICAgICAgIHJlZ2lvbjogJ3VzLWVhc3QtMScsXG4gICAgICAgIHBhcmFtZXRlck5hbWU6ICdmb28nLFxuICAgICAgfSkpLnJlamVjdHMudG9UaHJvdygvU1NNIHBhcmFtZXRlciBub3QgYXZhaWxhYmxlIGluIGFjY291bnQvKTtcbiAgfSk7XG59KTtcbiJdfQ==