mirror of
https://github.com/DavidAnson/markdownlint.git
synced 2025-12-16 22:10:13 +01:00
Use stable URI identifiers for JSON schemas to avoid potential race conditions.
This commit is contained in:
parent
dd6fe21ac7
commit
6720eadad4
1 changed files with 9 additions and 12 deletions
|
|
@ -18,10 +18,10 @@ const rules = require("../lib/rules");
|
||||||
const customRules = require("./rules/rules.js");
|
const customRules = require("./rules/rules.js");
|
||||||
const configSchema = require("../schema/markdownlint-config-schema.json");
|
const configSchema = require("../schema/markdownlint-config-schema.json");
|
||||||
|
|
||||||
const jsonSchemaVersion = "http://json-schema.org/draft-07/schema#";
|
|
||||||
// eslint-disable-next-line max-len
|
|
||||||
const markdownlintConfigSchemaUri = "https://raw.githubusercontent.com/DavidAnson/markdownlint/main/schema/markdownlint-config-schema.json";
|
|
||||||
const deprecatedRuleNames = new Set(constants.deprecatedRuleNames);
|
const deprecatedRuleNames = new Set(constants.deprecatedRuleNames);
|
||||||
|
const jsonSchemaVersion = "http://json-schema.org/draft-07/schema#";
|
||||||
|
const configSchemaUri = "https://example.com/configSchema";
|
||||||
|
const configSchemaStrictUri = "https://example.com/configSchemaStrict";
|
||||||
const configSchemaStrict = {
|
const configSchemaStrict = {
|
||||||
...configSchema,
|
...configSchema,
|
||||||
"additionalProperties": false
|
"additionalProperties": false
|
||||||
|
|
@ -918,8 +918,8 @@ test("validateJsonUsingConfigSchemaStrict", async(t) => {
|
||||||
const { addSchema, validate } =
|
const { addSchema, validate } =
|
||||||
// eslint-disable-next-line n/file-extension-in-import
|
// eslint-disable-next-line n/file-extension-in-import
|
||||||
await import("@hyperjump/json-schema/draft-07");
|
await import("@hyperjump/json-schema/draft-07");
|
||||||
addSchema(configSchemaStrict, markdownlintConfigSchemaUri);
|
addSchema(configSchemaStrict, configSchemaStrictUri);
|
||||||
const validateConfigSchema = await validate(markdownlintConfigSchemaUri);
|
const validateConfigSchema = await validate(configSchemaStrictUri);
|
||||||
const configRe =
|
const configRe =
|
||||||
/^[\s\S]*<!-- markdownlint-configure-file ([\s\S]*) -->[\s\S]*$/;
|
/^[\s\S]*<!-- markdownlint-configure-file ([\s\S]*) -->[\s\S]*$/;
|
||||||
const ignoreFiles = new Set([
|
const ignoreFiles = new Set([
|
||||||
|
|
@ -957,9 +957,7 @@ test("validateConfigSchemaAllowsUnknownProperties", async(t) => {
|
||||||
const { addSchema, validate } =
|
const { addSchema, validate } =
|
||||||
// eslint-disable-next-line n/file-extension-in-import
|
// eslint-disable-next-line n/file-extension-in-import
|
||||||
await import("@hyperjump/json-schema/draft-07");
|
await import("@hyperjump/json-schema/draft-07");
|
||||||
const configSchemaUri = "https://example.com/configSchema";
|
|
||||||
addSchema(configSchema, configSchemaUri);
|
addSchema(configSchema, configSchemaUri);
|
||||||
const configSchemaStrictUri = "https://example.com/configSchemaStrict";
|
|
||||||
addSchema(configSchemaStrict, configSchemaStrictUri);
|
addSchema(configSchemaStrict, configSchemaStrictUri);
|
||||||
const testCases = [
|
const testCases = [
|
||||||
{
|
{
|
||||||
|
|
@ -994,8 +992,8 @@ test("validateConfigSchemaAppliesToUnknownProperties", async(t) => {
|
||||||
const { addSchema, validate } =
|
const { addSchema, validate } =
|
||||||
// eslint-disable-next-line n/file-extension-in-import
|
// eslint-disable-next-line n/file-extension-in-import
|
||||||
await import("@hyperjump/json-schema/draft-07");
|
await import("@hyperjump/json-schema/draft-07");
|
||||||
addSchema(configSchema, markdownlintConfigSchemaUri);
|
addSchema(configSchema, configSchemaUri);
|
||||||
const validateConfigSchema = await validate(markdownlintConfigSchemaUri);
|
const validateConfigSchema = await validate(configSchemaUri);
|
||||||
for (const allowed of [ true, {} ]) {
|
for (const allowed of [ true, {} ]) {
|
||||||
t.true(
|
t.true(
|
||||||
validateConfigSchema({ "property": allowed }, "BASIC").valid,
|
validateConfigSchema({ "property": allowed }, "BASIC").valid,
|
||||||
|
|
@ -1029,9 +1027,8 @@ test("validateConfigExampleJson", async(t) => {
|
||||||
"utf8"
|
"utf8"
|
||||||
);
|
);
|
||||||
const jsonObject = JSON.parse(stripJsonComments(dataJson));
|
const jsonObject = JSON.parse(stripJsonComments(dataJson));
|
||||||
addSchema(configSchemaStrict, markdownlintConfigSchemaUri);
|
addSchema(configSchemaStrict, configSchemaStrictUri);
|
||||||
const result =
|
const result = await validate(configSchemaStrictUri, jsonObject, "BASIC");
|
||||||
await validate(markdownlintConfigSchemaUri, jsonObject, "BASIC");
|
|
||||||
t.true(
|
t.true(
|
||||||
result.valid,
|
result.valid,
|
||||||
`${fileJson}\n${JSON.stringify(result, null, 2)}`
|
`${fileJson}\n${JSON.stringify(result, null, 2)}`
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue