diff --git a/test/__fixtures__/ignore-unknown/.prettierignore b/test/__fixtures__/ignore-unknown/.prettierignore new file mode 100644 index 0000000..1615b0c --- /dev/null +++ b/test/__fixtures__/ignore-unknown/.prettierignore @@ -0,0 +1 @@ +ignored.js diff --git a/test/__fixtures__/ignore-unknown/.prettierrc b/test/__fixtures__/ignore-unknown/.prettierrc new file mode 100644 index 0000000..df113ef --- /dev/null +++ b/test/__fixtures__/ignore-unknown/.prettierrc @@ -0,0 +1,10 @@ +{ + "overrides": [ + { + "files": "*.as-js-file", + "options": { + "parser": "babel" + } + } + ] +} diff --git a/test/__fixtures__/ignore-unknown/ignored.js b/test/__fixtures__/ignore-unknown/ignored.js new file mode 100644 index 0000000..e69de29 diff --git a/test/__fixtures__/ignore-unknown/javascript.js b/test/__fixtures__/ignore-unknown/javascript.js new file mode 100644 index 0000000..b029879 --- /dev/null +++ b/test/__fixtures__/ignore-unknown/javascript.js @@ -0,0 +1 @@ +const foo= "bar"; diff --git a/test/__fixtures__/ignore-unknown/override.as-js-file b/test/__fixtures__/ignore-unknown/override.as-js-file new file mode 100644 index 0000000..b029879 --- /dev/null +++ b/test/__fixtures__/ignore-unknown/override.as-js-file @@ -0,0 +1 @@ +const foo= "bar"; diff --git a/test/__fixtures__/ignore-unknown/unkown-file-extension.unknown b/test/__fixtures__/ignore-unknown/unkown-file-extension.unknown new file mode 100644 index 0000000..e2358dc --- /dev/null +++ b/test/__fixtures__/ignore-unknown/unkown-file-extension.unknown @@ -0,0 +1 @@ +PRETTIER diff --git a/test/__fixtures__/ignore-unknown/unkown-filename b/test/__fixtures__/ignore-unknown/unkown-filename new file mode 100644 index 0000000..e2358dc --- /dev/null +++ b/test/__fixtures__/ignore-unknown/unkown-filename @@ -0,0 +1 @@ +PRETTIER diff --git a/test/__tests__/__snapshots__/ignore-unknown.js.snap b/test/__tests__/__snapshots__/ignore-unknown.js.snap new file mode 100644 index 0000000..6e1e56e --- /dev/null +++ b/test/__tests__/__snapshots__/ignore-unknown.js.snap @@ -0,0 +1,44 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Ignored file (stderr) 1`] = `""`; + +exports[`Ignored file (stdout) 1`] = `""`; + +exports[`Ignored file (write) 1`] = `[]`; + +exports[`None exist file (stderr) 1`] = `"[error] No files matching the given patterns were found"`; + +exports[`None exist file (stdout) 1`] = `""`; + +exports[`None exist file (write) 1`] = `[]`; + +exports[`Not matching pattern (stderr) 1`] = `"[error] No files matching the given patterns were found"`; + +exports[`Not matching pattern (stdout) 1`] = `""`; + +exports[`Not matching pattern (write) 1`] = `[]`; + +exports[`ignore-unknown alias (stdout) 1`] = ` +"javascript.js +override.as-js-file" +`; + +exports[`ignore-unknown check (stderr) 1`] = ` +"[warn] javascript.js +[warn] override.as-js-file +[warn] Code style issues found in 2 files. Run Prettier with --write to fix." +`; + +exports[`ignore-unknown check (stdout) 1`] = `"Checking formatting..."`; + +exports[`ignore-unknown check (write) 1`] = `[]`; + +exports[`ignore-unknown dir (stdout) 1`] = ` +"javascript.js +override.as-js-file" +`; + +exports[`ignore-unknown pattern (stdout) 1`] = ` +"javascript.js +override.as-js-file" +`; diff --git a/test/__tests__/ignore-unknown.js b/test/__tests__/ignore-unknown.js new file mode 100644 index 0000000..d28d602 --- /dev/null +++ b/test/__tests__/ignore-unknown.js @@ -0,0 +1,75 @@ +import { runCli } from "../utils"; + +describe("ignore-unknown dir", () => { + runCli("ignore-unknown", [ + ".", + "--ignore-unknown", + "--list-different", + ]).test({ + status: "non-zero", + stderr: "", + write: [], + }); +}); + +describe("ignore-unknown alias", () => { + runCli("ignore-unknown", [ + ".", + "-u", + "--list-different", + ]).test({ + status: "non-zero", + stderr: "", + write: [], + }); +}); + +describe("ignore-unknown pattern", () => { + runCli("ignore-unknown", [ + "*", + "--ignore-unknown", + "--list-different", + ]).test({ + status: "non-zero", + stderr: "", + write: [], + }); +}); + + +describe("ignore-unknown check", () => { + runCli("ignore-unknown", [ + ".", + "--ignore-unknown", + "--check", + ]).test({ + status: 1, + }); +}); + +describe("None exist file", () => { + runCli("ignore-unknown", [ + "non-exist-file", + "--ignore-unknown", + ]).test({ + status: 1, + }); +}); + +describe("Not matching pattern", () => { + runCli("ignore-unknown", [ + "*.non-exist-pattern", + "--ignore-unknown", + ]).test({ + status: 1, + }); +}); + +describe("Ignored file", () => { + runCli("ignore-unknown", [ + "ignored.js", + "--ignore-unknown", + ]).test({ + status: 0, + }); +}); diff --git a/test/utils.js b/test/utils.js index bb87d7f..604d68d 100644 --- a/test/utils.js +++ b/test/utils.js @@ -94,10 +94,10 @@ async function runCommand(dir, args, options) { return { status, stdout, stderr, write }; } -async function runTest(name, expected, result, options) { +async function runTest(name, expected, lazyResult, options) { const title = options.title || ""; test(`${title}(${name})`, async () => { - const value = (await result)[name]; + const value = (await lazyResult())[name]; if (expected !== undefined) { if (name === "status" && expected === "non-zero") { expect(value).not.toBe(0); @@ -113,24 +113,31 @@ async function runTest(name, expected, result, options) { } function runCli(dir, args = [], options = {}) { - const promise = runCommand(dir, args, options); + let promise; + const lazyPromise = async () => { + if (promise) { + return promise; + } + promise = runCommand(dir, args, options); + return promise; + }; const result = { get status() { - return promise.then((result) => result.status); + return lazyPromise().then((result) => result.status); }, get stdout() { - return promise.then((result) => result.stdout); + return lazyPromise().then((result) => result.stdout); }, get stderr() { - return promise.then((result) => result.stderr); + return lazyPromise().then((result) => result.stderr); }, get write() { - return promise.then((result) => result.write); + return lazyPromise().then((result) => result.write); }, test: (tests) => { for (const name of ["status", "stdout", "stderr", "write"]) { const expected = tests[name]; - runTest(name, expected, promise, options); + runTest(name, expected, lazyPromise, options); } return result; },