Add yaml-test-suite (#18301)

This commit is contained in:
fisker Cheung authored and GitHub committed 2025-11-23 04:02:25 +08:00
1 parent 9a571e44dc
commit a3d27e96c6
4 files changed
+6342 -1

No files matched your search

+2 -1
View File
@@ -172,7 +172,8 @@
"serialize-javascript": "7.0.0", "serialize-javascript": "7.0.0",
"tempy": "3.1.0", "tempy": "3.1.0",
"tinybench": "5.1.0", "tinybench": "5.1.0",
"ts-expect": "1.3.0" "ts-expect": "1.3.0",
"yaml-test-suite": "0.0.2"
}, },
"resolutions": { "resolutions": {
"trim": "1.0.1" "trim": "1.0.1"
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,64 @@
import yamlTestSuite from "yaml-test-suite";
const FIXTURE_EXTENSION = ".yaml";
const SKIP = new Set([
// duplicate empty keys are invalid
// https://github.com/eemeli/yaml/blob/92821f2b8164f9831ff5a51f6e5a575e06365742/tests/yaml-test-suite.ts#L20
// Map keys must be unique; "null" is repeated
// https://prettier.io/playground/#N4Igxg9gdgLgprEAuZACAhgHSk1AjbEAGhAgAcYBLaAZ2VHQCdGIB3ABSYTpXQBtW6AJ50SeRujABrODADK6ALZwAMpShxkAM3404JCHgBWcMDADqEsshBlGcPYwBumsROmy5ZSeoDmyGEYAV30QPUVKAODQuAAPMjhGSmVYfgB5BIkYCEZ2CBpKKmgbBAATYhA4zOSEGH4AFUSoJkoHbV1QgqhfPjgARSCIeHa+PRIjGli5P16Boc0kHVHQgEdB+HYWMh4QdBoAWg04UuOKwPRKPj8AYQhFRXQbfj4Krp64AEEYQMo8II3EmoNCMxiAABYwRR8cxgwoObxgOBybiFShOQpCGxgGiiEBOEIASSgJ1gcjASQoH2JchgQl6INCdnycEs6GsKDsDkSLgq6kcME26F8DwZJG8jEcNiESheYqSsHMlFKMDByAAHAAGEj2NaUeyC4WPRYdEh1PCK5WqpAAJhIQT09XQeB4S1BcEUeGOJ1KKnQ3SCQrgADEcg9vn4nv8ICAAL4xoA
"2JQS.yaml",
// Plain value cannot start with a tab character
// https://prettier.io/playground/#N4Igxg9gdgLgprEAuEAzCEkB0oAIswBGAhgE4gA0IEADjAJbQDOyoZpEA7gApkIspiAG07EAniyqFSxMAGs4MAMrEAtnAAy9KHGSphTOFQiEAVnDAwA6jJrIQNUnEOkAbrqkz5ipTVnaAc2QYUgBXIxBDVXpgsIi4AA8aOFJ6dVhhAHlkmRgIUm4IJnoGaHsEABNKEESctIQYYQAVFKgyemc9AwjiqAChOABFUIh4LqFDKlMmBKVAgeHR3SR9CYiARxH4bg4aARBiJgBaHTgKs+qQ4nohQIBhCFVVYnthIWre-rgAQRgQ+kIoW2KS0OnGkxAAAsYKohFZISVnH4wHAlPwSvRXCUxPYwExJCBXOEAJJQc6wJRgVJ0b5kpQwMQDcERRxFOA2Yh2FCOZwpdzVbQuGA7YgBZ7Mqh+UguexiNTvSWpWBWegVGCQ5AADgADFQnJt6E4RWKXitulRGoQVWqNUgAExUUKGJrEQgCVYQuCqQhnc4VDTEPqhUVwABi+Wef0CryBEBAAF940A
"DK95.yaml",
// Insufficient indentation in flow collection
// https://prettier.io/playground/#N4Igxg9gdgLgprEAuEBaABAbQDpWzXdAMwgkIF1cQAaECABxgEtoBnZUAQwCduIB3AAo8E7FJwA2-TgE92tAEbdOYANZwYAZU4BbOABkmUOMiKTWcWhAUArOGBgB1ZfWQh63OBe4A3E4uU1DU16FSMAc2QYbgBXSxALHSYo2Pi4AA96OG4mPVhJAHks5RgIbkEIViZmaDcEABMaEAzi3IQYSQAVbKgeJi9Tc3iqqHCJOABFGIh4QYkLWhtWdM0I8amZkyQzefiAR2n4QT56MRBOVlRjOHqbpujOJgkIgGEIHR1ON0kJJpGxuAAQRg0SYChiR2yhmMcwWIAAFjAdBJHPDql5QmA4JpRNUmD5qjI3GBWPIQD44gBJKC3WCaMA5RiAmmaGAycaw+IeSpwZycVwoDxebJ+JpGbwwY6ccKfTm0ULcbxuGS6X7ynKwRxMeoweHIAAcAAZaJ4DkxPFKZV9tkNaB0FFqdXqkAAmWgxCydTgKMQ7OFwHQKG63er6TijGLSuAAMTKnxBEW+EIgIAAvqmgA
"Y79Y-3.yaml",
]);
// https://github.com/prettier/prettier/issues/18302
const BUGS = new Set([
"DE56-3.yaml",
"DE56-4.yaml",
"JEF9-2.yaml",
"JEF9-3.yaml",
"K3WX.yaml",
"L24T-2.yaml",
]);
runFormatTest(
{
importMeta: import.meta,
snippets: yamlTestSuite.flatMap(({ name, filename, cases }) =>
cases
.map((testCase, index) => {
if (testCase.fail) {
return;
}
const filenameToDisplay =
index === 0
? filename
: filename.slice(0, -FIXTURE_EXTENSION.length) +
`-${index + 1}` +
FIXTURE_EXTENSION;
if (SKIP.has(filenameToDisplay) || BUGS.has(filenameToDisplay)) {
// console.log(testCase);
return;
}
return {
name:
filenameToDisplay +
" - " +
name +
(index === 0 ? "" : `(${index + 1})`),
filename: filenameToDisplay,
code: testCase.yaml,
};
})
.filter(Boolean),
),
},
["yaml"],
);
+8
View File
@@ -7590,6 +7590,7 @@ __metadata:
vnopts: "npm:2.0.3" vnopts: "npm:2.0.3"
wcwidth.js: "npm:2.0.0" wcwidth.js: "npm:2.0.0"
yaml: "npm:1.10.2" yaml: "npm:1.10.2"
yaml-test-suite: "npm:0.0.2"
yaml-unist-parser: "npm:2.1.1" yaml-unist-parser: "npm:2.1.1"
bin: bin:
prettier: ./bin/prettier.cjs prettier: ./bin/prettier.cjs
@@ -9220,6 +9221,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"yaml-test-suite@npm:0.0.2":
version: 0.0.2
resolution: "yaml-test-suite@npm:0.0.2"
checksum: 10/d0c5b2610f78deae40dcbb1d4adb5024190d3cd36e5423d1e554d894087919a6e991ee26bce88717864d64c80764fa4d2964b936b0f7e92c0820da1d75790854
languageName: node
linkType: hard
"yaml-unist-parser@npm:2.1.1": "yaml-unist-parser@npm:2.1.1":
version: 2.1.1 version: 2.1.1
resolution: "yaml-unist-parser@npm:2.1.1" resolution: "yaml-unist-parser@npm:2.1.1"