diff --git a/test/test_optional_arguments.cpp b/test/test_optional_arguments.cpp index 8daf58a5..4d2d4c67 100644 --- a/test/test_optional_arguments.cpp +++ b/test/test_optional_arguments.cpp @@ -19,6 +19,28 @@ DOCTEST_TEST_CASE("Argument '-' is not an optional argument [optional_arguments] REQUIRE(program.get("input") == "-"); } +DOCTEST_TEST_CASE("Argument '-' is not an optional argument but '-l' is [optional_arguments]") { + argparse::ArgumentParser program("test"); + program.add_argument("-l") + .default_value(false) + .implicit_value(true); + program.add_argument("input"); + program.parse_args({ "./test.exe", "-l", "-"}); + REQUIRE(program.get("-l") == true); + REQUIRE(program.get("input") == "-"); +} + +DOCTEST_TEST_CASE("Argument '-l' is an optional argument but '-' is not [optional_arguments]") { + argparse::ArgumentParser program("test"); + program.add_argument("-l") + .default_value(false) + .implicit_value(true); + program.add_argument("input"); + program.parse_args({ "./test.exe", "-", "-l"}); + REQUIRE(program.get("-l") == true); + REQUIRE(program.get("input") == "-"); +} + DOCTEST_TEST_CASE("Parse toggle arguments with implicit value [optional_arguments]") { argparse::ArgumentParser program("test"); program.add_argument("--verbose")