summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorghsang <66662835+ghsang@users.noreply.github.com>2024-08-14 16:24:22 +0900
committerGitHub <noreply@github.com>2024-08-14 08:24:22 +0100
commit954682108d21b412561fb32e3fa766c7ee539984 (patch)
tree64ade148264a5ce1c8c8bc09ec0b868368090561 /test
parent48d73c87c3c321e6298755abc5449267192d07e6 (diff)
downloadale-954682108d21b412561fb32e3fa766c7ee539984.zip
Add support for astro (#4780)
* feat: prettier for astro * feat: eslint for astro * feat: doc for astro
Diffstat (limited to 'test')
-rw-r--r--test/fixers/test_eslint_fixer_callback.vader15
-rw-r--r--test/fixers/test_prettier_fixer_callback.vader14
-rw-r--r--test/linter/test_eslint.vader9
-rw-r--r--test/test-files/eslint/astro-app/.eslintrc.js0
-rw-r--r--test/test-files/eslint/astro-app/node_modules/eslint/bin/eslint.js0
-rw-r--r--test/test-files/eslint/astro-app/package.json17
-rw-r--r--test/test-files/eslint/astro-app/src/pages/index.astro16
-rw-r--r--test/test-files/eslint/astro-app/tsconfig.json3
8 files changed, 74 insertions, 0 deletions
diff --git a/test/fixers/test_eslint_fixer_callback.vader b/test/fixers/test_eslint_fixer_callback.vader
index 2a20243c..5cf58014 100644
--- a/test/fixers/test_eslint_fixer_callback.vader
+++ b/test/fixers/test_eslint_fixer_callback.vader
@@ -304,3 +304,18 @@ Execute(The eslint_d post-processor should handle failing to connect properly):
\ ale#fixers#eslint#ProcessEslintDOutput(bufnr(''), [
\ 'Could not connect',
\ ])
+
+Execute(The executable path should be correct for astro app):
+ call ale#test#SetFilename('../test-files/eslint/astro-app/src/pages/index.astro')
+
+ " eslint_d output with an older eslint version is used here.
+ GivenCommandOutput ['v4.4.1 (eslint_d v5.1.0)']
+ AssertFixer
+ \ {
+ \ 'read_temporary_file': 1,
+ \ 'cwd': ale#path#Simplify(g:dir . '/../test-files/eslint/astro-app'),
+ \ 'command': (has('win32') ? 'node.exe ' : '')
+ \ . ale#Escape(ale#path#Simplify(g:dir . '/../test-files/eslint/astro-app/node_modules/eslint/bin/eslint.js'))
+ \ . ' -c ' . ale#Escape(ale#path#Simplify(g:dir . '/../test-files/eslint/astro-app/.eslintrc.js'))
+ \ . ' --fix %t',
+ \ }
diff --git a/test/fixers/test_prettier_fixer_callback.vader b/test/fixers/test_prettier_fixer_callback.vader
index 8da13fcd..5726fbc3 100644
--- a/test/fixers/test_prettier_fixer_callback.vader
+++ b/test/fixers/test_prettier_fixer_callback.vader
@@ -293,6 +293,20 @@ Execute(Should set --parser based on first filetype of multiple filetypes):
\ . ' --stdin-filepath %s --stdin',
\ }
+Execute(Should set --parser based on first filetype of multiple filetypes):
+ call ale#test#SetFilename('../test-files/prettier/testfile')
+
+ set filetype=astro
+
+ GivenCommandOutput ['1.6.0']
+ AssertFixer
+ \ {
+ \ 'cwd': '%s:h',
+ \ 'command': ale#Escape(g:ale_javascript_prettier_executable)
+ \ . ' --parser astro'
+ \ . ' --stdin-filepath %s --stdin',
+ \ }
+
Execute(Should set --parser for experimental language, Handlebars):
call ale#test#SetFilename('../test-files/prettier/testfile.hbs')
diff --git a/test/linter/test_eslint.vader b/test/linter/test_eslint.vader
index f4f2e309..6c05fc6d 100644
--- a/test/linter/test_eslint.vader
+++ b/test/linter/test_eslint.vader
@@ -76,3 +76,12 @@ Execute(eslint.js should be run from a containing project with .yarn/sdks):
AssertLinter b:executable,
\ (has('win32') ? ale#Escape('node.exe') . ' ' : '')
\ . ale#Escape(b:executable) . b:args
+
+Execute(astro directories should be detected correctly):
+ call ale#test#SetFilename('../test-files/eslint/astro-app/src/pages/index.astro')
+
+ let b:executable = ale#path#Simplify(g:dir . '/../test-files/eslint/astro-app/node_modules/eslint/bin/eslint.js')
+ AssertLinterCwd ale#path#Simplify(g:dir . '/../test-files/eslint/astro-app')
+ AssertLinter b:executable,
+ \ (has('win32') ? ale#Escape('node.exe') . ' ' : '')
+ \ . ale#Escape(b:executable) . b:args
diff --git a/test/test-files/eslint/astro-app/.eslintrc.js b/test/test-files/eslint/astro-app/.eslintrc.js
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/test-files/eslint/astro-app/.eslintrc.js
diff --git a/test/test-files/eslint/astro-app/node_modules/eslint/bin/eslint.js b/test/test-files/eslint/astro-app/node_modules/eslint/bin/eslint.js
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/test-files/eslint/astro-app/node_modules/eslint/bin/eslint.js
diff --git a/test/test-files/eslint/astro-app/package.json b/test/test-files/eslint/astro-app/package.json
new file mode 100644
index 00000000..527a99fc
--- /dev/null
+++ b/test/test-files/eslint/astro-app/package.json
@@ -0,0 +1,17 @@
+{
+ "name": "astro-app",
+ "type": "module",
+ "version": "0.0.1",
+ "scripts": {
+ "dev": "astro dev",
+ "start": "astro dev",
+ "build": "astro check && astro build",
+ "preview": "astro preview",
+ "astro": "astro"
+ },
+ "dependencies": {
+ "astro": "^4.8.3",
+ "@astrojs/check": "^0.7.0",
+ "typescript": "^5.4.5"
+ }
+} \ No newline at end of file
diff --git a/test/test-files/eslint/astro-app/src/pages/index.astro b/test/test-files/eslint/astro-app/src/pages/index.astro
new file mode 100644
index 00000000..2d141073
--- /dev/null
+++ b/test/test-files/eslint/astro-app/src/pages/index.astro
@@ -0,0 +1,16 @@
+---
+
+---
+
+<html lang="en">
+ <head>
+ <meta charset="utf-8" />
+ <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
+ <meta name="viewport" content="width=device-width" />
+ <meta name="generator" content={Astro.generator} />
+ <title>Astro</title>
+ </head>
+ <body>
+ <h1>Astro</h1>
+ </body>
+</html>
diff --git a/test/test-files/eslint/astro-app/tsconfig.json b/test/test-files/eslint/astro-app/tsconfig.json
new file mode 100644
index 00000000..77da9dd0
--- /dev/null
+++ b/test/test-files/eslint/astro-app/tsconfig.json
@@ -0,0 +1,3 @@
+{
+ "extends": "astro/tsconfigs/strict"
+} \ No newline at end of file