Files
xo-cli/tests/cli/arguments.test.ts
2026-04-20 12:26:35 +00:00

70 lines
1.6 KiB
TypeScript

import { describe, it, expect } from "vitest";
import { convertArgsToObject } from "../../src/cli/arguments";
const testCases = [
{
input: ["-h", "--help", "-m", "--mnemonic-file", "mnemonic.txt"],
expected: {
args: [],
options: { help: "true", mnemonicFile: "mnemonic.txt" },
},
},
{
input: ["-var-requested-satohis", "1000", "-role", "receiver"],
expected: {
args: [],
options: { varRequestedSatohis: "1000", role: "receiver" },
},
},
{
input: [
"-o",
"output.json",
"-var-requested-satohis",
"1000",
"-role",
"receiver",
],
expected: {
args: [],
options: {
output: "output.json",
varRequestedSatohis: "1000",
role: "receiver",
},
},
},
{
input: ["mnemonic", "create", "page", "pencil", "-v", "-o", "mnemonic.txt"],
expected: {
args: ["mnemonic", "create", "page", "pencil"],
options: { verbose: "true", output: "mnemonic.txt" },
},
},
{
input: ["-v", "invitation", "list", "-m", "mnemonicFile"],
expected: {
args: ["invitation", "list"],
options: { verbose: "true", mnemonicFile: "mnemonicFile" },
},
},
{
input: ["--help", "template", "import", "template.json"],
expected: {
args: ["template", "import", "template.json"],
options: { help: "true" },
},
},
];
describe("convertArgsToObject", () => {
it.each(testCases)(
"should split positional args from options",
({ input, expected }) => {
const result = convertArgsToObject(input);
expect(result).toEqual(expected);
},
);
});