70 lines
1.6 KiB
TypeScript
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);
|
|
},
|
|
);
|
|
});
|