summaryrefslogtreecommitdiff
path: root/test/test_parse_command_args.vader
blob: 0103b9672c55ed2cc1bb8cbf6a5b22ca6e9b194a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
After:
  unlet! b:parse_result

  if exists(':ParseTest')
    delcommand ParseTest
  endif

Execute(ale#args#Parse should handle empty input):
  AssertEqual
  \ [{}, ''],
  \ ale#args#Parse([], '')
  AssertEqual
  \ [{}, ''],
  \ ale#args#Parse(['foo', 'bar'], '')

Execute(ale#args#Parse should parse commands correctly):
  AssertEqual
  \ [{'foo': '', 'bar': ''}, 'leave  these  alone'],
  \ ale#args#Parse(['foo', 'bar'], '-foo   -bar  leave  these  alone')
  AssertEqual
  \ [{'foo': ''}, 'leave  these  alone'],
  \ ale#args#Parse(['foo', 'bar'], '-foo   leave  these  alone')

Execute(ale#args#Parse should raise errors for unknown arguments):
  AssertThrows call ale#args#Parse(['foo', 'bar'], '-nope   leave  these  alone')
  AssertEqual 'Invalid argument: -nope', g:vader_exception

Execute(ale#args#Parse should stop parsing arguments after --):
  AssertEqual
  \ [{'foo': ''}, ' --nope  leave  these  alone'],
  \ ale#args#Parse(['foo', 'bar'], '-foo --  --nope  leave  these  alone')
  AssertEqual
  \ [{}, '--'],
  \ ale#args#Parse(['foo', 'bar'], '-- --')
  AssertEqual
  \ [{}, ''],
  \ ale#args#Parse(['foo', 'bar'], '--')

Execute(ale#args#Parse should work for an example command):
  command! -nargs=* ParseTest let b:parse_result = ale#args#Parse(['foo', 'bar'], <q-args>)

  ParseTest
  AssertEqual [{}, ''], b:parse_result

  ParseTest -foo
  AssertEqual [{'foo': ''}, ''], b:parse_result

  ParseTest -foo -bar
  AssertEqual [{'foo': '', 'bar': ''}, ''], b:parse_result

  ParseTest -foo -bar leave  these  alone
  AssertEqual [{'foo': '', 'bar': ''}, 'leave  these  alone'], b:parse_result