summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorEvan Borden <eborden@users.noreply.github.com>2018-09-28 04:05:01 -0400
committerw0rp <w0rp@users.noreply.github.com>2018-09-28 09:05:01 +0100
commita8915d885b79ba8e243c228c9f38dddbcb1c479a (patch)
treee3d0549ec17717a8ad5a3a66c4fb5dbc63d83c07 /test
parenta26b3319a1f37c82be8098b6eae4e6f2985a31eb (diff)
downloadale-a8915d885b79ba8e243c228c9f38dddbcb1c479a.zip
Add better support for Haskell stack compiler tools (#1851)
* Add better support for Haskell stack compiler tools This commit adds support for `stack` as the executable of a tool. This follows a pattern that has been implemented for `bundler`'s tool chain. * Move hlint command to linter file * Add vader test for stack exec handling * Update ghc-mod to support stack execution `ghc-mod` was previously broken into 2 linters. 1. ghc_mod 2. stack_ghc_mod This additional linter is not necessary with proper support for executable variables and `stack exec` handling. * Support stack exec in hfmt * Support stack in hdevtools
Diffstat (limited to 'test')
-rw-r--r--test/command_callback/test_haskell_ghc_mod_command_callbacks.vader10
-rw-r--r--test/command_callback/test_haskell_hlint_command_callbacks.vader4
-rw-r--r--test/fixers/test_hlint_fixer_callback.vader7
-rw-r--r--test/handler/test_haskell_stack_handler.vader7
4 files changed, 22 insertions, 6 deletions
diff --git a/test/command_callback/test_haskell_ghc_mod_command_callbacks.vader b/test/command_callback/test_haskell_ghc_mod_command_callbacks.vader
new file mode 100644
index 00000000..c1cc8597
--- /dev/null
+++ b/test/command_callback/test_haskell_ghc_mod_command_callbacks.vader
@@ -0,0 +1,10 @@
+Before:
+ call ale#assert#SetUpLinterTest('haskell', 'ghc_mod')
+
+After:
+ call ale#assert#TearDownLinterTest()
+
+Execute(Default should use ghc-mod):
+ AssertLinter
+ \ 'ghc-mod',
+ \ ale#Escape('ghc-mod') . ' --map-file %s=%t check %s'
diff --git a/test/command_callback/test_haskell_hlint_command_callbacks.vader b/test/command_callback/test_haskell_hlint_command_callbacks.vader
index fb354ed4..d4ee708c 100644
--- a/test/command_callback/test_haskell_hlint_command_callbacks.vader
+++ b/test/command_callback/test_haskell_hlint_command_callbacks.vader
@@ -1,5 +1,9 @@
Before:
call ale#assert#SetUpLinterTest('haskell', 'hlint')
+
+ let g:ale_haskell_hlint_executable = 'hlint'
+ let g:ale_haskell_hlint_options = ''
+
let b:base_opts = '--color=never --json -'
After:
diff --git a/test/fixers/test_hlint_fixer_callback.vader b/test/fixers/test_hlint_fixer_callback.vader
index 48f26c7c..08f08fae 100644
--- a/test/fixers/test_hlint_fixer_callback.vader
+++ b/test/fixers/test_hlint_fixer_callback.vader
@@ -1,9 +1,4 @@
Before:
- Save g:ale_haskell_hlint_executable
-
- " Use an invalid global executable, so we don't match it.
- let g:ale_haskell_hlint_executable = 'xxxinvalid'
-
call ale#test#SetDirectory('/testplugin/test/fixers')
After:
@@ -17,7 +12,7 @@ Execute(The hlint callback should return the correct default values):
AssertEqual
\ {
\ 'read_temporary_file': 1,
- \ 'command': ale#Escape('xxxinvalid')
+ \ 'command': ale#Escape('hlint')
\ . ' --refactor'
\ . ' --refactor-options="--inplace"'
\ . ' %t',
diff --git a/test/handler/test_haskell_stack_handler.vader b/test/handler/test_haskell_stack_handler.vader
new file mode 100644
index 00000000..07e7e69c
--- /dev/null
+++ b/test/handler/test_haskell_stack_handler.vader
@@ -0,0 +1,7 @@
+Before:
+ runtime ale/handlers/haskell_stack.vim
+
+Execute(Escape stack should correctly identify a stack exec command):
+ AssertEqual
+ \ ale#Escape('stack') . ' exec ' . ale#Escape('hlint') . ' --',
+ \ ale#handlers#haskell_stack#EscapeExecutable('stack', 'hlint')