summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColby Dehart <colbydehart@gmail.com>2018-06-06 22:58:32 -0500
committerColby Dehart <colbydehart@gmail.com>2018-06-07 10:09:08 -0500
commitf0f569f14a18459dcd99a381c5776f7464dfb125 (patch)
tree82b9e50d19d298b7d69dd3fa2ecc0a374edabd69
parent81739be0a04956458471f196874d4206b21e60fb (diff)
downloadale-f0f569f14a18459dcd99a381c5776f7464dfb125.zip
added test for command callback
-rw-r--r--ale_linters/elixir/mix.vim11
-rw-r--r--test/command_callback/test_elixir_mix_command_callbacks.vader36
2 files changed, 46 insertions, 1 deletions
diff --git a/ale_linters/elixir/mix.vim b/ale_linters/elixir/mix.vim
index c4beb42d..25ee8fb8 100644
--- a/ale_linters/elixir/mix.vim
+++ b/ale_linters/elixir/mix.vim
@@ -30,8 +30,16 @@ function! ale_linters#elixir#mix#Handle(buffer, lines) abort
return l:output
endfunction
+function! ale_linters#elixir#mix#FindProjectRoot(buffer) abort
+ let l:project_root = ale#path#FindNearestFile(a:buffer, 'mix.exs')
+ if !empty(l:project_root)
+ return fnamemodify(l:project_root, ':h')
+ endif
+ return ''
+endfunction
+
function! ale_linters#elixir#mix#GetCommand(buffer) abort
- let l:project_root = fnamemodify(ale#path#FindNearestFile(a:buffer, 'mix.exs'), ':h')
+ let l:project_root = ale_linters#elixir#mix#FindProjectRoot(a:buffer)
let l:temp_dir = ale#engine#CreateDirectory(a:buffer)
@@ -49,4 +57,5 @@ call ale#linter#Define('elixir', {
\ 'executable': 'mix',
\ 'command_callback': 'ale_linters#elixir#mix#GetCommand',
\ 'callback': 'ale_linters#elixir#mix#Handle',
+\ 'lint_file': 1,
\})
diff --git a/test/command_callback/test_elixir_mix_command_callbacks.vader b/test/command_callback/test_elixir_mix_command_callbacks.vader
new file mode 100644
index 00000000..28c09e33
--- /dev/null
+++ b/test/command_callback/test_elixir_mix_command_callbacks.vader
@@ -0,0 +1,36 @@
+Before:
+ runtime ale_linters/elixir/mix.vim
+
+ call ale#test#SetDirectory('/testplugin/test/command_callback')
+
+ let g:env_prefix = has('win32')
+ \ ? 'set MIX_BUILD_PATH=TEMP && '
+ \ : 'MIX_BUILD_PATH=TEMP '
+
+
+ function! GetCommand() abort
+ let l:command = ale_linters#elixir#mix#GetCommand(bufnr(''))
+
+ let l:split_command = split(l:command, 'MIX_BUILD_PATH=[^ ]*\s')
+
+ return l:split_command[0] . 'MIX_BUILD_PATH=TEMP' . l:split_command[1]
+ endfunction
+
+
+
+After:
+ Restore
+
+ unlet! g:env_prefix
+
+ call ale#linter#Reset()
+ call ale#test#RestoreDirectory()
+
+ delfunction GetCommand
+
+Execute(The default mix command should be correct):
+ AssertEqual
+ \ GetCommand(),
+ \ 'cd '''' && '
+ \ . g:env_prefix
+ \ . 'mix compile %s'