UNPKG

@sil/args

Version:
97 lines (82 loc) 2.52 kB
import { fixArg, parseArguments, getArgs } from "."; import { ArgType } from "./types"; describe('getArgs', () => { let processArgvBackup: string[]; beforeEach(() => { processArgvBackup = process.argv; // backup the original process.argv }); afterEach(() => { process.argv = processArgvBackup; // restore the original process.argv }); it('should parse process arguments', () => { const mockArgs = ['node', 'script.js', '--arg1','value1', '--arg2','value2']; const expected: ArgType = { arg1: 'value1', arg2: 'value2' }; // replace with actual expected result process.argv = mockArgs; const result = getArgs(); expect(result).toEqual(expected); }); }); describe("fixArg", () => { it("Should convert to a number", () => { expect(fixArg("343")).toBe(343); }); it("Should convert to a string", () => { expect(fixArg("a343")).toBe("a343"); }); it("Should convert to a boolean", () => { expect(fixArg("true")).toBe(true); }); }); describe("parseArguments", () => { it("Should convert the whole object to correct types", () => { const exampleProcessArg = [ "/Users/svd/.nvm/versions/node/v16.14.0/bin/node", "/Users/svd/repos/sil-args/dist/cli.js", "--test", "true", "--removeOld", "false", "--some-object", "henk", "peter", "5", "--another-test-or", "so", "5", "aaaa", "true", ]; const expected = { test: true, removeOld: false, someObject: ["henk", "peter", 5], anotherTestOr: ["so", 5, "aaaa", true], }; expect(parseArguments(exampleProcessArg)).toEqual(expected); }); it("Should convert make an empty key true", () => { const exampleProcessArg = [ "/Users/svd/.nvm/versions/node/v16.14.0/bin/node", "/Users/svd/repos/sil-args/dist/cli.js", "--test", "--removeOld", "false", "--some-object", "henk", "peter", "5", "--another-test-or", "so", "5", "aaaa", "true", ]; const expected = { test: true, removeOld: false, someObject: ["henk", "peter", 5], anotherTestOr: ["so", 5, "aaaa", true], }; expect(parseArguments(exampleProcessArg)).toEqual(expected); }); });