v / vlib / flag / flag_to_edge_case_1_test.v
25 lines · 22 sloc · 874 bytes · dad8e3c7660e7ea0b6ce21264ae58414e6ece4b3
Raw
1import flag
2
3const edge_case = ['appimage', '-v', '3', '-o', '/tmp/lol.appimage', '/home/user/Projects/game/']
4
5pub struct AppImageOptions {
6pub:
7 verbosity int @[short: v; xdoc: 'Verbosity level 1-3']
8 dump_usage bool @[long: help; short: h; xdoc: 'Show this help message and exit']
9 show_version bool @[long: version; xdoc: 'Output version information and exit']
10pub mut:
11 input string @[tail]
12 output string @[short: o; xdoc: 'Path to output (dir/file)']
13 assets []string @[short: a; xdoc: 'Asset dir(s) to include in build']
14}
15
16fn test_edge_case() {
17 aio, no_matches := flag.to_struct[AppImageOptions](edge_case, skip: 1)!
18 assert aio.verbosity == 3
19 assert aio.output == '/tmp/lol.appimage'
20 assert aio.input == '/home/user/Projects/game/'
21 assert aio.dump_usage == false
22 assert aio.show_version == false
23 assert aio.assets == []
24 assert no_matches == []
25}
26