summaryrefslogtreecommitdiff
path: root/std/flags/unknown_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'std/flags/unknown_test.ts')
-rwxr-xr-xstd/flags/unknown_test.ts40
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"],
_: [],