summaryrefslogtreecommitdiff
path: root/std/flags/bool_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'std/flags/bool_test.ts')
-rwxr-xr-xstd/flags/bool_test.ts36
1 files changed, 36 insertions, 0 deletions
diff --git a/std/flags/bool_test.ts b/std/flags/bool_test.ts
index 422ae0933..5ef052e2c 100755
--- a/std/flags/bool_test.ts
+++ b/std/flags/bool_test.ts
@@ -166,3 +166,39 @@ test(function booleanParsingTrueLike(): void {
const parsed3 = parse(["-t", "false123"], { boolean: ["t"] });
assertEquals(parsed3.t, true);
});
+
+test(function booleanNegationAfterBoolean(): void {
+ const parsed = parse(["--foo", "--no-foo"], { boolean: ["foo"] });
+ assertEquals(parsed.foo, false);
+
+ const parsed2 = parse(["--foo", "--no-foo", "123"], { boolean: ["foo"] });
+ assertEquals(parsed2.foo, false);
+});
+
+test(function booleanAfterBooleanNegation(): void {
+ const parsed = parse(["--no--foo", "--foo"], { boolean: ["foo"] });
+ assertEquals(parsed.foo, true);
+
+ const parsed2 = parse(["--no--foo", "--foo", "123"], { boolean: ["foo"] });
+ assertEquals(parsed2.foo, true);
+});
+
+test(function latestFlagIsBooleanNegation(): void {
+ const parsed = parse(["--no-foo", "--foo", "--no-foo"], { boolean: ["foo"] });
+ assertEquals(parsed.foo, false);
+
+ const parsed2 = parse(["--no-foo", "--foo", "--no-foo", "123"], {
+ boolean: ["foo"]
+ });
+ assertEquals(parsed2.foo, false);
+});
+
+test(function latestFlagIsBoolean(): void {
+ const parsed = parse(["--foo", "--no-foo", "--foo"], { boolean: ["foo"] });
+ assertEquals(parsed.foo, true);
+
+ const parsed2 = parse(["--foo", "--no-foo", "--foo", "123"], {
+ boolean: ["foo"]
+ });
+ assertEquals(parsed2.foo, true);
+});