const test = require("node:test") const assert = require("node:assert/strict") const { markdownlint } = require("markdownlint").promises const relativeLinks = require("../src/index.js") test("ensure the rule validate correctly", async () => { const lintResults = await markdownlint({ files: ["test/fixtures/Valid.md", "test/fixtures/Invalid.md"], config: { default: false, "relative-links": true, }, customRules: [relativeLinks], }) assert.equal(lintResults["test/fixtures/Valid.md"].length, 0) assert.equal(lintResults["test/fixtures/Invalid.md"].length, 3) assert.equal( lintResults["test/fixtures/Invalid.md"][0]?.ruleDescription, "Relative links should be valid", ) assert.equal( lintResults["test/fixtures/Invalid.md"][0]?.errorDetail, 'Link "./basic.test.js" should exist in the file system', ) assert.equal( lintResults["test/fixtures/Invalid.md"][1]?.ruleDescription, "Relative links should be valid", ) assert.equal( lintResults["test/fixtures/Invalid.md"][1]?.errorDetail, 'Link "../image.png" should exist in the file system', ) assert.equal( lintResults["test/fixtures/Invalid.md"][2]?.ruleDescription, "Relative links should be valid", ) assert.equal( lintResults["test/fixtures/Invalid.md"][2]?.errorDetail, 'Link "./Valid.md#not-existing-heading" should have a valid fragment', ) })