summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAlvin Chan <chaucerbao@users.noreply.github.com>2018-06-18 14:40:57 -0700
committerw0rp <w0rp@users.noreply.github.com>2018-06-18 22:40:57 +0100
commitb8a1038a411e266c07a7e91c6561126680854bef (patch)
treee3ac53c453af413a7e40a4b9f1d8062fdf8cd0f0 /test
parent43ce8d761035e221b735b73597b482b9f2764b42 (diff)
downloadale-b8a1038a411e266c07a7e91c6561126680854bef.zip
Set `--parser` option in Prettier's fixer (#1620)
* Set `--parser` option in Prettier's fixer * Add expected `--parser` option to tests * Disable Prettier `--parser` detection if file extension exists * Manually default Prettier `--parser` to "babylon" * Add `--parser` test for TypeScript * Add tests for Prettier `--parser` * Add JSON5 to the suggested fixer for Prettier
Diffstat (limited to 'test')
-rw-r--r--test/fixers/test_prettier_fixer_callback.vader140
-rw-r--r--test/prettier-test-files/testfile0
2 files changed, 140 insertions, 0 deletions
diff --git a/test/fixers/test_prettier_fixer_callback.vader b/test/fixers/test_prettier_fixer_callback.vader
index c4f36f52..2018c3a6 100644
--- a/test/fixers/test_prettier_fixer_callback.vader
+++ b/test/fixers/test_prettier_fixer_callback.vader
@@ -95,3 +95,143 @@ Execute(The version number should be cached):
\ . ' --stdin-filepath %s --stdin',
\ },
\ ale#fixers#prettier#ApplyFixForVersion(bufnr(''), [])
+
+Execute(Should set --parser based on filetype, TypeScript):
+ call ale#test#SetFilename('../prettier-test-files/testfile')
+
+ set filetype=typescript
+
+ AssertEqual
+ \ {
+ \ 'command': 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
+ \ . ale#Escape(g:ale_javascript_prettier_executable)
+ \ . ' --parser typescript'
+ \ . ' --stdin-filepath %s --stdin',
+ \ },
+ \ ale#fixers#prettier#ApplyFixForVersion(bufnr(''), ['1.6.0'])
+
+Execute(Should set --parser based on filetype, CSS):
+ call ale#test#SetFilename('../prettier-test-files/testfile')
+
+ set filetype=css
+
+ AssertEqual
+ \ {
+ \ 'command': 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
+ \ . ale#Escape(g:ale_javascript_prettier_executable)
+ \ . ' --parser css'
+ \ . ' --stdin-filepath %s --stdin',
+ \ },
+ \ ale#fixers#prettier#ApplyFixForVersion(bufnr(''), ['1.6.0'])
+
+Execute(Should set --parser based on filetype, LESS):
+ call ale#test#SetFilename('../prettier-test-files/testfile')
+
+ set filetype=less
+
+ AssertEqual
+ \ {
+ \ 'command': 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
+ \ . ale#Escape(g:ale_javascript_prettier_executable)
+ \ . ' --parser less'
+ \ . ' --stdin-filepath %s --stdin',
+ \ },
+ \ ale#fixers#prettier#ApplyFixForVersion(bufnr(''), ['1.6.0'])
+
+Execute(Should set --parser based on filetype, SCSS):
+ call ale#test#SetFilename('../prettier-test-files/testfile')
+
+ set filetype=scss
+
+ AssertEqual
+ \ {
+ \ 'command': 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
+ \ . ale#Escape(g:ale_javascript_prettier_executable)
+ \ . ' --parser scss'
+ \ . ' --stdin-filepath %s --stdin',
+ \ },
+ \ ale#fixers#prettier#ApplyFixForVersion(bufnr(''), ['1.6.0'])
+
+Execute(Should set --parser based on filetype, JSON):
+ call ale#test#SetFilename('../prettier-test-files/testfile')
+
+ set filetype=json
+
+ AssertEqual
+ \ {
+ \ 'command': 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
+ \ . ale#Escape(g:ale_javascript_prettier_executable)
+ \ . ' --parser json'
+ \ . ' --stdin-filepath %s --stdin',
+ \ },
+ \ ale#fixers#prettier#ApplyFixForVersion(bufnr(''), ['1.6.0'])
+
+Execute(Should set --parser based on filetype, JSON5):
+ call ale#test#SetFilename('../prettier-test-files/testfile')
+
+ set filetype=json5
+
+ AssertEqual
+ \ {
+ \ 'command': 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
+ \ . ale#Escape(g:ale_javascript_prettier_executable)
+ \ . ' --parser json5'
+ \ . ' --stdin-filepath %s --stdin',
+ \ },
+ \ ale#fixers#prettier#ApplyFixForVersion(bufnr(''), ['1.6.0'])
+
+Execute(Should set --parser based on filetype, GraphQL):
+ call ale#test#SetFilename('../prettier-test-files/testfile')
+
+ set filetype=graphql
+
+ AssertEqual
+ \ {
+ \ 'command': 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
+ \ . ale#Escape(g:ale_javascript_prettier_executable)
+ \ . ' --parser graphql'
+ \ . ' --stdin-filepath %s --stdin',
+ \ },
+ \ ale#fixers#prettier#ApplyFixForVersion(bufnr(''), ['1.6.0'])
+
+Execute(Should set --parser based on filetype, Markdown):
+ call ale#test#SetFilename('../prettier-test-files/testfile')
+
+ set filetype=markdown
+
+ AssertEqual
+ \ {
+ \ 'command': 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
+ \ . ale#Escape(g:ale_javascript_prettier_executable)
+ \ . ' --parser markdown'
+ \ . ' --stdin-filepath %s --stdin',
+ \ },
+ \ ale#fixers#prettier#ApplyFixForVersion(bufnr(''), ['1.6.0'])
+
+Execute(Should set --parser based on filetype, Vue):
+ call ale#test#SetFilename('../prettier-test-files/testfile')
+
+ set filetype=vue
+
+ AssertEqual
+ \ {
+ \ 'command': 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
+ \ . ale#Escape(g:ale_javascript_prettier_executable)
+ \ . ' --parser vue'
+ \ . ' --stdin-filepath %s --stdin',
+ \ },
+ \ ale#fixers#prettier#ApplyFixForVersion(bufnr(''), ['1.6.0'])
+
+Execute(Should set --parser based on first filetype of multiple filetypes):
+ call ale#test#SetFilename('../prettier-test-files/testfile')
+
+ set filetype=css.scss
+
+ AssertEqual
+ \ {
+ \ 'command': 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
+ \ . ale#Escape(g:ale_javascript_prettier_executable)
+ \ . ' --parser css'
+ \ . ' --stdin-filepath %s --stdin',
+ \ },
+ \ ale#fixers#prettier#ApplyFixForVersion(bufnr(''), ['1.6.0'])
diff --git a/test/prettier-test-files/testfile b/test/prettier-test-files/testfile
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/prettier-test-files/testfile