hadolint-2.11.0: test/Hadolint/Rule/DL3022Spec.hs
module Hadolint.Rule.DL3022Spec (spec) where
import Data.Default
import Data.Text as Text
import Helpers
import Test.Hspec
spec :: SpecWith ()
spec = do
let ?config = def
describe "DL3022 - `COPY --from` should reference a previously defined `FROM` alias" $ do
it "warn on missing alias" $ ruleCatches "DL3022" "COPY --from=foo bar ."
it "warn on alias defined after" $
let dockerFile =
[ "FROM scratch",
"COPY --from=build foo .",
"FROM node as build",
"RUN baz"
]
in ruleCatches "DL3022" $ Text.unlines dockerFile
it "don't warn on correctly defined aliases" $
let dockerFile =
[ "FROM scratch as build",
"RUN foo",
"FROM node",
"COPY --from=build foo .",
"RUN baz"
]
in ruleCatchesNot "DL3022" $ Text.unlines dockerFile
it "don't warn on external images" $ ruleCatchesNot "DL3022" "COPY --from=haskell:latest bar ."