markdownlint-rule-relative-.../test/basic.test.js

47 lines
1.4 KiB
JavaScript

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',
)
})