UNPKG

aws-cdk

Version:

CDK Toolkit, the command line tool for CDK apps

70 lines 7.51 kB
"use strict"; 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==