hadolint-2.1.0: test/DL3048.hs
module DL3048 (tests) where
import Helpers
import Test.Hspec
tests :: SpecWith ()
tests = do
let ?rulesConfig = mempty
describe "DL3048 - Invalid Label Key Rule" $ do
it "not ok with reserved namespace" $ do
ruleCatches "DL3048" "LABEL com.docker.label=\"foo\""
ruleCatches "DL3048" "LABEL io.docker.label=\"foo\""
ruleCatches "DL3048" "LABEL org.dockerproject.label=\"foo\""
onBuildRuleCatches "DL3048" "LABEL com.docker.label=\"foo\""
onBuildRuleCatches "DL3048" "LABEL io.docker.label=\"foo\""
onBuildRuleCatches "DL3048" "LABEL org.dockerproject.label=\"foo\""
it "not ok with invalid character" $ do
ruleCatches "DL3048" "LABEL invalid$character=\"foo\""
onBuildRuleCatches "DL3048" "LABEL invalid$character=\"foo\""
it "not ok with invalid start and end characters" $ do
ruleCatches "DL3048" "LABEL .invalid =\"foo\""
ruleCatches "DL3048" "LABEL -invalid =\"foo\""
ruleCatches "DL3048" "LABEL 1invalid =\"foo\""
onBuildRuleCatches "DL3048" "LABEL .invalid=\"foo\""
onBuildRuleCatches "DL3048" "LABEL -invalid=\"foo\""
onBuildRuleCatches "DL3048" "LABEL 1invalid=\"foo\""
it "not ok with consecutive dividers" $ do
ruleCatches "DL3048" "LABEL invalid..character=\"foo\""
ruleCatches "DL3048" "LABEL invalid--character=\"foo\""
onBuildRuleCatches "DL3048" "LABEL invalid..character=\"foo\""
onBuildRuleCatches "DL3048" "LABEL invalid--character=\"foo\""
it "ok with valid labels" $ do
ruleCatchesNot "DL3048" "LABEL org.valid-key.label3=\"foo\""
ruleCatchesNot "DL3048" "LABEL validlabel=\"foo\""
onBuildRuleCatchesNot "DL3048" "LABEL org.valid-key.label3=\"foo\""
onBuildRuleCatchesNot "DL3048" "LABEL validlabel=\"foo\""