aws-cdk
Version:
CDK Toolkit, the command line tool for CDK apps
70 lines • 7.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/* eslint-disable import/order */
const aws = require("aws-sdk");
const AWS = require("aws-sdk-mock");
const ami_1 = require("../../lib/context-providers/ami");
const mock_sdk_1 = require("../util/mock-sdk");
// If the 'aws-sdk' package imported here and the 'aws-sdk' package imported by 'aws-sdk-mock' aren't
// the same physical package on disk (if version mismatches cause hoisting/deduping to not happen),
// the type check here takes too long and makes the TypeScript compiler fail.
// Suppress the type check using 'as any' to make this more robust.
AWS.setSDKInstance(aws);
afterEach(done => {
AWS.restore();
done();
});
const mockSDK = new mock_sdk_1.MockSdkProvider();
test('calls DescribeImages on the request', async () => {
// GIVEN
let request;
AWS.mock('EC2', 'describeImages', (params, cb) => {
request = params;
return cb(null, { Images: [{ ImageId: 'ami-1234' }] });
});
// WHEN
await new ami_1.AmiContextProviderPlugin(mockSDK).getValue({
account: '1234',
region: 'asdf',
owners: ['some-owner'],
filters: {
'some-filter': ['filtered'],
},
});
// THEN
expect(request).toEqual({
Owners: ['some-owner'],
Filters: [
{
Name: 'some-filter',
Values: ['filtered'],
},
],
});
});
test('returns the most recent AMI matching the criteria', async () => {
// GIVEN
AWS.mock('EC2', 'describeImages', (_, cb) => {
return cb(null, {
Images: [
{
ImageId: 'ami-1234',
CreationDate: '2016-06-22T08:39:59.000Z',
},
{
ImageId: 'ami-5678',
CreationDate: '2019-06-22T08:39:59.000Z',
},
],
});
});
// WHEN
const result = await new ami_1.AmiContextProviderPlugin(mockSDK).getValue({
account: '1234',
region: 'asdf',
filters: {},
});
// THEN
expect(result).toBe('ami-5678');
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1pcy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW1pcy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBQWlDO0FBQ2pDLCtCQUErQjtBQUMvQixvQ0FBb0M7QUFDcEMseURBQTJFO0FBQzNFLCtDQUFtRDtBQUVuRCxxR0FBcUc7QUFDckcsbUdBQW1HO0FBQ25HLDZFQUE2RTtBQUM3RSxtRUFBbUU7QUFDbkUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFVLENBQUMsQ0FBQztBQUUvQixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7SUFDZixHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDZCxJQUFJLEVBQUUsQ0FBQztBQUNULENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxPQUFPLEdBQUcsSUFBSSwwQkFBZSxFQUFFLENBQUM7QUFJdEMsSUFBSSxDQUFDLHFDQUFxQyxFQUFFLEtBQUssSUFBSSxFQUFFO0lBQ3JELFFBQVE7SUFDUixJQUFJLE9BQXNDLENBQUM7SUFDM0MsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxNQUFxQyxFQUFFLEVBQTZDLEVBQUUsRUFBRTtRQUN6SCxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ2pCLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTztJQUNQLE1BQU0sSUFBSSw4QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDbkQsT0FBTyxFQUFFLE1BQU07UUFDZixNQUFNLEVBQUUsTUFBTTtRQUNkLE1BQU0sRUFBRSxDQUFDLFlBQVksQ0FBQztRQUN0QixPQUFPLEVBQUU7WUFDUCxhQUFhLEVBQUUsQ0FBQyxVQUFVLENBQUM7U0FDNUI7S0FDRixDQUFDLENBQUM7SUFFSCxPQUFPO0lBQ1AsTUFBTSxDQUFDLE9BQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN2QixNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFDdEIsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQzthQUNyQjtTQUNGO0tBQytCLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxtREFBbUQsRUFBRSxLQUFLLElBQUksRUFBRTtJQUNuRSxRQUFRO0lBQ1IsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFnQyxFQUFFLEVBQTZDLEVBQUUsRUFBRTtRQUNwSCxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUU7WUFDZCxNQUFNLEVBQUU7Z0JBQ047b0JBQ0UsT0FBTyxFQUFFLFVBQVU7b0JBQ25CLFlBQVksRUFBRSwwQkFBMEI7aUJBQ3pDO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxVQUFVO29CQUNuQixZQUFZLEVBQUUsMEJBQTBCO2lCQUN6QzthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPO0lBQ1AsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLDhCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNsRSxPQUFPLEVBQUUsTUFBTTtRQUNmLE1BQU0sRUFBRSxNQUFNO1FBQ2QsT0FBTyxFQUFFLEVBQUU7S0FDWixDQUFDLENBQUM7SUFFSCxPQUFPO0lBQ1AsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9vcmRlciAqL1xuaW1wb3J0ICogYXMgYXdzIGZyb20gJ2F3cy1zZGsnO1xuaW1wb3J0ICogYXMgQVdTIGZyb20gJ2F3cy1zZGstbW9jayc7XG5pbXBvcnQgeyBBbWlDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuLi8uLi9saWIvY29udGV4dC1wcm92aWRlcnMvYW1pJztcbmltcG9ydCB7IE1vY2tTZGtQcm92aWRlciB9IGZyb20gJy4uL3V0aWwvbW9jay1zZGsnO1xuXG4vLyBJZiB0aGUgJ2F3cy1zZGsnIHBhY2thZ2UgaW1wb3J0ZWQgaGVyZSBhbmQgdGhlICdhd3Mtc2RrJyBwYWNrYWdlIGltcG9ydGVkIGJ5ICdhd3Mtc2RrLW1vY2snIGFyZW4ndFxuLy8gdGhlIHNhbWUgcGh5c2ljYWwgcGFja2FnZSBvbiBkaXNrIChpZiB2ZXJzaW9uIG1pc21hdGNoZXMgY2F1c2UgaG9pc3RpbmcvZGVkdXBpbmcgdG8gbm90IGhhcHBlbiksXG4vLyB0aGUgdHlwZSBjaGVjayBoZXJlIHRha2VzIHRvbyBsb25nIGFuZCBtYWtlcyB0aGUgVHlwZVNjcmlwdCBjb21waWxlciBmYWlsLlxuLy8gU3VwcHJlc3MgdGhlIHR5cGUgY2hlY2sgdXNpbmcgJ2FzIGFueScgdG8gbWFrZSB0aGlzIG1vcmUgcm9idXN0LlxuQVdTLnNldFNES0luc3RhbmNlKGF3cyBhcyBhbnkpO1xuXG5hZnRlckVhY2goZG9uZSA9PiB7XG4gIEFXUy5yZXN0b3JlKCk7XG4gIGRvbmUoKTtcbn0pO1xuXG5jb25zdCBtb2NrU0RLID0gbmV3IE1vY2tTZGtQcm92aWRlcigpO1xuXG50eXBlIEF3c0NhbGxiYWNrPFQ+ID0gKGVycjogRXJyb3IgfCBudWxsLCB2YWw6IFQpID0+IHZvaWQ7XG5cbnRlc3QoJ2NhbGxzIERlc2NyaWJlSW1hZ2VzIG9uIHRoZSByZXF1ZXN0JywgYXN5bmMgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBsZXQgcmVxdWVzdDogYXdzLkVDMi5EZXNjcmliZUltYWdlc1JlcXVlc3Q7XG4gIEFXUy5tb2NrKCdFQzInLCAnZGVzY3JpYmVJbWFnZXMnLCAocGFyYW1zOiBhd3MuRUMyLkRlc2NyaWJlSW1hZ2VzUmVxdWVzdCwgY2I6IEF3c0NhbGxiYWNrPGF3cy5FQzIuRGVzY3JpYmVJbWFnZXNSZXN1bHQ+KSA9PiB7XG4gICAgcmVxdWVzdCA9IHBhcmFtcztcbiAgICByZXR1cm4gY2IobnVsbCwgeyBJbWFnZXM6IFt7IEltYWdlSWQ6ICdhbWktMTIzNCcgfV0gfSk7XG4gIH0pO1xuXG4gIC8vIFdIRU5cbiAgYXdhaXQgbmV3IEFtaUNvbnRleHRQcm92aWRlclBsdWdpbihtb2NrU0RLKS5nZXRWYWx1ZSh7XG4gICAgYWNjb3VudDogJzEyMzQnLFxuICAgIHJlZ2lvbjogJ2FzZGYnLFxuICAgIG93bmVyczogWydzb21lLW93bmVyJ10sXG4gICAgZmlsdGVyczoge1xuICAgICAgJ3NvbWUtZmlsdGVyJzogWydmaWx0ZXJlZCddLFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KHJlcXVlc3QhKS50b0VxdWFsKHtcbiAgICBPd25lcnM6IFsnc29tZS1vd25lciddLFxuICAgIEZpbHRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgTmFtZTogJ3NvbWUtZmlsdGVyJyxcbiAgICAgICAgVmFsdWVzOiBbJ2ZpbHRlcmVkJ10sXG4gICAgICB9LFxuICAgIF0sXG4gIH0gYXMgYXdzLkVDMi5EZXNjcmliZUltYWdlc1JlcXVlc3QpO1xufSk7XG5cbnRlc3QoJ3JldHVybnMgdGhlIG1vc3QgcmVjZW50IEFNSSBtYXRjaGluZyB0aGUgY3JpdGVyaWEnLCBhc3luYyAoKSA9PiB7XG4gIC8vIEdJVkVOXG4gIEFXUy5tb2NrKCdFQzInLCAnZGVzY3JpYmVJbWFnZXMnLCAoXzogYXdzLkVDMi5EZXNjcmliZUltYWdlc1JlcXVlc3QsIGNiOiBBd3NDYWxsYmFjazxhd3MuRUMyLkRlc2NyaWJlSW1hZ2VzUmVzdWx0PikgPT4ge1xuICAgIHJldHVybiBjYihudWxsLCB7XG4gICAgICBJbWFnZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIEltYWdlSWQ6ICdhbWktMTIzNCcsXG4gICAgICAgICAgQ3JlYXRpb25EYXRlOiAnMjAxNi0wNi0yMlQwODozOTo1OS4wMDBaJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIEltYWdlSWQ6ICdhbWktNTY3OCcsXG4gICAgICAgICAgQ3JlYXRpb25EYXRlOiAnMjAxOS0wNi0yMlQwODozOTo1OS4wMDBaJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vIFdIRU5cbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmV3IEFtaUNvbnRleHRQcm92aWRlclBsdWdpbihtb2NrU0RLKS5nZXRWYWx1ZSh7XG4gICAgYWNjb3VudDogJzEyMzQnLFxuICAgIHJlZ2lvbjogJ2FzZGYnLFxuICAgIGZpbHRlcnM6IHt9LFxuICB9KTtcblxuICAvLyBUSEVOXG4gIGV4cGVjdChyZXN1bHQpLnRvQmUoJ2FtaS01Njc4Jyk7XG59KTtcbiJdfQ==