mirror of
https://github.com/dense-analysis/ale.git
synced 2026-01-26 12:56:54 +08:00
add spectral linter for yaml
ci
This commit is contained in:
0
test/command_callback/spectral_paths/node_modules/.bin/spectral
generated
vendored
Normal file
0
test/command_callback/spectral_paths/node_modules/.bin/spectral
generated
vendored
Normal file
0
test/command_callback/spectral_paths/openapi.yaml
Normal file
0
test/command_callback/spectral_paths/openapi.yaml
Normal file
31
test/command_callback/test_spectral_command_callback.vader
Normal file
31
test/command_callback/test_spectral_command_callback.vader
Normal file
@@ -0,0 +1,31 @@
|
||||
Before:
|
||||
call ale#assert#SetUpLinterTest('yaml', 'spectral')
|
||||
|
||||
After:
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The yaml spectral command callback should return the correct default string):
|
||||
AssertLinter 'spectral', ale#Escape('spectral') . ' lint --ignore-unknown-format -q -f text %t'
|
||||
|
||||
Execute(The yaml spectral command callback should be configurable):
|
||||
let g:ale_yaml_spectral_executable = '~/.local/bin/spectral'
|
||||
|
||||
AssertLinter '~/.local/bin/spectral',
|
||||
\ ale#Escape('~/.local/bin/spectral')
|
||||
\ . ' lint --ignore-unknown-format -q -f text %t'
|
||||
|
||||
Execute(The yaml spectral command callback should allow a global installation to be used):
|
||||
let g:ale_yaml_spectral_executable = '/usr/local/bin/spectral'
|
||||
let g:ale_yaml_spectral_use_global = 1
|
||||
|
||||
AssertLinter '/usr/local/bin/spectral',
|
||||
\ ale#Escape('/usr/local/bin/spectral')
|
||||
\ . ' lint --ignore-unknown-format -q -f text %t'
|
||||
|
||||
Execute(The yaml spectral command callback should allow a local installation to be used):
|
||||
call ale#test#SetFilename('spectral_paths/openapi.yaml')
|
||||
|
||||
AssertLinter
|
||||
\ ale#path#Simplify(g:dir . '/spectral_paths/node_modules/.bin/spectral'),
|
||||
\ ale#Escape(ale#path#Simplify(g:dir . '/spectral_paths/node_modules/.bin/spectral'))
|
||||
\ . ' lint --ignore-unknown-format -q -f text %t'
|
||||
52
test/handler/test_spectral_handler.vader
Normal file
52
test/handler/test_spectral_handler.vader
Normal file
@@ -0,0 +1,52 @@
|
||||
Before:
|
||||
runtime ale_linters/yaml/spectral.vim
|
||||
|
||||
After:
|
||||
call ale#linter#Reset()
|
||||
|
||||
Execute(spectral handler should parse lines correctly):
|
||||
AssertEqual
|
||||
\ [
|
||||
\ {
|
||||
\ 'lnum': 1,
|
||||
\ 'col': 1,
|
||||
\ 'code': 'oas3-api-servers',
|
||||
\ 'text': 'OpenAPI `servers` must be present and non-empty array.',
|
||||
\ 'type': 'W'
|
||||
\ },
|
||||
\ {
|
||||
\ 'lnum': 1,
|
||||
\ 'col': 1,
|
||||
\ 'code': 'oas3-schema',
|
||||
\ 'text': 'Object should have required property `paths`.',
|
||||
\ 'type': 'E'
|
||||
\ },
|
||||
\ {
|
||||
\ 'lnum': 1,
|
||||
\ 'col': 1,
|
||||
\ 'code': 'openapi-tags',
|
||||
\ 'text': 'OpenAPI object should have non-empty `tags` array.',
|
||||
\ 'type': 'W'
|
||||
\ },
|
||||
\ {
|
||||
\ 'lnum': 3,
|
||||
\ 'col': 6,
|
||||
\ 'code': 'info-contact',
|
||||
\ 'text': 'Info object should contain `contact` object.',
|
||||
\ 'type': 'W'
|
||||
\ },
|
||||
\ {
|
||||
\ 'lnum': 3,
|
||||
\ 'col': 6,
|
||||
\ 'code': 'oas3-schema',
|
||||
\ 'text': '`info` property should have required property `version`.',
|
||||
\ 'type': 'E'
|
||||
\ },
|
||||
\ ],
|
||||
\ ale_linters#yaml#spectral#Handle(bufnr(''), [
|
||||
\ 'openapi.yml:1:1 warning oas3-api-servers "OpenAPI `servers` must be present and non-empty array."',
|
||||
\ 'openapi.yml:1:1 error oas3-schema "Object should have required property `paths`."',
|
||||
\ 'openapi.yml:1:1 warning openapi-tags "OpenAPI object should have non-empty `tags` array."',
|
||||
\ 'openapi.yml:3:6 warning info-contact "Info object should contain `contact` object."',
|
||||
\ 'openapi.yml:3:6 error oas3-schema "`info` property should have required property `version`."',
|
||||
\ ])
|
||||
Reference in New Issue
Block a user