diff --git a/packages/formatters/src/__tests__/markdown.test.ts b/packages/formatters/src/__tests__/markdown.test.ts index 00036dd72..63fcfb19f 100644 --- a/packages/formatters/src/__tests__/markdown.test.ts +++ b/packages/formatters/src/__tests__/markdown.test.ts @@ -126,4 +126,16 @@ describe('Markdown formatter', () => { expect(normalizedMd).toEqual(normalizedExpectedMd); }); + + test('renders warnings regardless of failSeverity (#2928)', () => { + const CRLF = '\r\n'; + // failSeverity defaults to "error"; warnings must still be rendered, since + // display-only-failures filtering already happens in the CLI before formatting. + const md = markdown(results, { failSeverity: DiagnosticSeverity.Error }, context); + + const normalizedMd = md.replace(new RegExp(CRLF, 'g'), '\n').trim(); + const normalizedExpectedMd = expectedMd.replace(new RegExp(CRLF, 'g'), '\n').trim(); + + expect(normalizedMd).toEqual(normalizedExpectedMd); + }); }); diff --git a/packages/formatters/src/markdown.ts b/packages/formatters/src/markdown.ts index cea57f6ed..56244de08 100644 --- a/packages/formatters/src/markdown.ts +++ b/packages/formatters/src/markdown.ts @@ -5,7 +5,7 @@ import { DiagnosticSeverity } from '@stoplight/types'; import markdownEscape from 'markdown-escape'; import { getRuleDocumentationUrl } from './utils/getDocumentationUrl'; -export const markdown: Formatter = (results, { failSeverity }, ctx?: FormatterContext) => { +export const markdown: Formatter = (results, _options, ctx?: FormatterContext) => { const groupedResults = groupBySource(results); const lines: string[][] = []; @@ -13,9 +13,7 @@ export const markdown: Formatter = (results, { failSeverity }, ctx?: FormatterCo validationResults.sort((a, b) => a.range.start.line - b.range.start.line); if (validationResults.length > 0) { - const filteredValidationResults = validationResults.filter(result => result.severity <= failSeverity); - - for (const result of filteredValidationResults) { + for (const result of validationResults) { const ruleDocumentationUrl = getRuleDocumentationUrl(result.code, ctx); const codeWithOptionalLink = ruleDocumentationUrl != null