Files
xo-cli/tests/cli/arguments.test.ts

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);
});
});