Files
test-repo/tests_integration/__tests__/plugin-resolution.js
T
Alexander Kachkaev 7345a38e64 Fix plugin API in globally installed Prettier and introduce optional --plugin-search-dir (#4192)
* Fix plugin API in globally installed Prettier and introduce optional --plugin-search-dir

* Use find-parent-dir instead of find-up and test autoloading (with mocked fn)

* Add two test cases where --plugin-search-dir is not .

* Do not mutate pluginSearchDirs argument in load-plugins.js

* Do not test automatic plugin resolution as mocking of "find-parent-dir" does not work due to rollup

* Document --plugin-search-dir / pluginSearchDirs and improve spacing

* Address @ikatyang's review comments

* Fix require path for third-party

* Undo alphabetic sorting of third-party scripts
2018-05-09 19:17:12 +08:00

102 lines
2.4 KiB
JavaScript

"use strict";
const runPrettier = require("../runPrettier");
const EOL = require("os").EOL;
describe("automatically loads 'prettier-plugin-*'", () => {
runPrettier("plugins/automatic", ["file.txt", "--parser=foo"]).test({
stdout: "foo+contents" + EOL,
stderr: "",
status: 0,
write: []
});
});
describe("automatically loads '@prettier/plugin-*'", () => {
runPrettier("plugins/automatic", ["file.txt", "--parser=bar"]).test({
stdout: "bar+contents" + EOL,
stderr: "",
status: 0,
write: []
});
});
describe("automatically loads 'prettier-plugin-*' from --plugin-search-dir (same as autoload dir)", () => {
runPrettier("plugins/automatic", [
"file.txt",
"--parser=foo",
`--plugin-search-dir=.`
]).test({
stdout: "foo+contents" + EOL,
stderr: "",
status: 0,
write: []
});
});
describe("automatically loads '@prettier/plugin-*' from --plugin-search-dir (same as autoload dir)", () => {
runPrettier("plugins/automatic", [
"file.txt",
"--parser=bar",
`--plugin-search-dir=.`
]).test({
stdout: "bar+contents" + EOL,
stderr: "",
status: 0,
write: []
});
});
describe("automatically loads 'prettier-plugin-*' from --plugin-search-dir (different to autoload dir)", () => {
runPrettier("plugins", [
"automatic/file.txt",
"--parser=foo",
`--plugin-search-dir=automatic`
]).test({
stdout: "foo+contents" + EOL,
stderr: "",
status: 0,
write: []
});
});
describe("automatically loads '@prettier/plugin-*' from --plugin-search-dir (different to autoload dir)", () => {
runPrettier("plugins", [
"automatic/file.txt",
"--parser=bar",
`--plugin-search-dir=automatic`
]).test({
stdout: "bar+contents" + EOL,
stderr: "",
status: 0,
write: []
});
});
describe("does not crash when --plugin-search-dir does not contain node_modules", () => {
runPrettier("plugins/extensions", [
"file.foo",
"--plugin=./plugin",
`--plugin-search-dir=.`
]).test({
stdout: "!contents" + EOL,
stderr: "",
status: 0,
write: []
});
});
describe("crashes when one of --plugin-search-dir does not exist", () => {
runPrettier("plugins/automatic", [
"file.txt",
"--parser=foo",
`--plugin-search-dir=non-existing-dir`,
`--plugin-search-dir=.`
]).test({
stdout: "",
stderr: "non-existing-dir does not exist or is not a directory",
status: 1,
write: []
});
});