hadolint-2.8.0: test/Hadolint/Rule/DL4004Spec.hs
module Hadolint.Rule.DL4004Spec (spec) where
import Data.Default
import Data.Text as Text
import Helpers
import Test.Hspec
spec :: SpecWith ()
spec = do
let ?config = def
describe "DL4004" $ do
it "no cmd" $ ruleCatchesNot "DL4004" "FROM busybox"
it "many entrypoints" $
let dockerFile =
[ "FROM debian",
"ENTRYPOINT bash",
"RUN foo",
"ENTRYPOINT another"
]
in ruleCatches "DL4004" $ Text.unlines dockerFile
it "single entrypoint, different stages" $
let dockerFile =
[ "FROM debian as distro1",
"ENTRYPOINT bash",
"RUN foo",
"FROM debian as distro2",
"ENTRYPOINT another"
]
in ruleCatchesNot "DL4004" $ Text.unlines dockerFile
it "many entrypoints, different stages" $
let dockerFile =
[ "FROM debian as distro1",
"ENTRYPOINT bash",
"RUN foo",
"ENTRYPOINT another",
"FROM debian as distro2",
"ENTRYPOINT another"
]
in ruleCatches "DL4004" $ Text.unlines dockerFile
it "single entry" $ ruleCatchesNot "DL4004" "ENTRYPOINT /bin/true"
it "no entry" $ ruleCatchesNot "DL4004" "FROM busybox"