+Before:
+ Save g:ale_biome_options
+ Save g:ale_biome_lsp_project_root
+
+ let g:ale_biome_options = ''
+ let g:ale_biome_lsp_project_root = ''
+
+ call ale#assert#SetUpLinterTest('typescript', 'biome')
+ call ale#test#SetFilename('test.ts')
+
+After:
+ call ale#assert#TearDownLinterTest()
+
+Execute(The default biome command should be correct):
+ AssertLinter 'biome', ale#Escape('biome') . ' lsp-proxy'
+
+Execute(Uses the filetype as the language):
+ call ale#test#SetFilename('test.ts')
+ set filetype=typescript
+ AssertLSPLanguage 'typescript'
+
+ call ale#test#SetFilename('test.tsx')
+ set filetype=typescriptreact
+ AssertLSPLanguage 'typescriptreact'
+
+ call ale#test#SetFilename('test.js')
+ set filetype=javascript
+ AssertLSPLanguage 'javascript'
+
+ call ale#test#SetFilename('test.jsx')
+ set filetype=javascriptreact
+ AssertLSPLanguage 'javascriptreact'
+
+Execute(Should find project root containing biome.json):
+ call ale#test#SetFilename('../test-files/biome/json/src/test.ts')
+
+ AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/biome/json')
+
+Execute(Should find project root containing biome.jsonc):
+ call ale#test#SetFilename('../test-files/biome/jsonc/src/test.ts')
+
+ AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/biome/jsonc')
+
+Execute(Should use user-specified project root):
+ let g:ale_biome_lsp_project_root = '/'
+
+ call ale#test#SetFilename('../test-files/biome/jsonc/src/test.ts')
+
+ AssertLSPProject '/'