diff --git a/src/public/app/widgets/type_widgets/linters/mermaid.spec.ts b/src/public/app/widgets/type_widgets/linters/mermaid.spec.ts index 458d1649a..856793298 100644 --- a/src/public/app/widgets/type_widgets/linters/mermaid.spec.ts +++ b/src/public/app/widgets/type_widgets/linters/mermaid.spec.ts @@ -17,12 +17,11 @@ describe("Mermaid linter", () => { `; const result = await validateMermaid(input); - expect(result.length).toBe(1); - expect(result[0].message).toSatisfy((v: string) => v.includes("Expecting 'SPACE'")); - expect(result[0]).toMatchObject({ + expect(result).toMatchObject([{ + message: "Expecting 'SPACE', 'NL', 'SD', got 'ID'", from: { line: 0, col: 0 }, to: { line: 0, col: 1 } - }); + }]); }); it("reports correctly basic arrow missing in diagram", async () => { @@ -35,11 +34,10 @@ describe("Mermaid linter", () => { `; const result = await validateMermaid(input); - expect(result.length).toBe(1); - expect(result[0].message).toSatisfy((v: string) => v.includes("Expecting 'ARROW_DELIMITER'")); - expect(result[0]).toMatchObject({ + expect(result).toMatchObject([{ + message: "Expecting 'ARROW_DELIMITER', got 'MINUS'", from: { line: 3, col: 8 }, to: { line: 3, col: 9 } - }); + }]); }); }); diff --git a/src/public/app/widgets/type_widgets/linters/mermaid.ts b/src/public/app/widgets/type_widgets/linters/mermaid.ts index 34048ba60..e0773e652 100644 --- a/src/public/app/widgets/type_widgets/linters/mermaid.ts +++ b/src/public/app/widgets/type_widgets/linters/mermaid.ts @@ -39,9 +39,14 @@ export async function validateMermaid(text: string) { firstCol = 0; } + let messageLines = mermaidError.message.split("\n"); + if (messageLines.length >= 4) { + messageLines = messageLines.slice(3); + } + return [ { - message: mermaidError.message, + message: messageLines.join("\n"), severity: "error", from: CodeMirror.Pos(loc.first_line - 1, firstCol), to: CodeMirror.Pos(loc.last_line - 1, lastCol)