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, '"./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, '"../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, '"./Valid.md#not-existing-heading" should have a valid fragment identifier', ) })