Test json superset (#10493)

This commit is contained in:
fisker Cheung authored and GitHub committed 2021-03-14 15:04:35 +02:00
1 parent eadd777cc2
commit 21c81e007d
2 files changed
+79 -1

No files matched your search

+78
View File
@@ -0,0 +1,78 @@
const LINE_SEPARATOR = "\u2028";
const PARAGRAPH_SEPARATOR = "\u2029";
const SPACE = " ";
const LINE_FEED = "\n";
const UNDERSCORE = "_";
const BACKSLASH = "\\";
const SINGLE_QUOTE = "'";
const DOUBLE_QUOTE = '"';
const characters = [LINE_SEPARATOR, PARAGRAPH_SEPARATOR, UNDERSCORE, SPACE];
const characterCode = (character) =>
`U+${character.charCodeAt(0).toString(16).toUpperCase().padStart(4, "0")}`;
run_spec(
{
dirname: __dirname,
snippets: [
...characters.map((character) => ({
name: `json(${characterCode(character)})`,
code: SINGLE_QUOTE + character + SINGLE_QUOTE,
output: DOUBLE_QUOTE + character + DOUBLE_QUOTE + LINE_FEED,
})),
...[...characters, LINE_FEED].map((character) => ({
name: `json(\\${characterCode(character)})`,
code: SINGLE_QUOTE + BACKSLASH + character + SINGLE_QUOTE,
output:
character === UNDERSCORE || character === SPACE
? DOUBLE_QUOTE + character + DOUBLE_QUOTE + LINE_FEED
: DOUBLE_QUOTE + BACKSLASH + character + DOUBLE_QUOTE + LINE_FEED,
})),
...characters.map((character) => ({
name: `json(\\\\${characterCode(character)})`,
code: SINGLE_QUOTE + BACKSLASH + BACKSLASH + character + SINGLE_QUOTE,
output:
DOUBLE_QUOTE +
BACKSLASH +
BACKSLASH +
character +
DOUBLE_QUOTE +
LINE_FEED,
})),
],
},
["json", "json5"]
);
run_spec(
{
dirname: __dirname,
snippets: [
...characters.map((character) => ({
name: `json-stringify(${characterCode(character)})`,
code: SINGLE_QUOTE + character + SINGLE_QUOTE,
output: DOUBLE_QUOTE + character + DOUBLE_QUOTE + LINE_FEED,
})),
...[...characters, LINE_FEED].map((character) => ({
name: `json-stringify(\\${characterCode(character)})`,
code: SINGLE_QUOTE + BACKSLASH + character + SINGLE_QUOTE,
output:
character === UNDERSCORE || character === SPACE
? DOUBLE_QUOTE + character + DOUBLE_QUOTE + LINE_FEED
: DOUBLE_QUOTE + DOUBLE_QUOTE + LINE_FEED,
})),
...characters.map((character) => ({
name: `json-stringify(\\\\${characterCode(character)})`,
code: SINGLE_QUOTE + BACKSLASH + BACKSLASH + character + SINGLE_QUOTE,
output:
DOUBLE_QUOTE +
BACKSLASH +
BACKSLASH +
character +
DOUBLE_QUOTE +
LINE_FEED,
})),
],
},
["json-stringify"]
);
+1 -1
View File
@@ -67,7 +67,7 @@ const categoryParsers = new Map([
"json",
{
parsers: ["json", "json5", "json-stringify"],
verifyParsers: [],
verifyParsers: ["json", "json5", "json-stringify"],
extensions: [".json"],
},
],