This repository has been archived on 2024-07-19. You can view files and clone it, but cannot push or open issues or pull requests.
ale/test/test_dockerfile_hadolint_linter.vader
Jose Lorenzo Rodriguez 4df87eaadd
Added tests for hadolint
2018-01-29 22:21:50 +01:00

90 lines
2.8 KiB
Text

" 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 hadolint/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(''))
Execute(test warnings from hadolint):
AssertEqual
\ [{'lnum': 10, 'col': 0, 'type': 'W', 'text': 'Using latest is prone to errors', 'detail': "DL3007 ( https://github.com/hadolint/hadolint/wiki/DL3007 )\n\nUsing latest is prone to errors"}],
\ ale_linters#dockerfile#hadolint#Handle(bufnr(''), [
\ '/dev/stdin:10 DL3007 Using latest is prone to errors',
\ ])
Execute(test warnings from shellcheck):
AssertEqual
\ [{'lnum': 3, 'col': 0, 'type': 'W', 'text': 'bar is referenced but not assigned.', 'detail': "SC2154 ( https://github.com/koalaman/shellcheck/wiki/SC2154 )\n\nbar is referenced but not assigned."}],
\ ale_linters#dockerfile#hadolint#Handle(bufnr(''), [
\ '/dev/stdin:3 SC2154 bar is referenced but not assigned.',
\ ])
Execute(test errors from dockerfile parser):
AssertEqual
\ [{'lnum': 3, 'col': 4, 'type': 'E', 'text': 'unexpected "A" expecting at least one space after ''RUN''', 'detail': 'unexpected "A" expecting at least one space after ''RUN'''}],
\ ale_linters#dockerfile#hadolint#Handle(bufnr(''), [
\ "/dev/stdin:3:4 unexpected \"A\" expecting at least one space after 'RUN'",
\ ])
" fin...