@@ -8,6 +8,16 @@ defmodule OnigumoCLITest do
8
8
"uploader"
9
9
]
10
10
11
+ @ invalid_switches [
12
+ "--invalid" ,
13
+ "-c"
14
+ ]
15
+
16
+ @ working_dir_switches [
17
+ "--working-dir" ,
18
+ "-C"
19
+ ]
20
+
11
21
describe ( "Onigumo.CLI.main/1" ) do
12
22
for argument <- @ invalid_arguments do
13
23
test ( "run CLI with invalid argument #{ inspect ( argument ) } " ) do
@@ -23,18 +33,33 @@ defmodule OnigumoCLITest do
23
33
assert usage_message_printed? ( fn -> Onigumo.CLI . main ( [ "Downloader" , "Parser" ] ) end )
24
34
end
25
35
26
- test ( "run CLI with invalid switch" ) do
27
- assert usage_message_printed? ( fn -> Onigumo.CLI . main ( [ "--invalid" ] ) end )
36
+ for switch <- @ invalid_switches do
37
+ test ( "run CLI with invalid switch #{ inspect ( switch ) } " ) do
38
+ assert usage_message_printed? ( fn -> Onigumo.CLI . main ( [ unquote ( switch ) ] ) end )
39
+ end
28
40
end
29
41
30
42
@ tag :tmp_dir
31
43
test ( "run CLI with 'downloader' argument passing cwd" , % { tmp_dir: tmp_dir } ) do
32
- expect ( OnigumoDownloaderMock , :main , fn root_path -> root_path end )
44
+ expect ( OnigumoDownloaderMock , :main , fn working_dir -> working_dir end )
33
45
34
46
File . cd ( tmp_dir )
35
47
assert Onigumo.CLI . main ( [ "downloader" ] ) == tmp_dir
36
48
end
37
49
50
+ for switch <- @ working_dir_switches do
51
+ @ tag :tmp_dir
52
+ test ( "run CLI 'downloader' with #{ inspect ( switch ) } switch" , % { tmp_dir: tmp_dir } ) do
53
+ expect ( OnigumoDownloaderMock , :main , fn working_dir -> working_dir end )
54
+
55
+ assert Onigumo.CLI . main ( [ "downloader" , unquote ( switch ) , tmp_dir ] ) == tmp_dir
56
+ end
57
+
58
+ test ( "run CLI 'downloader' with #{ inspect ( switch ) } without any value" ) do
59
+ assert usage_message_printed? ( fn -> Onigumo.CLI . main ( [ "downloader" , unquote ( switch ) ] ) end )
60
+ end
61
+ end
62
+
38
63
defp usage_message_printed? ( function ) do
39
64
output = capture_io ( function )
40
65
String . starts_with? ( output , "Usage: onigumo " )
0 commit comments