From 770ecfbabcf019bf76bf665e2f1ef3b544c46118 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Thu, 6 Aug 2020 23:15:19 +0800 Subject: [PATCH] Add test to confirm `prettier .` work with plugins (#8835) --- .../prettier-plugin-uppercase-rocks/main.js | 1 + .../__snapshots__/patterns-dirs.js.snap | 17 +++++++++++ tests_integration/__tests__/patterns-dirs.js | 29 +++++++++++++++++++ .../cli/dirs/plugins/javascript.js | 1 + .../cli/dirs/plugins/plugin.uppercase-rocks | 1 + .../cli/dirs/plugins/unknown.unknown | 0 tests_integration/env.js | 3 ++ 7 files changed, 52 insertions(+) create mode 100644 tests_integration/cli/dirs/plugins/javascript.js create mode 100644 tests_integration/cli/dirs/plugins/plugin.uppercase-rocks create mode 100644 tests_integration/cli/dirs/plugins/unknown.unknown diff --git a/tests_config/prettier-plugins/prettier-plugin-uppercase-rocks/main.js b/tests_config/prettier-plugins/prettier-plugin-uppercase-rocks/main.js index 7e3aa817d..e1b55eb92 100644 --- a/tests_config/prettier-plugins/prettier-plugin-uppercase-rocks/main.js +++ b/tests_config/prettier-plugins/prettier-plugin-uppercase-rocks/main.js @@ -7,6 +7,7 @@ module.exports = { { name, parsers: [name], + extensions: [`.${name}`], }, ], parsers: { diff --git a/tests_integration/__tests__/__snapshots__/patterns-dirs.js.snap b/tests_integration/__tests__/__snapshots__/patterns-dirs.js.snap index 0c5b197fa..1ef92eb65 100644 --- a/tests_integration/__tests__/__snapshots__/patterns-dirs.js.snap +++ b/tests_integration/__tests__/__snapshots__/patterns-dirs.js.snap @@ -148,3 +148,20 @@ exports[`Negative patterns with explicit files: prettier dir1/a1.js dir2/a2.js ' "dir2/a2.js " `; + +exports[`plugins \`*\` (stderr) 1`] = ` +"[error] No parser could be inferred for file: unknown.unknown +" +`; + +exports[`plugins \`*\` (stdout) 1`] = ` +"javascript.js +plugin.uppercase-rocks +" +`; + +exports[`plugins \`.\` (stdout) 1`] = ` +"javascript.js +plugin.uppercase-rocks +" +`; diff --git a/tests_integration/__tests__/patterns-dirs.js b/tests_integration/__tests__/patterns-dirs.js index 81dbb5089..ebea3c362 100644 --- a/tests_integration/__tests__/patterns-dirs.js +++ b/tests_integration/__tests__/patterns-dirs.js @@ -3,6 +3,7 @@ const path = require("path"); const fs = require("fs"); const runPrettier = require("../runPrettier"); +const { projectRoot } = require("../env"); expect.addSnapshotSerializer(require("../path-serializer")); @@ -58,6 +59,34 @@ testPatterns("Exclude yarn.lock when expanding directories", ["."], { stdout: expect.not.stringContaining("yarn.lock"), }); +const uppercaseRocksPlugin = path.join( + projectRoot, + "tests_config/prettier-plugins/prettier-plugin-uppercase-rocks" +); +describe("plugins `.`", () => { + runPrettier("cli/dirs/plugins", [ + ".", + "-l", + "--plugin", + uppercaseRocksPlugin, + ]).test({ + write: [], + stderr: "", + status: 1, + }); +}); +describe("plugins `*`", () => { + runPrettier("cli/dirs/plugins", [ + "*", + "-l", + "--plugin", + uppercaseRocksPlugin, + ]).test({ + write: [], + status: 1, + }); +}); + if (path.sep === "/") { // Don't use snapshots in these tests as they're conditionally executed on non-Windows only. diff --git a/tests_integration/cli/dirs/plugins/javascript.js b/tests_integration/cli/dirs/plugins/javascript.js new file mode 100644 index 000000000..a3a4c2c64 --- /dev/null +++ b/tests_integration/cli/dirs/plugins/javascript.js @@ -0,0 +1 @@ +const foo = 'bar' diff --git a/tests_integration/cli/dirs/plugins/plugin.uppercase-rocks b/tests_integration/cli/dirs/plugins/plugin.uppercase-rocks new file mode 100644 index 000000000..b3ab174ca --- /dev/null +++ b/tests_integration/cli/dirs/plugins/plugin.uppercase-rocks @@ -0,0 +1 @@ +PrEtTiEr diff --git a/tests_integration/cli/dirs/plugins/unknown.unknown b/tests_integration/cli/dirs/plugins/unknown.unknown new file mode 100644 index 000000000..e69de29bb diff --git a/tests_integration/env.js b/tests_integration/env.js index 9f8f35bfd..23845c553 100644 --- a/tests_integration/env.js +++ b/tests_integration/env.js @@ -15,7 +15,10 @@ const thirdParty = isProduction ? path.join(prettierRootDir, "./third-party") : path.join(prettierRootDir, "./src/common/third-party"); +const projectRoot = path.join(__dirname, ".."); + module.exports = { thirdParty, prettierCli, + projectRoot, };