packages feed

hadolint-2.1.0: test/DL3022.hs

module DL3022 (tests) where

import Data.Text as Text
import Helpers
import Test.Hspec


tests :: SpecWith ()
tests = do
  let ?rulesConfig = mempty
  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