diff --git a/packages/@aws-cdk/toolkit-lib/lib/api/validate/validate-formatting.ts b/packages/@aws-cdk/toolkit-lib/lib/api/validate/validate-formatting.ts index bf5f032e2..9cf060fb0 100644 --- a/packages/@aws-cdk/toolkit-lib/lib/api/validate/validate-formatting.ts +++ b/packages/@aws-cdk/toolkit-lib/lib/api/validate/validate-formatting.ts @@ -40,7 +40,7 @@ function flattenViolations(reports: PluginReportJson[]): FlattenedViolation[] { const pluginName = report.pluginName; return report.violations.flatMap((violation) => { return violation.violatingConstructs.map((construct) => ({ - severity: normalizeSeverity(violation.severity), + severity: normalizeSeverity(violation.severity, violation.customSeverity), description: violation.description, ruleName: violation.ruleName, pluginName, diff --git a/packages/@aws-cdk/toolkit-lib/test/api/validate/validate-formatting.test.ts b/packages/@aws-cdk/toolkit-lib/test/api/validate/validate-formatting.test.ts index c70ae4ce5..cb95834b3 100644 --- a/packages/@aws-cdk/toolkit-lib/test/api/validate/validate-formatting.test.ts +++ b/packages/@aws-cdk/toolkit-lib/test/api/validate/validate-formatting.test.ts @@ -36,6 +36,24 @@ describe('formatValidateResult', () => { ]); }); + test('uses the plugin-supplied customSeverity label for a "custom" severity violation', () => { + const result = makeResult([{ + pluginName: 'TestPlugin', + conclusion: 'failure', + violations: [{ + ruleName: 'r1', + description: 'blocker issue', + severity: 'custom', + customSeverity: 'BLOCKER', + violatingConstructs: [{ constructPath: 'Stack/A' }], + }], + }]); + + const output = formatValidateResult(result); + expect(output).toContain('BLOCKER'); + expect(output).not.toContain('INFO'); + }); + test('formats construct path with logical id', () => { const result = makeResult([{ pluginName: 'TestPlugin',