mirror of
https://github.com/roc-lang/roc.git
synced 2025-10-03 08:34:33 +00:00
Name tests
This commit is contained in:
parent
42bded0aae
commit
e738d5e04e
1 changed files with 18 additions and 8 deletions
|
@ -177,42 +177,52 @@ argStr = \config ->
|
||||||
|
|
||||||
apply = \arg1, arg2 -> andMap arg2 arg1
|
apply = \arg1, arg2 -> andMap arg2 arg1
|
||||||
|
|
||||||
|
# bool undashed long argument is missing
|
||||||
expect
|
expect
|
||||||
parser = argBool { long: "foo", help: NotProvided, short: NotProvided }
|
parser = argBool { long: "foo", help: NotProvided, short: NotProvided }
|
||||||
parse parser ["foo"] == Err MissingRequiredArg
|
parse parser ["foo"] == Err MissingRequiredArg
|
||||||
|
|
||||||
|
# bool dashed long argument without value is missing
|
||||||
expect
|
expect
|
||||||
parser = argBool { long: "foo", help: NotProvided, short: NotProvided }
|
parser = argBool { long: "foo", help: NotProvided, short: NotProvided }
|
||||||
parse parser ["--foo"] == Err MissingRequiredArg
|
parse parser ["--foo"] == Err MissingRequiredArg
|
||||||
|
|
||||||
|
# bool dashed long argument with value is determined true
|
||||||
expect
|
expect
|
||||||
parser = argBool { long: "foo", help: NotProvided, short: NotProvided }
|
parser = argBool { long: "foo", help: NotProvided, short: NotProvided }
|
||||||
parse parser ["--foo", "true"] == Ok True
|
parse parser ["--foo", "true"] == Ok True
|
||||||
|
|
||||||
|
# bool dashed long argument with value is determined false
|
||||||
expect
|
expect
|
||||||
parser = argBool { long: "foo", help: NotProvided, short: NotProvided }
|
parser = argBool { long: "foo", help: NotProvided, short: NotProvided }
|
||||||
parse parser ["--foo", "false"] == Ok False
|
parse parser ["--foo", "false"] == Ok False
|
||||||
|
|
||||||
|
# bool dashed long argument with value is determined wrong type
|
||||||
|
expect
|
||||||
|
parser = argBool { long: "foo", help: NotProvided, short: NotProvided }
|
||||||
|
parse parser ["--foo", "not-a-bool"] == Err WrongType
|
||||||
|
|
||||||
|
# string dashed long argument without value is missing
|
||||||
expect
|
expect
|
||||||
parser = argStr { long: "foo", help: NotProvided, short: NotProvided }
|
parser = argStr { long: "foo", help: NotProvided, short: NotProvided }
|
||||||
parse parser ["--foo"] == Err MissingRequiredArg
|
parse parser ["--foo"] == Err MissingRequiredArg
|
||||||
|
|
||||||
|
# string dashed long argument with value is determined
|
||||||
expect
|
expect
|
||||||
parser = argStr { long: "foo", help: NotProvided, short: NotProvided }
|
parser = argStr { long: "foo", help: NotProvided, short: NotProvided }
|
||||||
parse parser ["--foo", "itsme"] == Ok "itsme"
|
parse parser ["--foo", "itsme"] == Ok "itsme"
|
||||||
|
|
||||||
|
# two string parsers complete cases
|
||||||
expect
|
expect
|
||||||
parser =
|
parser =
|
||||||
succeed (\foo -> \bar -> "foo: \(foo) bar: \(bar)")
|
succeed (\foo -> \bar -> "foo: \(foo) bar: \(bar)")
|
||||||
|> apply (argStr { long: "foo", short: NotProvided, help: NotProvided })
|
|> apply (argStr { long: "foo", short: NotProvided, help: NotProvided })
|
||||||
|> apply (argStr { long: "bar", short: NotProvided, help: NotProvided })
|
|> apply (argStr { long: "bar", short: NotProvided, help: NotProvided })
|
||||||
|
|
||||||
parse parser ["--foo", "true", "--bar", "baz"] == Ok "foo: true bar: baz"
|
cases = [
|
||||||
|
["--foo", "true", "--bar", "baz"],
|
||||||
|
["--bar", "baz", "--foo", "true"],
|
||||||
|
["--foo", "true", "--bar", "baz", "--other", "something"],
|
||||||
|
]
|
||||||
|
|
||||||
expect
|
List.all cases \args -> parse parser args == Ok "foo: true bar: baz"
|
||||||
parser =
|
|
||||||
succeed (\foo -> \bar -> "foo: \(foo) bar: \(bar)")
|
|
||||||
|> apply (argStr { long: "foo", short: NotProvided, help: NotProvided })
|
|
||||||
|> apply (argStr { long: "bar", short: NotProvided, help: NotProvided })
|
|
||||||
|
|
||||||
parse parser ["--foo", "true", "--bar", "baz", "--other", "something"] == Ok "foo: true bar: baz"
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue