From 8b34a4bf6b837e1ce7e060b053ec8abedd20cdb1 Mon Sep 17 00:00:00 2001 From: w0rp Date: Mon, 26 Mar 2018 09:55:18 +0100 Subject: Fix config and executable issues with the textlint linter --- .../test_textlint_command_callbacks.vader | 91 ++++++++++++++++++++++ .../with_bin_path/node_modules/.bin/textlint | 0 .../textlint_paths/with_config_path/.textlintrc | 0 .../node_modules/textlint/bin/textlint.js | 0 4 files changed, 91 insertions(+) create mode 100644 test/command_callback/test_textlint_command_callbacks.vader create mode 100755 test/command_callback/textlint_paths/with_bin_path/node_modules/.bin/textlint create mode 100644 test/command_callback/textlint_paths/with_config_path/.textlintrc create mode 100755 test/command_callback/textlint_paths/with_textlint_bin_path/node_modules/textlint/bin/textlint.js (limited to 'test') diff --git a/test/command_callback/test_textlint_command_callbacks.vader b/test/command_callback/test_textlint_command_callbacks.vader new file mode 100644 index 00000000..864ad8f7 --- /dev/null +++ b/test/command_callback/test_textlint_command_callbacks.vader @@ -0,0 +1,91 @@ +" Author: januswel, w0rp + +Before: + Save g:ale_textlint_executable + Save g:ale_textlint_use_global + Save g:ale_textlint_options + + unlet! g:ale_textlint_executable + unlet! b:ale_textlint_executable + unlet! g:ale_textlint_use_global + unlet! b:ale_textlint_use_global + unlet! g:ale_textlint_options + unlet! b:ale_textlint_options + + runtime autoload/ale/handlers/textlint.vim + + call ale#test#SetDirectory('/testplugin/test/command_callback') + +After: + Restore + + unlet! b:command_tail + unlet! b:ale_textlint_executable + unlet! b:ale_textlint_use_global + unlet! b:ale_textlint_options + + call ale#test#RestoreDirectory() + call ale#linter#Reset() + +Execute(The executable should be configurable): + AssertEqual 'textlint', ale#handlers#textlint#GetExecutable(bufnr('')) + + let b:ale_textlint_executable = 'foobar' + + AssertEqual 'foobar', ale#handlers#textlint#GetExecutable(bufnr('')) + +Execute(The executable should be used in the command): + AssertEqual + \ ale#Escape('textlint') . ' -f json %t', + \ ale#handlers#textlint#GetCommand(bufnr('')) + + let b:ale_textlint_executable = 'foobar' + + AssertEqual + \ ale#Escape('foobar') . ' -f json %t', + \ ale#handlers#textlint#GetCommand(bufnr('')) + \ + +Execute(The options should be configurable): + let b:ale_textlint_options = '--something' + + AssertEqual + \ ale#Escape('textlint') . ' --something -f json %t', + \ ale#handlers#textlint#GetCommand(bufnr('')) + +Execute(The local executable from .bin should be used if available): + call ale#test#SetFilename('textlint_paths/with_bin_path/foo.txt') + + AssertEqual + \ ale#path#Simplify(g:dir . '/textlint_paths/with_bin_path/node_modules/.bin/textlint'), + \ ale#handlers#textlint#GetExecutable(bufnr('')) + + AssertEqual + \ ale#Escape(g:dir . '/textlint_paths/with_bin_path/node_modules/.bin/textlint') . ' -f json %t', + \ ale#handlers#textlint#GetCommand(bufnr('')) + +Execute(The local executable from textlint/bin should be used if available): + call ale#test#SetFilename('textlint_paths/with_textlint_bin_path/foo.txt') + + AssertEqual + \ ale#path#Simplify(g:dir . '/textlint_paths/with_textlint_bin_path/node_modules/textlint/bin/textlint.js'), + \ ale#handlers#textlint#GetExecutable(bufnr('')) + + if has('win32') + AssertEqual + \ ale#Escape('node.exe') . ' ' . ale#Escape(g:dir . '/textlint_paths/with_textlint_bin_path/node_modules/textlint/bin/textlint.js') . ' -f json %t', + \ ale#handlers#textlint#GetCommand(bufnr('')) + else + AssertEqual + \ ale#Escape(g:dir . '/textlint_paths/with_textlint_bin_path/node_modules/textlint/bin/textlint.js') . ' -f json %t', + \ ale#handlers#textlint#GetCommand(bufnr('')) + endif + +Execute(Configuration files should be discovered): + call ale#test#SetFilename('textlint_paths/with_config_path/foo.txt') + + AssertEqual + \ ale#Escape('textlint') + \ . ' -c ' . ale#Escape(g:dir . '/textlint_paths/with_config_path/.textlintrc') + \ . ' -f json %t', + \ ale#handlers#textlint#GetCommand(bufnr('')) diff --git a/test/command_callback/textlint_paths/with_bin_path/node_modules/.bin/textlint b/test/command_callback/textlint_paths/with_bin_path/node_modules/.bin/textlint new file mode 100755 index 00000000..e69de29b diff --git a/test/command_callback/textlint_paths/with_config_path/.textlintrc b/test/command_callback/textlint_paths/with_config_path/.textlintrc new file mode 100644 index 00000000..e69de29b diff --git a/test/command_callback/textlint_paths/with_textlint_bin_path/node_modules/textlint/bin/textlint.js b/test/command_callback/textlint_paths/with_textlint_bin_path/node_modules/textlint/bin/textlint.js new file mode 100755 index 00000000..e69de29b -- cgit v1.2.3