2025-10-09 22:00:33 +08:00
|
|
|
import { createTwoFilesPatch } from "diff";
|
|
|
|
|
|
2021-05-09 20:43:10 +08:00
|
|
|
test("show external options with `--help`", async () => {
|
2023-04-11 08:44:23 +08:00
|
|
|
const originalStdout = await runCli("plugins/options", ["--help"]).stdout;
|
|
|
|
|
const pluggedStdout = await runCli("plugins/options", [
|
2018-01-28 00:24:25 +08:00
|
|
|
"--help",
|
2021-12-03 15:41:12 +08:00
|
|
|
"--plugin=./plugin.cjs",
|
2018-01-28 00:24:25 +08:00
|
|
|
]).stdout;
|
2021-05-09 20:43:10 +08:00
|
|
|
|
2025-10-09 22:00:33 +08:00
|
|
|
expect(
|
|
|
|
|
createTwoFilesPatch(
|
|
|
|
|
"Without plugin",
|
|
|
|
|
"With plugin",
|
|
|
|
|
originalStdout,
|
|
|
|
|
pluggedStdout,
|
|
|
|
|
),
|
|
|
|
|
).toMatchSnapshot();
|
2018-01-28 00:24:25 +08:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
describe("show detailed external option with `--help foo-option`", () => {
|
2023-04-11 08:44:23 +08:00
|
|
|
runCli("plugins/options", [
|
2021-12-03 15:41:12 +08:00
|
|
|
"--plugin=./plugin.cjs",
|
2018-01-28 00:24:25 +08:00
|
|
|
"--help",
|
|
|
|
|
"foo-option",
|
|
|
|
|
]).test({
|
|
|
|
|
status: 0,
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
2020-05-25 14:03:20 +03:00
|
|
|
describe("include plugin's parsers to the values of the `parser` option`", () => {
|
2023-04-11 08:44:23 +08:00
|
|
|
runCli("plugins/options", ["--plugin=./plugin.cjs", "--help", "parser"]).test(
|
|
|
|
|
{
|
|
|
|
|
status: 0,
|
|
|
|
|
},
|
|
|
|
|
);
|
2020-05-25 14:03:20 +03:00
|
|
|
});
|
|
|
|
|
|
2018-01-28 00:24:25 +08:00
|
|
|
describe("external options from CLI should work", () => {
|
2023-04-11 08:44:23 +08:00
|
|
|
runCli(
|
2018-01-28 00:24:25 +08:00
|
|
|
"plugins/options",
|
|
|
|
|
[
|
2021-12-03 15:41:12 +08:00
|
|
|
"--plugin=./plugin.cjs",
|
2018-01-28 00:24:25 +08:00
|
|
|
"--stdin-filepath",
|
|
|
|
|
"example.foo",
|
|
|
|
|
"--foo-option",
|
|
|
|
|
"baz",
|
|
|
|
|
],
|
|
|
|
|
{ input: "hello-world" },
|
|
|
|
|
).test({
|
|
|
|
|
stdout: "foo:baz",
|
|
|
|
|
stderr: "",
|
|
|
|
|
status: 0,
|
|
|
|
|
write: [],
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
describe("external options from config file should work", () => {
|
2023-04-11 08:44:23 +08:00
|
|
|
runCli(
|
2018-01-28 00:24:25 +08:00
|
|
|
"plugins/options",
|
|
|
|
|
["--config=./config.json", "--stdin-filepath", "example.foo"],
|
|
|
|
|
{ input: "hello-world" },
|
|
|
|
|
).test({
|
|
|
|
|
stdout: "foo:baz",
|
|
|
|
|
stderr: "",
|
|
|
|
|
status: 0,
|
|
|
|
|
write: [],
|
|
|
|
|
});
|
|
|
|
|
});
|