summaryrefslogtreecommitdiff
path: root/test/test_dockerfile_hadolint_linter.vader
diff options
context:
space:
mode:
authorChris Weyl <chris@weyl.io>2017-07-03 09:37:32 -0500
committerw0rp <w0rp@users.noreply.github.com>2017-07-03 15:37:32 +0100
commit5a3cfbbdf50bc3e82e8ceca486a6bbda201f99d9 (patch)
tree8b082f2598a3f49ace0f3ba38eb4b34f342cffdc /test/test_dockerfile_hadolint_linter.vader
parent51f256e897891617eb8539c31f0c48e037600de7 (diff)
downloadale-5a3cfbbdf50bc3e82e8ceca486a6bbda201f99d9.zip
Allow `hadolint` linter to run via docker image (#720)
* Add documentation for hadolint (doc/ale-hadolint.txt) * Allow `hadolint` linter to run via docker image These changes enable the `hadolint` linter to run via the author's docker image, if present. Three modes are supported: * never use docker; * always use docker; and * use docker as a failback.
Diffstat (limited to 'test/test_dockerfile_hadolint_linter.vader')
-rw-r--r--test/test_dockerfile_hadolint_linter.vader69
1 files changed, 69 insertions, 0 deletions
diff --git a/test/test_dockerfile_hadolint_linter.vader b/test/test_dockerfile_hadolint_linter.vader
new file mode 100644
index 00000000..7262c5b0
--- /dev/null
+++ b/test/test_dockerfile_hadolint_linter.vader
@@ -0,0 +1,69 @@
+" NOTE: We use the 'b:' forms below to ensure that we're properly using
+" ale#Var()
+
+Given dockerfile:
+ #
+
+Before:
+ Save g:ale_dockerfile_hadolint_use_docker
+ Save g:ale_dockerfile_hadolint_docker_image
+ silent! unlet g:ale_dockerfile_hadolint_use_docker
+ silent! unlet g:ale_dockerfile_hadolint_docker_image
+
+ " enable loading inside test container
+ silent! cd /testplugin
+ source ale_linters/dockerfile/hadolint.vim
+
+
+After:
+ Restore
+ silent! unlet b:ale_dockerfile_hadolint_use_docker
+ silent! unlet b:ale_dockerfile_hadolint_docker_image
+
+
+Execute(linter honors ..._use_docker correctly):
+
+ " default: never
+ AssertEqual
+ \ 'hadolint',
+ \ ale_linters#dockerfile#hadolint#GetExecutable(bufnr(''))
+
+ " explicit never
+ let b:ale_dockerfile_hadolint_use_docker = 'never'
+ AssertEqual
+ \ 'hadolint',
+ \ ale_linters#dockerfile#hadolint#GetExecutable(bufnr(''))
+
+ let b:ale_dockerfile_hadolint_use_docker = 'always'
+ AssertEqual
+ \ 'docker',
+ \ ale_linters#dockerfile#hadolint#GetExecutable(bufnr(''))
+
+ " hadolint if present, otherwise docker
+ let command = 'docker'
+ if executable('hadolint')
+ let command = 'hadolint'
+ endif
+
+ let b:ale_dockerfile_hadolint_use_docker = 'yes'
+ AssertEqual
+ \ command,
+ \ ale_linters#dockerfile#hadolint#GetExecutable(bufnr(''))
+
+
+Execute(command is correct when using docker):
+ let b:ale_dockerfile_hadolint_use_docker = 'always'
+
+ AssertEqual
+ \ "docker run --rm -i lukasmartinelli/hadolint",
+ \ ale_linters#dockerfile#hadolint#GetCommand(bufnr(''))
+
+
+Execute(command is correct when not docker):
+ let b:ale_dockerfile_hadolint_use_docker = 'never'
+
+ AssertEqual
+ \ "hadolint -",
+ \ ale_linters#dockerfile#hadolint#GetCommand(bufnr(''))
+
+" fin...