diff options
Diffstat (limited to 'std/flags/unknown_test.ts')
-rwxr-xr-x | std/flags/unknown_test.ts | 40 |
1 files changed, 25 insertions, 15 deletions
diff --git a/std/flags/unknown_test.ts b/std/flags/unknown_test.ts index 90c638b67..0d822144d 100755 --- a/std/flags/unknown_test.ts +++ b/std/flags/unknown_test.ts @@ -4,12 +4,12 @@ import { parse } from "./mod.ts"; Deno.test(function booleanAndAliasIsNotUnknown(): void { const unknown: unknown[] = []; - function unknownFn(arg: unknown): boolean { - unknown.push(arg); + function unknownFn(arg: string, k?: string, v?: unknown): boolean { + unknown.push({ arg, k, v }); return false; } const aliased = ["-h", "true", "--derp", "true"]; - const regular = ["--herp", "true", "-d", "true"]; + const regular = ["--herp", "true", "-d", "false"]; const opts = { alias: { h: "herp" }, boolean: "h", @@ -18,20 +18,27 @@ Deno.test(function booleanAndAliasIsNotUnknown(): void { parse(aliased, opts); parse(regular, opts); - assertEquals(unknown, ["--derp", "-d"]); + assertEquals(unknown, [ + { arg: "--derp", k: "derp", v: "true" }, + { arg: "-d", k: "d", v: "false" }, + ]); }); Deno.test(function flagBooleanTrueAnyDoubleHyphenArgumentIsNotUnknown(): void { const unknown: unknown[] = []; - function unknownFn(arg: unknown): boolean { - unknown.push(arg); + function unknownFn(arg: string, k?: string, v?: unknown): boolean { + unknown.push({ arg, k, v }); return false; } const argv = parse(["--honk", "--tacos=good", "cow", "-p", "55"], { boolean: true, unknown: unknownFn, }); - assertEquals(unknown, ["--tacos=good", "cow", "-p"]); + assertEquals(unknown, [ + { arg: "--tacos=good", k: "tacos", v: "good" }, + { arg: "cow", k: undefined, v: undefined }, + { arg: "-p", k: "p", v: "55" }, + ]); assertEquals(argv, { honk: true, _: [], @@ -40,8 +47,8 @@ Deno.test(function flagBooleanTrueAnyDoubleHyphenArgumentIsNotUnknown(): void { Deno.test(function stringAndAliasIsNotUnkown(): void { const unknown: unknown[] = []; - function unknownFn(arg: unknown): boolean { - unknown.push(arg); + function unknownFn(arg: string, k?: string, v?: unknown): boolean { + unknown.push({ arg, k, v }); return false; } const aliased = ["-h", "hello", "--derp", "goodbye"]; @@ -54,13 +61,16 @@ Deno.test(function stringAndAliasIsNotUnkown(): void { parse(aliased, opts); parse(regular, opts); - assertEquals(unknown, ["--derp", "-d"]); + assertEquals(unknown, [ + { arg: "--derp", k: "derp", v: "goodbye" }, + { arg: "-d", k: "d", v: "moon" }, + ]); }); Deno.test(function defaultAndAliasIsNotUnknown(): void { const unknown: unknown[] = []; - function unknownFn(arg: unknown): boolean { - unknown.push(arg); + function unknownFn(arg: string, k?: string, v?: unknown): boolean { + unknown.push({ arg, k, v }); return false; } const aliased = ["-h", "hello"]; @@ -78,8 +88,8 @@ Deno.test(function defaultAndAliasIsNotUnknown(): void { Deno.test(function valueFollowingDoubleHyphenIsNotUnknown(): void { const unknown: unknown[] = []; - function unknownFn(arg: unknown): boolean { - unknown.push(arg); + function unknownFn(arg: string, k?: string, v?: unknown): boolean { + unknown.push({ arg, k, v }); return false; } const aliased = ["--bad", "--", "good", "arg"]; @@ -89,7 +99,7 @@ Deno.test(function valueFollowingDoubleHyphenIsNotUnknown(): void { }; const argv = parse(aliased, opts); - assertEquals(unknown, ["--bad"]); + assertEquals(unknown, [{ arg: "--bad", k: "bad", v: true }]); assertEquals(argv, { "--": ["good", "arg"], _: [], |