hadolint-2.1.0: test/DL3043.hs
module DL3043 (tests) where
import Data.Text as Text
import Helpers
import Test.Hspec
tests :: SpecWith ()
tests = do
let ?rulesConfig = mempty
describe "DL3043 - `ONBUILD`, `FROM` or `MAINTAINER` triggered from within `ONBUILD` instruction." $ do
it "error when using `ONBUILD` within `ONBUILD`" $
let dockerFile =
[ "ONBUILD ONBUILD RUN anything"
]
in ruleCatches "DL3043" $ Text.unlines dockerFile
it "error when using `FROM` within `ONBUILD`" $
let dockerFile =
[ "ONBUILD FROM debian:buster"
]
in ruleCatches "DL3043" $ Text.unlines dockerFile
it "error when using `MAINTAINER` within `ONBUILD`" $
let dockerFile =
[ "ONBUILD MAINTAINER \"BoJack Horseman\""
]
in ruleCatches "DL3043" $ Text.unlines dockerFile
it "ok with `ADD`" $ ruleCatchesNot "DL3043" "ONBUILD ADD anything anywhere"
it "ok with `USER`" $ ruleCatchesNot "DL3043" "ONBUILD USER anything"
it "ok with `LABEL`" $ ruleCatchesNot "DL3043" "ONBUILD LABEL bla=\"blubb\""
it "ok with `STOPSIGNAL`" $ ruleCatchesNot "DL3043" "ONBUILD STOPSIGNAL anything"
it "ok with `COPY`" $ ruleCatchesNot "DL3043" "ONBUILD COPY anything anywhere"
it "ok with `RUN`" $ ruleCatchesNot "DL3043" "ONBUILD RUN anything"
it "ok with `CMD`" $ ruleCatchesNot "DL3043" "ONBUILD CMD anything"
it "ok with `SHELL`" $ ruleCatchesNot "DL3043" "ONBUILD SHELL anything"
it "ok with `WORKDIR`" $ ruleCatchesNot "DL3043" "ONBUILD WORKDIR anything"
it "ok with `EXPOSE`" $ ruleCatchesNot "DL3043" "ONBUILD EXPOSE 69"
it "ok with `VOLUME`" $ ruleCatchesNot "DL3043" "ONBUILD VOLUME anything"
it "ok with `ENTRYPOINT`" $ ruleCatchesNot "DL3043" "ONBUILD ENTRYPOINT anything"
it "ok with `ENV`" $ ruleCatchesNot "DL3043" "ONBUILD ENV MYVAR=\"bla\""
it "ok with `ARG`" $ ruleCatchesNot "DL3043" "ONBUILD ARG anything"
it "ok with `HEALTHCHECK`" $ ruleCatchesNot "DL3043" "ONBUILD HEALTHCHECK NONE"
it "ok with `FROM` outside of `ONBUILD`" $ ruleCatchesNot "DL3043" "FROM debian:buster"
it "ok with `MAINTAINER` outside of `ONBUILD`" $ ruleCatchesNot "DL3043" "MAINTAINER \"Some Guy\""