55 lines
1.5 KiB
TypeScript
55 lines
1.5 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);
|
|
});
|
|
}); |