packages feed

hadolint-2.15.1: test/Hadolint/Rule/DL3066Spec.hs

module Hadolint.Rule.DL3066Spec (spec) where

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


spec :: SpecWith ()
spec = do
  let ?config = def
  let rule = "DL3066"

  describe "DL3066 Non-numeric user-id may not be resolvable by host system" $ do

    it "ok: numeric UID" $ do
      ruleCatchesNot rule "USER 12345"

    it "ok: numeric UID and GID" $ do
      ruleCatchesNot rule "USER 1234:5678"

    it "not ok: non-numeric UID" $ do
      ruleCatches rule "USER foobar"

    it "not ok: non-numeric UID and GID" $ do
      ruleCatches rule "USER foobar:barfoo"

    it "ok: UID is non-numeric, but is a defined ARG" $ do
      let dockerfile = Text.unlines [ "ARG APP_UID", "FROM foobar:barfoo", "USER ${APP_UID}" ]
       in ruleCatchesNot rule dockerfile