@aws-cdk-testing/cli-integ
Version:
Integration tests for the AWS CDK CLI
49 lines • 8.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
const client_sns_1 = require("@aws-sdk/client-sns");
const lib_1 = require("../../../lib");
(0, lib_1.integTest)('cdk import prompts the user for sns topic arns', (0, lib_1.withDefaultFixture)(async (fixture) => {
const topicName = (logicalId) => `${logicalId}-${fixture.randomString}`;
const topicArn = async (name) => `arn:aws:sns:${fixture.aws.region}:${await fixture.aws.account()}:${name}`;
const topic1Name = topicName('Topic1');
const topic2Name = topicName('Topic2');
const topic1Arn = await topicArn(topic1Name);
const topic2Arn = await topicArn(topic2Name);
fixture.log(`Creating topic ${topic1Name}`);
await fixture.aws.sns.send(new client_sns_1.CreateTopicCommand({ Name: topic1Name }));
fixture.log(`Creating topic ${topic2Name}`);
await fixture.aws.sns.send(new client_sns_1.CreateTopicCommand({ Name: topic2Name }));
try {
const stackName = 'two-sns-topics';
const fullStackName = fixture.fullStackName(stackName);
fixture.log(`Importing topics to stack ${fullStackName}`);
await fixture.cdk(['import', fullStackName], {
interact: [
{
prompt: /Topic1.*\(empty to skip\)/,
input: topic1Arn,
},
{
prompt: /Topic2.*\(empty to skip\)/,
input: topic2Arn,
},
],
modEnv: {
// disable coloring because it messes up prompt matching.
FORCE_COLOR: '0',
},
});
// assert the stack now has the two topics
const stackResources = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStackResourcesCommand({ StackName: fullStackName }));
const stackTopicArns = new Set(stackResources.StackResources?.filter(r => r.ResourceType === 'AWS::SNS::Topic').map(r => r.PhysicalResourceId) ?? []);
expect(stackTopicArns).toEqual(new Set([topic1Arn, topic2Arn]));
}
finally {
fixture.log(`Deleting topic ${topic1Name}`);
await fixture.aws.sns.send(new client_sns_1.DeleteTopicCommand({ TopicArn: topic1Arn }));
fixture.log(`Deleting topic ${topic2Name}`);
await fixture.aws.sns.send(new client_sns_1.DeleteTopicCommand({ TopicArn: topic2Arn }));
}
}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWltcG9ydC1pbnRlcmFjdGl2ZS5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstaW1wb3J0LWludGVyYWN0aXZlLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDBFQUErRTtBQUMvRSxvREFBNkU7QUFDN0Usc0NBQTZEO0FBRTdELElBQUEsZUFBUyxFQUFDLGdEQUFnRCxFQUFFLElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQy9GLE1BQU0sU0FBUyxHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQUMsR0FBRyxTQUFTLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2hGLE1BQU0sUUFBUSxHQUFHLEtBQUssRUFBRSxJQUFZLEVBQUUsRUFBRSxDQUFDLGVBQWUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUssTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO0lBRXJILE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFdkMsTUFBTSxTQUFTLEdBQUcsTUFBTSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsTUFBTSxTQUFTLEdBQUcsTUFBTSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM1QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLCtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksK0JBQWtCLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXpFLElBQUksQ0FBQztRQUNILE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDO1FBQ25DLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUMxRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLEVBQUU7WUFDM0MsUUFBUSxFQUFFO2dCQUNSO29CQUNFLE1BQU0sRUFBRSwyQkFBMkI7b0JBQ25DLEtBQUssRUFBRSxTQUFTO2lCQUNqQjtnQkFDRDtvQkFDRSxNQUFNLEVBQUUsMkJBQTJCO29CQUNuQyxLQUFLLEVBQUUsU0FBUztpQkFDakI7YUFDRjtZQUNELE1BQU0sRUFBRTtnQkFDTix5REFBeUQ7Z0JBQ3pELFdBQVcsRUFBRSxHQUFHO2FBQ2pCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsMENBQTBDO1FBQzFDLE1BQU0sY0FBYyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUkscURBQTZCLENBQUMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlILE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXRKLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7WUFBUyxDQUFDO1FBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUM1QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLCtCQUFrQixDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksK0JBQWtCLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzY3JpYmVTdGFja1Jlc291cmNlc0NvbW1hbmQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgQ3JlYXRlVG9waWNDb21tYW5kLCBEZWxldGVUb3BpY0NvbW1hbmQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtc25zJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuaW50ZWdUZXN0KCdjZGsgaW1wb3J0IHByb21wdHMgdGhlIHVzZXIgZm9yIHNucyB0b3BpYyBhcm5zJywgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gIGNvbnN0IHRvcGljTmFtZSA9IChsb2dpY2FsSWQ6IHN0cmluZykgPT4gYCR7bG9naWNhbElkfS0ke2ZpeHR1cmUucmFuZG9tU3RyaW5nfWA7XG4gIGNvbnN0IHRvcGljQXJuID0gYXN5bmMgKG5hbWU6IHN0cmluZykgPT4gYGFybjphd3M6c25zOiR7Zml4dHVyZS5hd3MucmVnaW9ufTokeyBhd2FpdCBmaXh0dXJlLmF3cy5hY2NvdW50KCl9OiR7bmFtZX1gO1xuXG4gIGNvbnN0IHRvcGljMU5hbWUgPSB0b3BpY05hbWUoJ1RvcGljMScpO1xuICBjb25zdCB0b3BpYzJOYW1lID0gdG9waWNOYW1lKCdUb3BpYzInKTtcblxuICBjb25zdCB0b3BpYzFBcm4gPSBhd2FpdCB0b3BpY0Fybih0b3BpYzFOYW1lKTtcbiAgY29uc3QgdG9waWMyQXJuID0gYXdhaXQgdG9waWNBcm4odG9waWMyTmFtZSk7XG5cbiAgZml4dHVyZS5sb2coYENyZWF0aW5nIHRvcGljICR7dG9waWMxTmFtZX1gKTtcbiAgYXdhaXQgZml4dHVyZS5hd3Muc25zLnNlbmQobmV3IENyZWF0ZVRvcGljQ29tbWFuZCh7IE5hbWU6IHRvcGljMU5hbWUgfSkpO1xuICBmaXh0dXJlLmxvZyhgQ3JlYXRpbmcgdG9waWMgJHt0b3BpYzJOYW1lfWApO1xuICBhd2FpdCBmaXh0dXJlLmF3cy5zbnMuc2VuZChuZXcgQ3JlYXRlVG9waWNDb21tYW5kKHsgTmFtZTogdG9waWMyTmFtZSB9KSk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBzdGFja05hbWUgPSAndHdvLXNucy10b3BpY3MnO1xuICAgIGNvbnN0IGZ1bGxTdGFja05hbWUgPSBmaXh0dXJlLmZ1bGxTdGFja05hbWUoc3RhY2tOYW1lKTtcblxuICAgIGZpeHR1cmUubG9nKGBJbXBvcnRpbmcgdG9waWNzIHRvIHN0YWNrICR7ZnVsbFN0YWNrTmFtZX1gKTtcbiAgICBhd2FpdCBmaXh0dXJlLmNkayhbJ2ltcG9ydCcsIGZ1bGxTdGFja05hbWVdLCB7XG4gICAgICBpbnRlcmFjdDogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvbXB0OiAvVG9waWMxLipcXChlbXB0eSB0byBza2lwXFwpLyxcbiAgICAgICAgICBpbnB1dDogdG9waWMxQXJuLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvbXB0OiAvVG9waWMyLipcXChlbXB0eSB0byBza2lwXFwpLyxcbiAgICAgICAgICBpbnB1dDogdG9waWMyQXJuLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIG1vZEVudjoge1xuICAgICAgICAvLyBkaXNhYmxlIGNvbG9yaW5nIGJlY2F1c2UgaXQgbWVzc2VzIHVwIHByb21wdCBtYXRjaGluZy5cbiAgICAgICAgRk9SQ0VfQ09MT1I6ICcwJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBhc3NlcnQgdGhlIHN0YWNrIG5vdyBoYXMgdGhlIHR3byB0b3BpY3NcbiAgICBjb25zdCBzdGFja1Jlc291cmNlcyA9IGF3YWl0IGZpeHR1cmUuYXdzLmNsb3VkRm9ybWF0aW9uLnNlbmQobmV3IERlc2NyaWJlU3RhY2tSZXNvdXJjZXNDb21tYW5kKHsgU3RhY2tOYW1lOiBmdWxsU3RhY2tOYW1lIH0pKTtcbiAgICBjb25zdCBzdGFja1RvcGljQXJucyA9IG5ldyBTZXQoc3RhY2tSZXNvdXJjZXMuU3RhY2tSZXNvdXJjZXM/LmZpbHRlcihyID0+IHIuUmVzb3VyY2VUeXBlID09PSAnQVdTOjpTTlM6OlRvcGljJykubWFwKHIgPT4gci5QaHlzaWNhbFJlc291cmNlSWQpID8/IFtdKTtcblxuICAgIGV4cGVjdChzdGFja1RvcGljQXJucykudG9FcXVhbChuZXcgU2V0KFt0b3BpYzFBcm4sIHRvcGljMkFybl0pKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBmaXh0dXJlLmxvZyhgRGVsZXRpbmcgdG9waWMgJHt0b3BpYzFOYW1lfWApO1xuICAgIGF3YWl0IGZpeHR1cmUuYXdzLnNucy5zZW5kKG5ldyBEZWxldGVUb3BpY0NvbW1hbmQoeyBUb3BpY0FybjogdG9waWMxQXJuIH0pKTtcbiAgICBmaXh0dXJlLmxvZyhgRGVsZXRpbmcgdG9waWMgJHt0b3BpYzJOYW1lfWApO1xuICAgIGF3YWl0IGZpeHR1cmUuYXdzLnNucy5zZW5kKG5ldyBEZWxldGVUb3BpY0NvbW1hbmQoeyBUb3BpY0FybjogdG9waWMyQXJuIH0pKTtcbiAgfVxufSkpO1xuIl19