ale/test/handler/test_terraform_handler.vader
Michał Padula e343148e80
Fallback to summary field if detail exists but is empty in terraform linter (#4157)
* Fallback to summary field if detail exists but is empty in terraform linter

* Add test

* Update terraform.vim

* remove whitespaces
2022-05-17 00:00:34 +09:00

139 lines
3.6 KiB
Plaintext

Before:
" Load the file which defines the linter.
runtime ale_linters/terraform/terraform.vim
call ale#test#SetDirectory('/testplugin/test/test-files/terraform')
call ale#test#SetFilename('providers.tf')
After:
" Unload all linters again.
call ale#linter#Reset()
call ale#test#RestoreDirectory()
Execute(The output should be correct):
AssertEqual
\ [
\ {
\ 'lnum': 17,
\ 'col': 13,
\ 'filename': ale#path#Simplify(g:dir . '/providers.tf'),
\ 'type': 'W',
\ 'text': 'Terraform 0.13 and earlier allowed provider version',
\ },
\ {
\ 'lnum': 0,
\ 'col': 0,
\ 'filename': ale#path#Simplify(g:dir . '/providers.tf'),
\ 'type': 'E',
\ 'text': 'Plugin reinitialization required. Please run "terraform"',
\ }
\ ],
\ ale_linters#terraform#terraform#Handle(bufnr(''), [
\ '{',
\ '"valid": false,',
\ '"error_count": 1,',
\ '"warning_count": 1,',
\ '"diagnostics": [',
\ ' {',
\ ' "severity": "warning",',
\ ' "summary": "Version constraints inside provider configuration blocks are deprecated",',
\ ' "detail": "Terraform 0.13 and earlier allowed provider version",',
\ ' "range": {',
\ ' "filename": "providers.tf",',
\ ' "start": {',
\ ' "line": 17,',
\ ' "column": 13,',
\ ' "byte": 669',
\ ' },',
\ ' "end": {',
\ ' "line": 17,',
\ ' "column": 24,',
\ ' "byte": 680',
\ ' }',
\ ' }',
\ ' },',
\ ' {',
\ ' "severity": "error",',
\ ' "summary": "Could not load plugin",',
\ ' "detail": "Plugin reinitialization required. Please run \"terraform\""',
\ ' }',
\ ' ]',
\ '}',
\ ])
Execute(Should use summary if detail not available):
AssertEqual
\ [
\ {
\ 'lnum': 91,
\ 'col': 41,
\ 'filename': ale#path#Simplify(g:dir . '/main.tf'),
\ 'type': 'E',
\ 'text': 'storage_os_disk: required field is not set',
\ }
\ ],
\ ale_linters#terraform#terraform#Handle(bufnr(''), [
\ '{',
\ ' "valid": false,',
\ ' "error_count": 1,',
\ ' "warning_count": 0,',
\ ' "diagnostics": [',
\ ' {',
\ ' "severity": "error",',
\ ' "summary": "storage_os_disk: required field is not set",',
\ ' "range": {',
\ ' "filename": "main.tf",',
\ ' "start": {',
\ ' "line": 91,',
\ ' "column": 41,',
\ ' "byte": 2381',
\ ' },',
\ ' "end": {',
\ ' "line": 91,',
\ ' "column": 41,',
\ ' "byte": 2381',
\ ' }',
\ ' }',
\ ' }',
\ ' ]',
\ '}'
\ ])
Execute(Should use summary if detail available but empty):
AssertEqual
\ [
\ {
\ 'lnum': 91,
\ 'col': 41,
\ 'filename': ale#path#Simplify(g:dir . '/main.tf'),
\ 'type': 'E',
\ 'text': 'storage_os_disk: required field is not set',
\ }
\ ],
\ ale_linters#terraform#terraform#Handle(bufnr(''), [
\ '{',
\ ' "valid": false,',
\ ' "error_count": 1,',
\ ' "warning_count": 0,',
\ ' "diagnostics": [',
\ ' {',
\ ' "severity": "error",',
\ ' "summary": "storage_os_disk: required field is not set",',
\ ' "detail": "",',
\ ' "range": {',
\ ' "filename": "main.tf",',
\ ' "start": {',
\ ' "line": 91,',
\ ' "column": 41,',
\ ' "byte": 2381',
\ ' },',
\ ' "end": {',
\ ' "line": 91,',
\ ' "column": 41,',
\ ' "byte": 2381',
\ ' }',
\ ' }',
\ ' }',
\ ' ]',
\ '}'
\ ])