From 6abc764d70bd4fe8cbf586b784c6808e6955b66b Mon Sep 17 00:00:00 2001 From: Daniel Martens Date: Wed, 27 Mar 2024 20:48:34 +0100 Subject: [PATCH 1/2] fix: check upper bounds of message line numbers for code blocks --- lib/processor.js | 2 +- tests/lib/processor.js | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/processor.js b/lib/processor.js index 4cf6a71..788ded3 100644 --- a/lib/processor.js +++ b/lib/processor.js @@ -331,7 +331,7 @@ function adjustBlock(block) { const lineInCode = message.line - leadingCommentLines; - if (lineInCode < 1) { + if (lineInCode < 1 || lineInCode >= block.rangeMap.length) { return null; } diff --git a/tests/lib/processor.js b/tests/lib/processor.js index 629c448..be66c9f 100644 --- a/tests/lib/processor.js +++ b/tests/lib/processor.js @@ -755,6 +755,17 @@ describe("processor", () => { }); }); + it("should ignore messages after the code block", () => { + const empty = [ + '```javascript', + '```', + ].join('\n'); + processor.preprocess(empty, 'empty.md'); + const message = { message: 'Empty file', ruleId: null, line: 2 }; + const result = processor.postprocess([[message]], 'empty.md'); + + assert.deepStrictEqual(result, []); + }); }); describe("supportsAutofix", () => { From b45e74941cef4c855e1569208e1b266d55477c05 Mon Sep 17 00:00:00 2001 From: Daniel Martens Date: Sat, 30 Mar 2024 11:33:49 +0100 Subject: [PATCH 2/2] chore: run lint --- tests/lib/processor.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tests/lib/processor.js b/tests/lib/processor.js index be66c9f..a37fe32 100644 --- a/tests/lib/processor.js +++ b/tests/lib/processor.js @@ -757,12 +757,13 @@ describe("processor", () => { it("should ignore messages after the code block", () => { const empty = [ - '```javascript', - '```', - ].join('\n'); - processor.preprocess(empty, 'empty.md'); - const message = { message: 'Empty file', ruleId: null, line: 2 }; - const result = processor.postprocess([[message]], 'empty.md'); + "```javascript", + "```" + ].join("\n"); + + processor.preprocess(empty, "empty.md"); + const message = { message: "Empty file", ruleId: null, line: 2 }; + const result = processor.postprocess([[message]], "empty.md"); assert.deepStrictEqual(result, []); });