diff options
author | Jake Zimmerman <zimmerman.jake@gmail.com> | 2017-09-03 11:56:14 -0700 |
---|---|---|
committer | w0rp <w0rp@users.noreply.github.com> | 2017-09-03 19:56:14 +0100 |
commit | 63e8946fc808c19512454b33d641be1a5fd99ce0 (patch) | |
tree | a48101ae352803d9dd1fc7e726ef6ed92e458345 /test/test_sml_command.vader | |
parent | c7fbcb3c02131a4e168290005c1e550b953cb8f4 (diff) | |
download | ale-63e8946fc808c19512454b33d641be1a5fd99ce0.zip |
Detect and use CM files for smlnj (#884)
* Detect and use CM files for smlnj
* Split into two checkers
- one for CM projects
- one for single SML files
* Fix some typos
* Fix error caught by writing tests
We want to actually use `glob` to search in paths upwards from us.
(Previously we were just searching in the current directory every time!)
* Fix errors from former test run
* Write tests for GetCmFile and GetExecutableSmlnj
* Typo in 'smlnj/' fixture filenames
Diffstat (limited to 'test/test_sml_command.vader')
-rw-r--r-- | test/test_sml_command.vader | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/test/test_sml_command.vader b/test/test_sml_command.vader new file mode 100644 index 00000000..5ce8a313 --- /dev/null +++ b/test/test_sml_command.vader @@ -0,0 +1,47 @@ +Before: + runtime ale_linters/sml/sml.vim + runtime ale_linters/sml/smlnj.vim + call ale#test#SetDirectory('/testplugin/test') + +After: + call ale#test#RestoreDirectory() + call ale#linter#Reset() + +# ----- GetCmFile ----- + +Execute(smlnj finds CM file if it exists): + call ale#test#SetFilename('smlnj/cm/foo.sml') + + AssertEqual '/testplugin/test/smlnj/cm/sources.cm', ale#handlers#sml#GetCmFile(bufnr('%')) + +Execute(smlnj finds CM file by searching upwards): + call ale#test#SetFilename('smlnj/cm/path/to/bar.sml') + + AssertEqual '/testplugin/test/smlnj/cm/sources.cm', ale#handlers#sml#GetCmFile(bufnr('%')) + +Execute(smlnj returns '' when no CM file found): + call ale#test#SetFilename('smlnj/file/qux.sml') + + AssertEqual '', ale#handlers#sml#GetCmFile(bufnr('%')) + +# ----- GetExecutableSmlnjCm & GetExecutableSmlnjFile ----- + +Execute(CM-project mode enabled when CM file found): + call ale#test#SetFilename('smlnj/cm/foo.sml') + + AssertEqual 'sml', ale#handlers#sml#GetExecutableSmlnjCm(bufnr('%')) + +Execute(single-file mode disabled when CM file found): + call ale#test#SetFilename('smlnj/cm/foo.sml') + + AssertEqual '', ale#handlers#sml#GetExecutableSmlnjFile(bufnr('%')) + +Execute(CM-project mode disabled when CM file not found): + call ale#test#SetFilename('smlnj/file/qux.sml') + + AssertEqual '', ale#handlers#sml#GetExecutableSmlnjCm(bufnr('%')) + +Execute(single-file mode enabled when CM file found): + call ale#test#SetFilename('smlnj/file/qux.sml') + + AssertEqual 'sml', ale#handlers#sml#GetExecutableSmlnjFile(bufnr('%')) |