summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2017-09-12 09:10:26 +0100
committerw0rp <devw0rp@gmail.com>2017-09-12 09:10:37 +0100
commit661ed6e40be961d454c30be3ccaff950f907cf60 (patch)
tree2ee2551f727cdb26c6f24365a51fa1a3e24c74d2
parenta7614d950208a004cb174e79e55eb4fdc988c24e (diff)
downloadale-661ed6e40be961d454c30be3ccaff950f907cf60.zip
Fix #923 Use package.json as a last resort for eslint --fix
-rw-r--r--autoload/ale/fixers/eslint.vim3
-rw-r--r--test/eslint-test-files/package.json0
-rw-r--r--test/eslint-test-files/react-app/subdir-with-package-json/package.json0
-rw-r--r--test/fixers/test_eslint_fixer_callback.vader27
4 files changed, 27 insertions, 3 deletions
diff --git a/autoload/ale/fixers/eslint.vim b/autoload/ale/fixers/eslint.vim
index 9c985622..c89f4dc4 100644
--- a/autoload/ale/fixers/eslint.vim
+++ b/autoload/ale/fixers/eslint.vim
@@ -9,7 +9,6 @@ function! s:FindConfig(buffer) abort
\ '.eslintrc.yml',
\ '.eslintrc.json',
\ '.eslintrc',
- \ 'package.json',
\]
let l:config = ale#path#Simplify(l:path . '/' . l:basename)
@@ -19,7 +18,7 @@ function! s:FindConfig(buffer) abort
endfor
endfor
- return ''
+ return ale#path#FindNearestFile(a:buffer, 'package.json')
endfunction
function! ale#fixers#eslint#Fix(buffer) abort
diff --git a/test/eslint-test-files/package.json b/test/eslint-test-files/package.json
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/eslint-test-files/package.json
diff --git a/test/eslint-test-files/react-app/subdir-with-package-json/package.json b/test/eslint-test-files/react-app/subdir-with-package-json/package.json
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/eslint-test-files/react-app/subdir-with-package-json/package.json
diff --git a/test/fixers/test_eslint_fixer_callback.vader b/test/fixers/test_eslint_fixer_callback.vader
index 035f67e3..e6f79abe 100644
--- a/test/fixers/test_eslint_fixer_callback.vader
+++ b/test/fixers/test_eslint_fixer_callback.vader
@@ -17,7 +17,7 @@ Execute(The path to eslint.js should be run on Unix):
\ . ' --fix %t',
\ },
\ ale#fixers#eslint#Fix(bufnr(''))
- \
+
Execute(The lower priority configuration file in a nested directory should be preferred):
call ale#test#SetFilename('../eslint-test-files/react-app/subdir-with-config/testfile.js')
@@ -30,3 +30,28 @@ Execute(The lower priority configuration file in a nested directory should be pr
\ . ' --fix %t',
\ },
\ ale#fixers#eslint#Fix(bufnr(''))
+
+Execute(package.json should be used as a last resort):
+ call ale#test#SetFilename('../eslint-test-files/react-app/subdir-with-package-json/testfile.js')
+
+ AssertEqual
+ \ {
+ \ 'read_temporary_file': 1,
+ \ 'command':
+ \ ale#Escape(simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
+ \ . ' --config ' . ale#Escape(simplify(g:dir . '/../eslint-test-files/react-app/.eslintrc.js'))
+ \ . ' --fix %t',
+ \ },
+ \ ale#fixers#eslint#Fix(bufnr(''))
+
+ call ale#test#SetFilename('../eslint-test-files/package.json')
+
+ AssertEqual
+ \ {
+ \ 'read_temporary_file': 1,
+ \ 'command':
+ \ ale#Escape(simplify(g:dir . '/../eslint-test-files/node_modules/.bin/eslint'))
+ \ . ' --config ' . ale#Escape(simplify(g:dir . '/../eslint-test-files/package.json'))
+ \ . ' --fix %t',
+ \ },
+ \ ale#fixers#eslint#Fix(bufnr(''))