Add tflint fot Terraform
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
Before:
|
||||
|
||||
Save g:ale_terraform_tflint_executable
|
||||
Save g:ale_terraform_tflint_options
|
||||
|
||||
runtime ale_linters/terraform/tflint.vim
|
||||
|
||||
|
||||
After:
|
||||
Restore
|
||||
call ale#linter#Reset()
|
||||
|
||||
|
||||
Execute(The default executable should be configurable):
|
||||
AssertEqual 'tflint', ale_linters#terraform#tflint#GetExecutable(bufnr(''))
|
||||
|
||||
let g:ale_terraform_tflint_executable = 'asdf'
|
||||
|
||||
AssertEqual 'asdf', ale_linters#terraform#tflint#GetExecutable(bufnr(''))
|
||||
|
||||
Execute(The default command should be good):
|
||||
let g:ale_terraform_tflint_executable = 'tflint'
|
||||
AssertEqual
|
||||
\ ale#Escape('tflint') . ' -f json',
|
||||
\ ale_linters#terraform#tflint#GetCommand(bufnr(''))
|
||||
|
||||
Execute(Overriding things should work):
|
||||
let g:ale_terraform_tflint_executable = 'fnord'
|
||||
let g:ale_terraform_tflint_options = '--whatever'
|
||||
AssertEqual
|
||||
\ ale#Escape('fnord') . ' --whatever -f json',
|
||||
\ ale_linters#terraform#tflint#GetCommand(bufnr(''))
|
||||
28
test/handler/test_tflint_handler.vader
Normal file
28
test/handler/test_tflint_handler.vader
Normal file
@@ -0,0 +1,28 @@
|
||||
Before:
|
||||
runtime! ale_linters/terraform/tflint.vim
|
||||
|
||||
After:
|
||||
call ale#linter#Reset()
|
||||
|
||||
Execute(The tflint handler should parse items correctly):
|
||||
AssertEqual
|
||||
\ [
|
||||
\ {
|
||||
\ 'lnum': 12,
|
||||
\ 'text': 'be warned, traveller',
|
||||
\ 'type': 'W',
|
||||
\ },
|
||||
\ {
|
||||
\ 'lnum': 9,
|
||||
\ 'text': 'error message',
|
||||
\ 'type': 'E',
|
||||
\ },
|
||||
\ {
|
||||
\ 'lnum': 5,
|
||||
\ 'text': 'just so ya know',
|
||||
\ 'type': 'I',
|
||||
\ },
|
||||
\ ],
|
||||
\ ale_linters#terraform#tflint#Handle(123, [
|
||||
\ '[ { "detector": "aws_db_instance_readable_password", "type": "WARNING", "message": "be warned, traveller", "line": 12, "file": "github.com/wata727/example-module/aws_db_instance.tf", "link": "https://github.com/wata727/tflint/blob/master/docs/aws_db_instance_readable_password.md" }, { "detector": "aws_elasticache_cluster_invalid_type", "type": "ERROR", "message": "error message", "line": 9, "file": "github.com/wata727/example-module/aws_elasticache_cluster.tf", "link": "https://github.com/wata727/tflint/blob/master/docs/aws_elasticache_cluster_invalid_type.md" }, { "detector": "aws_instance_not_specified_iam_profile", "type": "NOTICE", "message": "just so ya know", "line": 5, "file": "github.com/wata727/example-module/aws_instance.tf", "link": "https://github.com/wata727/tflint/blob/master/docs/aws_instance_not_specified_iam_profile.md" } ]'
|
||||
\ ])
|
||||
18
test/test_tflint_config_detection.vader
Normal file
18
test/test_tflint_config_detection.vader
Normal file
@@ -0,0 +1,18 @@
|
||||
Before:
|
||||
call ale#test#SetDirectory('/testplugin/test')
|
||||
runtime ale_linters/terraform/tflint.vim
|
||||
|
||||
After:
|
||||
call ale#test#RestoreDirectory()
|
||||
call ale#linter#Reset()
|
||||
|
||||
Execute(adjacent config file should be found):
|
||||
call ale#test#SetFilename('tflint-test-files/foo/bar.tf')
|
||||
AssertEqual
|
||||
\ (
|
||||
\ ale#Escape('tflint')
|
||||
\ . ' --config '
|
||||
\ . ale#Escape(ale#path#Winify(g:dir . '/tflint-test-files/foo/.tflint.hcl'))
|
||||
\ . ' -f json'
|
||||
\ ),
|
||||
\ ale_linters#terraform#tflint#GetCommand(bufnr(''))
|
||||
0
test/tflint-test-files/foo/.tflint.hcl
Normal file
0
test/tflint-test-files/foo/.tflint.hcl
Normal file
0
test/tflint-test-files/foo/bar.tf
Normal file
0
test/tflint-test-files/foo/bar.tf
Normal file
Reference in New Issue
Block a user