import yargs from "yargs" import { parseArgs, CliArgs } from "../lib-js/cli-args" // mock the compiler, since we don't actually care that it's created jest.mock("../lib-js/compiler") function wrap(yargs: yargs.Argv<{}>): yargs.Argv<{}> { return yargs.fail((msg, error) => { throw error }) } async function parseTestArgs(args: string): Promise { return await parseArgs(args.split(" "), wrap) } describe("getArgs", () => { it("requires one of --dart or --command", () => { expect(() => parseTestArgs("")).rejects.toThrow( "Must specify --dart or --command" ) }) it("populates impl based on --dart", async () => { const argv = await parseTestArgs("--dart ../dart-sass") expect(argv.impl).toEqual("dart-sass") }) it("populates the todoMode field based on --run-todo and --probe-todo", async () => { const argv = await parseTestArgs("--dart ../dart-sass --run-todo") expect(argv.todoMode).toEqual("run") const argv2 = await parseTestArgs("--dart ../dart-sass --probe-todo") expect(argv2.todoMode).toEqual("probe") }) })