UNPKG

@aws-cdk-testing/cli-integ

Version:

Integration tests for the AWS CDK CLI

45 lines (35 loc) 1.78 kB
import { promises as fs } from 'fs'; import * as path from 'path'; import { integTest, withDefaultFixture } from '../../lib'; jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime integTest( 'enableDiffNoFail', withDefaultFixture(async (fixture) => { await diffShouldSucceedWith({ fail: false, enableDiffNoFail: false }); await diffShouldSucceedWith({ fail: false, enableDiffNoFail: true }); await diffShouldFailWith({ fail: true, enableDiffNoFail: false }); await diffShouldFailWith({ fail: true, enableDiffNoFail: true }); await diffShouldFailWith({ fail: undefined, enableDiffNoFail: false }); await diffShouldSucceedWith({ fail: undefined, enableDiffNoFail: true }); async function diffShouldSucceedWith(props: DiffParameters) { await expect(diff(props)).resolves.not.toThrow(); } async function diffShouldFailWith(props: DiffParameters) { await expect(diff(props)).rejects.toThrow('exited with error'); } async function diff(props: DiffParameters): Promise<string> { await updateContext(props.enableDiffNoFail); const flag = props.fail != null ? (props.fail ? '--fail' : '--no-fail') : ''; return fixture.cdk(['diff', flag, fixture.fullStackName('test-1')]); } async function updateContext(enableDiffNoFail: boolean) { const cdkJson = JSON.parse(await fs.readFile(path.join(fixture.integTestDir, 'cdk.json'), 'utf8')); cdkJson.context = { ...cdkJson.context, 'aws-cdk:enableDiffNoFail': enableDiffNoFail, }; await fs.writeFile(path.join(fixture.integTestDir, 'cdk.json'), JSON.stringify(cdkJson)); } type DiffParameters = { fail?: boolean; enableDiffNoFail: boolean }; }), );