Add Node 20 to CI matrix, update test cases to handle new error strings in Node 20.

This commit is contained in:
David Anson 2023-04-18 19:55:56 -07:00 committed by GitHub
parent 2cef1d1b3f
commit 0cf81e4ef4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 7 deletions

View file

@ -18,7 +18,7 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
os: [macos-latest, ubuntu-latest, windows-latest] os: [macos-latest, ubuntu-latest, windows-latest]
node-version: [ 14, 16, 18 ] node-version: [ 14, 16, 18, 20 ]
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3

View file

@ -252,7 +252,7 @@ test("configBadHybrid", (t) => new Promise((resolve) => {
t.true(err instanceof Error, "Error not instance of Error."); t.true(err instanceof Error, "Error not instance of Error.");
t.truthy(err.message.match( t.truthy(err.message.match(
// eslint-disable-next-line max-len // eslint-disable-next-line max-len
/^Unable to parse '[^']*'; Parser \d+: Unexpected token \S+ in JSON at position \d+;/ /^Unable to parse '[^']*'; Parser \d+: (Unexpected token|Expected property name)/
), "Error message unexpected."); ), "Error message unexpected.");
t.true(!result, "Got result for bad child JSON."); t.true(!result, "Got result for bad child JSON.");
resolve(); resolve();
@ -333,7 +333,7 @@ test("configBadJsonSync", (t) => {
{ {
"message": "message":
// eslint-disable-next-line max-len // eslint-disable-next-line max-len
/Unable to parse '[^']*'; Parser \d+: Unexpected token \S+ in JSON at position \d+/ /Unable to parse '[^']*'; Parser \d+: (Unexpected token|Expected property name)/
}, },
"Did not get correct exception for bad JSON." "Did not get correct exception for bad JSON."
); );
@ -348,7 +348,7 @@ test("configBadChildJsonSync", (t) => {
{ {
"message": "message":
// eslint-disable-next-line max-len // eslint-disable-next-line max-len
/Unable to parse '[^']*'; Parser \d+: Unexpected token \S+ in JSON at position \d+/ /Unable to parse '[^']*'; Parser \d+: (Unexpected token|Expected property name)/
}, },
"Did not get correct exception for bad child JSON." "Did not get correct exception for bad child JSON."
); );
@ -442,7 +442,7 @@ test("configBadHybridSync", (t) => {
}, },
{ {
// eslint-disable-next-line max-len // eslint-disable-next-line max-len
"message": /^Unable to parse '[^']*'; Parser \d+: Unexpected token \S+ in JSON at position \d+;/ "message": /^Unable to parse '[^']*'; Parser \d+: (Unexpected token|Expected property name)/
}, },
"Did not get correct exception for bad content." "Did not get correct exception for bad content."
); );

View file

@ -1158,7 +1158,7 @@ test("customRulesLintJavaScript", (t) => new Promise((resolve) => {
})); }));
test("customRulesValidateJson", (t) => new Promise((resolve) => { test("customRulesValidateJson", (t) => new Promise((resolve) => {
t.plan(2); t.plan(3);
const options = { const options = {
"customRules": customRules.validateJson, "customRules": customRules.validateJson,
"files": "test/validate-json.md" "files": "test/validate-json.md"
@ -1172,13 +1172,18 @@ test("customRulesValidateJson", (t) => new Promise((resolve) => {
"ruleNames": [ "validate-json" ], "ruleNames": [ "validate-json" ],
"ruleDescription": "Rule that validates JSON code", "ruleDescription": "Rule that validates JSON code",
"ruleInformation": null, "ruleInformation": null,
"errorDetail": "Unexpected end of JSON input",
"errorContext": null, "errorContext": null,
"errorRange": null, "errorRange": null,
"fixInfo": null "fixInfo": null
} }
] ]
}; };
t.true(
actual && (actual["test/validate-json.md"][0].errorDetail.length > 0),
"Missing errorDetail"
);
// @ts-ignore
delete actual["test/validate-json.md"][0].errorDetail;
t.deepEqual(actual, expected, "Unexpected issues."); t.deepEqual(actual, expected, "Unexpected issues.");
resolve(); resolve();
}); });