From 235afbc915fb9b8d2dffe6bb6738c519a0cc746a Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Mon, 17 Feb 2025 09:52:00 -0500 Subject: [PATCH] Add tests for filename with lowercase, uppercase, slashes, and spaces --- tests/fixtures/filename.md | 5 +++++ tests/plugin.test.js | 15 +++++++++++++++ tests/processor.test.js | 14 ++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 tests/fixtures/filename.md diff --git a/tests/fixtures/filename.md b/tests/fixtures/filename.md new file mode 100644 index 00000000..239fc891 --- /dev/null +++ b/tests/fixtures/filename.md @@ -0,0 +1,5 @@ +# Test + +```js filename="a/b/C D E.js" +console.log("..."); +``` diff --git a/tests/plugin.test.js b/tests/plugin.test.js index f0865a75..b56a3bc2 100644 --- a/tests/plugin.test.js +++ b/tests/plugin.test.js @@ -1436,6 +1436,21 @@ describe("FlatESLint", () => { assert.strictEqual(results[0].messages[4].column, 2); }); + it("parses when file name includes lowercase, uppercase, slashes, and spaces", async () => { + const results = await eslint.lintFiles([ + path.resolve(__dirname, "./fixtures/filename.md"), + ]); + + assert.strictEqual(results.length, 1); + assert.strictEqual(results[0].messages.length, 1); + assert.strictEqual( + results[0].messages[0].message, + "Unexpected console statement.", + ); + assert.strictEqual(results[0].messages[0].line, 4); + assert.strictEqual(results[0].messages[0].column, 1); + }); + // https://github.com/eslint/markdown/issues/181 it("should work when called on nested code blocks in the same file", async () => { /* diff --git a/tests/processor.test.js b/tests/processor.test.js index 41e66400..51ee1b81 100644 --- a/tests/processor.test.js +++ b/tests/processor.test.js @@ -401,6 +401,20 @@ describe("processor", () => { assert.strictEqual(blocks[0].filename, "abc/def.js"); }); + it("should parse a filename with lowercase, uppercase, slashes, and spaces", () => { + const code = + prefix + + [ + "``` js filename='a/b/C D E.js'", + "var answer = 6 * 7;", + "```", + ].join("\n"); + const blocks = processor.preprocess(code); + + assert.strictEqual(blocks.length, 1); + assert.strictEqual(blocks[0].filename, "a/b/C D E.js"); + }); + it("should parse a filename each from two meta", () => { const code = prefix +