diff --git a/packages/aws-cdk/lib/cdk-toolkit.ts b/packages/aws-cdk/lib/cdk-toolkit.ts index cd73b6c17934c..959bab0587e52 100644 --- a/packages/aws-cdk/lib/cdk-toolkit.ts +++ b/packages/aws-cdk/lib/cdk-toolkit.ts @@ -47,6 +47,8 @@ export class CdkToolkit { defaultBehavior: DefaultSelection.AllStacks }); + this.appStacks.processMetadata(stacks); + const strict = !!options.strict; const contextLines = options.contextLines || 3; const stream = options.stream || process.stderr; diff --git a/packages/aws-cdk/test/test.diff.ts b/packages/aws-cdk/test/test.diff.ts index ef6d0704b2d41..d1a3c8c544ca7 100644 --- a/packages/aws-cdk/test/test.diff.ts +++ b/packages/aws-cdk/test/test.diff.ts @@ -19,6 +19,19 @@ const FIXED_RESULT = testAssembly({ stackName: 'B', depends: ['A'], template: { resource: 'B' }, + }, + { + stackName: 'C', + depends: ['A'], + template: { resource: 'C'}, + metadata: { + '/resource': [ + { + type: cxapi.ERROR_METADATA_KEY, + data: 'this is an error' + } + ] + } }] }); @@ -83,6 +96,35 @@ export = { test.done(); }, + + async 'throws an error during diffs on stack with error metadata'(test: Test) { + // GIVEN + const provisioner: IDeploymentTarget = { + async readCurrentTemplate(_stack: cxapi.CloudFormationStackArtifact): Promise