From 2d718f42773e82a4edd7fd0224e6d63cae959bbd Mon Sep 17 00:00:00 2001 From: David Anson Date: Tue, 4 Jan 2022 04:45:53 +0000 Subject: [PATCH] WIP --- test/config-files-cli2-jsonc-alternate.stderr | 5 +++ test/config-files-cli2-jsonc-alternate.stdout | 4 ++ test/config-files-cli2-jsonc-invalid.stdout | 1 + test/config-files-cli2-jsonc.stderr | 5 +++ test/config-files-cli2-jsonc.stdout | 4 ++ test/config-files/cfg/.markdownlint-cli2.js | 11 ++++++ .../config-files/cfg/.markdownlint-cli2.jsonc | 7 ++++ test/config-files/cfg/.markdownlint-cli2.yaml | 4 ++ test/config-files/cfg/.markdownlint.js | 9 +++++ test/config-files/cfg/.markdownlint.json | 5 +++ test/config-files/cfg/.markdownlint.jsonc | 5 +++ test/config-files/cfg/.markdownlint.yaml | 3 ++ test/config-files/cfg/.markdownlint.yml | 3 ++ .../cfg/alternate.markdownlint-cli2.jsonc | 7 ++++ .../cfg/invalid.markdownlint-cli2.jsonc | 1 + test/config-files/dir1/viewme.md | 14 +++++++ .../dir2/.markdownlint-cli2.jsonc | 8 ++++ test/config-files/dir2/viewme.md | 14 +++++++ test/config-files/viewme.md | 14 +++++++ test/markdownlint-cli2-test-cases.js | 37 +++++++++++++++++++ test/one-argument-config.stdout | 37 +++++++++++++++++++ 21 files changed, 198 insertions(+) create mode 100644 test/config-files-cli2-jsonc-alternate.stderr create mode 100644 test/config-files-cli2-jsonc-alternate.stdout create mode 100644 test/config-files-cli2-jsonc-invalid.stdout create mode 100644 test/config-files-cli2-jsonc.stderr create mode 100644 test/config-files-cli2-jsonc.stdout create mode 100644 test/config-files/cfg/.markdownlint-cli2.js create mode 100644 test/config-files/cfg/.markdownlint-cli2.jsonc create mode 100644 test/config-files/cfg/.markdownlint-cli2.yaml create mode 100644 test/config-files/cfg/.markdownlint.js create mode 100644 test/config-files/cfg/.markdownlint.json create mode 100644 test/config-files/cfg/.markdownlint.jsonc create mode 100644 test/config-files/cfg/.markdownlint.yaml create mode 100644 test/config-files/cfg/.markdownlint.yml create mode 100644 test/config-files/cfg/alternate.markdownlint-cli2.jsonc create mode 100644 test/config-files/cfg/invalid.markdownlint-cli2.jsonc create mode 100644 test/config-files/dir1/viewme.md create mode 100644 test/config-files/dir2/.markdownlint-cli2.jsonc create mode 100644 test/config-files/dir2/viewme.md create mode 100644 test/config-files/viewme.md create mode 100644 test/one-argument-config.stdout diff --git a/test/config-files-cli2-jsonc-alternate.stderr b/test/config-files-cli2-jsonc-alternate.stderr new file mode 100644 index 00000000..bdcec5fa --- /dev/null +++ b/test/config-files-cli2-jsonc-alternate.stderr @@ -0,0 +1,5 @@ +dir1/viewme.md:5 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] +dir1/viewme.md:6 MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "# Description"] +dir2/viewme.md:6 MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "# Description"] +viewme.md:5 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] +viewme.md:6 MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "# Description"] diff --git a/test/config-files-cli2-jsonc-alternate.stdout b/test/config-files-cli2-jsonc-alternate.stdout new file mode 100644 index 00000000..148eb8cc --- /dev/null +++ b/test/config-files-cli2-jsonc-alternate.stdout @@ -0,0 +1,4 @@ +markdownlint-cli2-config vX.Y.Z (markdownlint vX.Y.Z) +Finding: **/*.md +Linting: 3 file(s) +Summary: 5 error(s) diff --git a/test/config-files-cli2-jsonc-invalid.stdout b/test/config-files-cli2-jsonc-invalid.stdout new file mode 100644 index 00000000..0d81a209 --- /dev/null +++ b/test/config-files-cli2-jsonc-invalid.stdout @@ -0,0 +1 @@ +markdownlint-cli2-config vX.Y.Z (markdownlint vX.Y.Z) diff --git a/test/config-files-cli2-jsonc.stderr b/test/config-files-cli2-jsonc.stderr new file mode 100644 index 00000000..bdcec5fa --- /dev/null +++ b/test/config-files-cli2-jsonc.stderr @@ -0,0 +1,5 @@ +dir1/viewme.md:5 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] +dir1/viewme.md:6 MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "# Description"] +dir2/viewme.md:6 MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "# Description"] +viewme.md:5 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] +viewme.md:6 MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "# Description"] diff --git a/test/config-files-cli2-jsonc.stdout b/test/config-files-cli2-jsonc.stdout new file mode 100644 index 00000000..148eb8cc --- /dev/null +++ b/test/config-files-cli2-jsonc.stdout @@ -0,0 +1,4 @@ +markdownlint-cli2-config vX.Y.Z (markdownlint vX.Y.Z) +Finding: **/*.md +Linting: 3 file(s) +Summary: 5 error(s) diff --git a/test/config-files/cfg/.markdownlint-cli2.js b/test/config-files/cfg/.markdownlint-cli2.js new file mode 100644 index 00000000..083097d5 --- /dev/null +++ b/test/config-files/cfg/.markdownlint-cli2.js @@ -0,0 +1,11 @@ +// @ts-check + +"use strict"; + +module.exports = { + "config": { + "no-trailing-spaces": false, + "no-multiple-space-atx": false, + "single-trailing-newline": false + } +}; diff --git a/test/config-files/cfg/.markdownlint-cli2.jsonc b/test/config-files/cfg/.markdownlint-cli2.jsonc new file mode 100644 index 00000000..bc8f8c94 --- /dev/null +++ b/test/config-files/cfg/.markdownlint-cli2.jsonc @@ -0,0 +1,7 @@ +{ + "config": { + "no-trailing-spaces": false, + "no-multiple-space-atx": false, + "single-trailing-newline": false + } +} diff --git a/test/config-files/cfg/.markdownlint-cli2.yaml b/test/config-files/cfg/.markdownlint-cli2.yaml new file mode 100644 index 00000000..8f9874a4 --- /dev/null +++ b/test/config-files/cfg/.markdownlint-cli2.yaml @@ -0,0 +1,4 @@ +config: + no-trailing-spaces: false + no-multiple-space-atx: false + single-trailing-newline: false diff --git a/test/config-files/cfg/.markdownlint.js b/test/config-files/cfg/.markdownlint.js new file mode 100644 index 00000000..d39672fd --- /dev/null +++ b/test/config-files/cfg/.markdownlint.js @@ -0,0 +1,9 @@ +// @ts-check + +"use strict"; + +module.exports = { + "no-trailing-spaces": false, + "no-multiple-space-atx": false, + "single-trailing-newline": false +}; diff --git a/test/config-files/cfg/.markdownlint.json b/test/config-files/cfg/.markdownlint.json new file mode 100644 index 00000000..2cbcad62 --- /dev/null +++ b/test/config-files/cfg/.markdownlint.json @@ -0,0 +1,5 @@ +{ + "no-trailing-spaces": false, + "no-multiple-space-atx": false, + "single-trailing-newline": false +} diff --git a/test/config-files/cfg/.markdownlint.jsonc b/test/config-files/cfg/.markdownlint.jsonc new file mode 100644 index 00000000..2cbcad62 --- /dev/null +++ b/test/config-files/cfg/.markdownlint.jsonc @@ -0,0 +1,5 @@ +{ + "no-trailing-spaces": false, + "no-multiple-space-atx": false, + "single-trailing-newline": false +} diff --git a/test/config-files/cfg/.markdownlint.yaml b/test/config-files/cfg/.markdownlint.yaml new file mode 100644 index 00000000..746ca6f2 --- /dev/null +++ b/test/config-files/cfg/.markdownlint.yaml @@ -0,0 +1,3 @@ +no-trailing-spaces: false +no-multiple-space-atx: false +single-trailing-newline: false diff --git a/test/config-files/cfg/.markdownlint.yml b/test/config-files/cfg/.markdownlint.yml new file mode 100644 index 00000000..746ca6f2 --- /dev/null +++ b/test/config-files/cfg/.markdownlint.yml @@ -0,0 +1,3 @@ +no-trailing-spaces: false +no-multiple-space-atx: false +single-trailing-newline: false diff --git a/test/config-files/cfg/alternate.markdownlint-cli2.jsonc b/test/config-files/cfg/alternate.markdownlint-cli2.jsonc new file mode 100644 index 00000000..bc8f8c94 --- /dev/null +++ b/test/config-files/cfg/alternate.markdownlint-cli2.jsonc @@ -0,0 +1,7 @@ +{ + "config": { + "no-trailing-spaces": false, + "no-multiple-space-atx": false, + "single-trailing-newline": false + } +} diff --git a/test/config-files/cfg/invalid.markdownlint-cli2.jsonc b/test/config-files/cfg/invalid.markdownlint-cli2.jsonc new file mode 100644 index 00000000..98232c64 --- /dev/null +++ b/test/config-files/cfg/invalid.markdownlint-cli2.jsonc @@ -0,0 +1 @@ +{ diff --git a/test/config-files/dir1/viewme.md b/test/config-files/dir1/viewme.md new file mode 100644 index 00000000..d60ebf5a --- /dev/null +++ b/test/config-files/dir1/viewme.md @@ -0,0 +1,14 @@ +# Title + +> Tagline + + +# Description + +Text text text +Text text text +Text text text + +## Summary + +Text text text \ No newline at end of file diff --git a/test/config-files/dir2/.markdownlint-cli2.jsonc b/test/config-files/dir2/.markdownlint-cli2.jsonc new file mode 100644 index 00000000..26f2f449 --- /dev/null +++ b/test/config-files/dir2/.markdownlint-cli2.jsonc @@ -0,0 +1,8 @@ +{ + "config": { + "no-trailing-spaces": false, + "no-multiple-blanks": false, + "no-multiple-space-atx": false, + "single-trailing-newline": false + } +} diff --git a/test/config-files/dir2/viewme.md b/test/config-files/dir2/viewme.md new file mode 100644 index 00000000..d60ebf5a --- /dev/null +++ b/test/config-files/dir2/viewme.md @@ -0,0 +1,14 @@ +# Title + +> Tagline + + +# Description + +Text text text +Text text text +Text text text + +## Summary + +Text text text \ No newline at end of file diff --git a/test/config-files/viewme.md b/test/config-files/viewme.md new file mode 100644 index 00000000..d60ebf5a --- /dev/null +++ b/test/config-files/viewme.md @@ -0,0 +1,14 @@ +# Title + +> Tagline + + +# Description + +Text text text +Text text text +Text text text + +## Summary + +Text text text \ No newline at end of file diff --git a/test/markdownlint-cli2-test-cases.js b/test/markdownlint-cli2-test-cases.js index 6c7b5e16..5fbe3f44 100644 --- a/test/markdownlint-cli2-test-cases.js +++ b/test/markdownlint-cli2-test-cases.js @@ -156,6 +156,15 @@ const testCases = "usesScript": true }); + testCase({ + "name": "one-argument-config", + "script": "markdownlint-cli2-config.js", + "args": [ "../config-files/cfg/.markdownlint-cli2.jsonc" ], + "exitCode": 1, + "cwd": "no-config", + "usesScript": true + }); + testCase({ "name": "no-files", "args": [ "nothing-matches" ], @@ -468,6 +477,34 @@ const testCases = "usesScript": true }); + testCase({ + "name": "config-files-cli2-jsonc", + "script": "markdownlint-cli2-config.js", + "args": [ "cfg/.markdownlint-cli2.jsonc", "**/*.md" ], + "exitCode": 1, + "cwd": "config-files", + "usesScript": true + }); + + testCase({ + "name": "config-files-cli2-jsonc-alternate", + "script": "markdownlint-cli2-config.js", + "args": [ "cfg/alternate.markdownlint-cli2.jsonc", "**/*.md" ], + "exitCode": 1, + "cwd": "config-files", + "usesScript": true + }); + + testCase({ + "name": "config-files-cli2-jsonc-invalid", + "script": "markdownlint-cli2-config.js", + "args": [ "cfg/invalid.markdownlint-cli2.jsonc", "**/*.md" ], + "exitCode": 2, + "stderrRe": /Unexpected end of JSON input/u, + "cwd": "config-files", + "usesScript": true + }); + testCase({ "name": "customRules", "args": [ "**/*.md" ], diff --git a/test/one-argument-config.stdout b/test/one-argument-config.stdout new file mode 100644 index 00000000..ce132428 --- /dev/null +++ b/test/one-argument-config.stdout @@ -0,0 +1,37 @@ +markdownlint-cli2-config vX.Y.Z (markdownlint vX.Y.Z) +https://github.com/DavidAnson/markdownlint-cli2 + +Syntax: markdownlint-cli2 glob0 [glob1] [...] [globN] + markdownlint-cli2-fix glob0 [glob1] [...] [globN] + markdownlint-cli2-config config-file glob0 [glob1] [...] [globN] + +Glob expressions (from the globby library): +- * matches any number of characters, but not / +- ? matches a single character, but not / +- ** matches any number of characters, including / +- {} allows for a comma-separated list of "or" expressions +- ! or # at the beginning of a pattern negate the match +- : at the beginning identifies a literal file path + +Dot-only glob: +- The command "markdownlint-cli2 ." would lint every file in the current directory tree which is probably not intended +- Instead, it is mapped to "markdownlint-cli2 *.{md,markdown}" which lints all Markdown files in the current directory +- To lint every file in the current directory tree, the command "markdownlint-cli2 **" can be used instead + +Configuration via: +- .markdownlint-cli2.jsonc +- .markdownlint-cli2.yaml +- .markdownlint-cli2.js +- .markdownlint.jsonc or .markdownlint.json +- .markdownlint.yaml or .markdownlint.yml +- .markdownlint.js + +Cross-platform compatibility: +- UNIX and Windows shells expand globs according to different rules; quoting arguments is recommended +- Some Windows shells don't handle single-quoted (') arguments well; double-quote (") is recommended +- Shells that expand globs do not support negated patterns (!node_modules); quoting is required here +- Some UNIX shells parse exclamation (!) in double-quotes; hashtag (#) is recommended in these cases +- The path separator is forward slash (/) on all platforms; backslash (\) is automatically converted + +The most compatible syntax for cross-platform support: +$ markdownlint-cli2 "**/*.md" "#node_modules"