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