aws-cdk
Version:
CDK Toolkit, the command line tool for CDK apps
61 lines • 6.34 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
require("aws-sdk-client-mock");
const client_ec2_1 = require("@aws-sdk/client-ec2");
const api_1 = require("../../lib/api");
const ami_1 = require("../../lib/context-providers/ami");
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 });
}
})();
test('calls DescribeImages on the request', async () => {
// GIVEN
mock_sdk_1.mockEC2Client.on(client_ec2_1.DescribeImagesCommand).resolves({
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(mock_sdk_1.mockEC2Client).toHaveReceivedCommandWith(client_ec2_1.DescribeImagesCommand, {
Owners: ['some-owner'],
Filters: [
{
Name: 'some-filter',
Values: ['filtered'],
},
],
});
});
test('returns the most recent AMI matching the criteria', async () => {
// GIVEN
mock_sdk_1.mockEC2Client.on(client_ec2_1.DescribeImagesCommand).resolves({
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1pcy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW1pcy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQTZCO0FBQzdCLG9EQUE0RDtBQUM1RCx1Q0FBdUQ7QUFDdkQseURBQTJFO0FBQzNFLCtDQUF5RjtBQUV6RixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBTSxTQUFRLDBCQUFlO0lBQ3pDLGNBQWM7UUFDbkIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksU0FBRyxDQUFDLGdDQUFxQixFQUFFLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbkgsQ0FBQztDQUNGLENBQUMsRUFBRSxDQUFDO0FBRUwsSUFBSSxDQUFDLHFDQUFxQyxFQUFFLEtBQUssSUFBSSxFQUFFO0lBQ3JELFFBQVE7SUFDUix3QkFBYSxDQUFDLEVBQUUsQ0FBQyxrQ0FBcUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUMvQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQztLQUNsQyxDQUFDLENBQUM7SUFFSCxPQUFPO0lBQ1AsTUFBTSxJQUFJLDhCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNuRCxPQUFPLEVBQUUsTUFBTTtRQUNmLE1BQU0sRUFBRSxNQUFNO1FBQ2QsTUFBTSxFQUFFLENBQUMsWUFBWSxDQUFDO1FBQ3RCLE9BQU8sRUFBRTtZQUNQLGFBQWEsRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUM1QjtLQUNGLENBQUMsQ0FBQztJQUVILE9BQU87SUFDUCxNQUFNLENBQUMsd0JBQWEsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLGtDQUFxQixFQUFFO1FBQ3JFLE1BQU0sRUFBRSxDQUFDLFlBQVksQ0FBQztRQUN0QixPQUFPLEVBQUU7WUFDUDtnQkFDRSxJQUFJLEVBQUUsYUFBYTtnQkFDbkIsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDO2FBQ3JCO1NBQ0Y7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxtREFBbUQsRUFBRSxLQUFLLElBQUksRUFBRTtJQUNuRSxRQUFRO0lBQ1Isd0JBQWEsQ0FBQyxFQUFFLENBQUMsa0NBQXFCLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDL0MsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsT0FBTyxFQUFFLFVBQVU7Z0JBQ25CLFlBQVksRUFBRSwwQkFBMEI7YUFDekM7WUFDRDtnQkFDRSxPQUFPLEVBQUUsVUFBVTtnQkFDbkIsWUFBWSxFQUFFLDBCQUEwQjthQUN6QztTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTztJQUNQLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSw4QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDbEUsT0FBTyxFQUFFLE1BQU07UUFDZixNQUFNLEVBQUUsTUFBTTtRQUNkLE9BQU8sRUFBRSxFQUFFO0tBQ1osQ0FBQyxDQUFDO0lBRUgsT0FBTztJQUNQLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDbEMsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ2F3cy1zZGstY2xpZW50LW1vY2snO1xuaW1wb3J0IHsgRGVzY3JpYmVJbWFnZXNDb21tYW5kIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWVjMic7XG5pbXBvcnQgeyBTREssIFNka0ZvckVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vbGliL2FwaSc7XG5pbXBvcnQgeyBBbWlDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuLi8uLi9saWIvY29udGV4dC1wcm92aWRlcnMvYW1pJztcbmltcG9ydCB7IEZBS0VfQ1JFREVOVElBTF9DSEFJTiwgTW9ja1Nka1Byb3ZpZGVyLCBtb2NrRUMyQ2xpZW50IH0gZnJvbSAnLi4vdXRpbC9tb2NrLXNkayc7XG5cbmNvbnN0IG1vY2tTREsgPSBuZXcgKGNsYXNzIGV4dGVuZHMgTW9ja1Nka1Byb3ZpZGVyIHtcbiAgcHVibGljIGZvckVudmlyb25tZW50KCk6IFByb21pc2U8U2RrRm9yRW52aXJvbm1lbnQ+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsgc2RrOiBuZXcgU0RLKEZBS0VfQ1JFREVOVElBTF9DSEFJTiwgbW9ja1NESy5kZWZhdWx0UmVnaW9uLCB7fSksIGRpZEFzc3VtZVJvbGU6IGZhbHNlIH0pO1xuICB9XG59KSgpO1xuXG50ZXN0KCdjYWxscyBEZXNjcmliZUltYWdlcyBvbiB0aGUgcmVxdWVzdCcsIGFzeW5jICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgbW9ja0VDMkNsaWVudC5vbihEZXNjcmliZUltYWdlc0NvbW1hbmQpLnJlc29sdmVzKHtcbiAgICBJbWFnZXM6IFt7IEltYWdlSWQ6ICdhbWktMTIzNCcgfV0sXG4gIH0pO1xuXG4gIC8vIFdIRU5cbiAgYXdhaXQgbmV3IEFtaUNvbnRleHRQcm92aWRlclBsdWdpbihtb2NrU0RLKS5nZXRWYWx1ZSh7XG4gICAgYWNjb3VudDogJzEyMzQnLFxuICAgIHJlZ2lvbjogJ2FzZGYnLFxuICAgIG93bmVyczogWydzb21lLW93bmVyJ10sXG4gICAgZmlsdGVyczoge1xuICAgICAgJ3NvbWUtZmlsdGVyJzogWydmaWx0ZXJlZCddLFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KG1vY2tFQzJDbGllbnQpLnRvSGF2ZVJlY2VpdmVkQ29tbWFuZFdpdGgoRGVzY3JpYmVJbWFnZXNDb21tYW5kLCB7XG4gICAgT3duZXJzOiBbJ3NvbWUtb3duZXInXSxcbiAgICBGaWx0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIE5hbWU6ICdzb21lLWZpbHRlcicsXG4gICAgICAgIFZhbHVlczogWydmaWx0ZXJlZCddLFxuICAgICAgfSxcbiAgICBdLFxuICB9KTtcbn0pO1xuXG50ZXN0KCdyZXR1cm5zIHRoZSBtb3N0IHJlY2VudCBBTUkgbWF0Y2hpbmcgdGhlIGNyaXRlcmlhJywgYXN5bmMgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBtb2NrRUMyQ2xpZW50Lm9uKERlc2NyaWJlSW1hZ2VzQ29tbWFuZCkucmVzb2x2ZXMoe1xuICAgIEltYWdlczogW1xuICAgICAge1xuICAgICAgICBJbWFnZUlkOiAnYW1pLTEyMzQnLFxuICAgICAgICBDcmVhdGlvbkRhdGU6ICcyMDE2LTA2LTIyVDA4OjM5OjU5LjAwMFonLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgSW1hZ2VJZDogJ2FtaS01Njc4JyxcbiAgICAgICAgQ3JlYXRpb25EYXRlOiAnMjAxOS0wNi0yMlQwODozOTo1OS4wMDBaJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSk7XG5cbiAgLy8gV0hFTlxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBuZXcgQW1pQ29udGV4dFByb3ZpZGVyUGx1Z2luKG1vY2tTREspLmdldFZhbHVlKHtcbiAgICBhY2NvdW50OiAnMTIzNCcsXG4gICAgcmVnaW9uOiAnYXNkZicsXG4gICAgZmlsdGVyczoge30sXG4gIH0pO1xuXG4gIC8vIFRIRU5cbiAgZXhwZWN0KHJlc3VsdCkudG9CZSgnYW1pLTU2NzgnKTtcbn0pO1xuIl19