From 5983507255c8f725ee36ff53f6f8ecb2cb41e607 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BF=B7=E6=B8=A1?= Date: Wed, 16 Oct 2019 23:34:36 +0800 Subject: [PATCH] std/flags: Add test for multiple boolean flags (#3103) --- std/flags/bool_test.ts | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/std/flags/bool_test.ts b/std/flags/bool_test.ts index 422ae093..5ef052e2 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); +}); -- GitLab