packages feed

hadolint-2.8.0: test/Hadolint/Config/ConfigurationSpec.hs

module Hadolint.Config.ConfigurationSpec where

import Data.Default
import qualified Data.Map as Map
import qualified Data.Set as Set
import Hadolint
import Test.Hspec

spec :: SpecWith ()
spec = do
  describe "Configuration" $ do
    it "default configuration" $ do
      def
        `shouldBe` Configuration
          False
          False
          False
          TTY
          mempty
          mempty
          mempty
          mempty
          mempty
          mempty
          mempty
          False
          DLInfoC

    it "override default configuration with empty config" $ do
      applyPartialConfiguration def mempty
        `shouldBe` Configuration
          False
          False
          False
          TTY
          mempty
          mempty
          mempty
          mempty
          mempty
          mempty
          mempty
          False
          DLInfoC

    it "override default with specific configuration: no-fail" $ do
      let config =
            PartialConfiguration
              (Just True)
              Nothing
              Nothing
              mempty
              mempty
              mempty
              mempty
              mempty
              mempty
              mempty
              mempty
              Nothing
              mempty
      applyPartialConfiguration def config
        `shouldBe` Configuration
          True
          False
          False
          TTY
          mempty
          mempty
          mempty
          mempty
          mempty
          mempty
          mempty
          False
          DLInfoC

    it "override default with specific configuration: no-color" $ do
      let config =
            PartialConfiguration
              Nothing
              (Just True)
              Nothing
              mempty
              mempty
              mempty
              mempty
              mempty
              mempty
              mempty
              mempty
              Nothing
              mempty
      applyPartialConfiguration def config
        `shouldBe` Configuration
          False
          True
          False
          TTY
          mempty
          mempty
          mempty
          mempty
          mempty
          mempty
          mempty
          False
          DLInfoC

    it "empty should not override: no-color" $ do
      let config =
            PartialConfiguration
              Nothing
              (Just True)
              Nothing
              mempty
              mempty
              mempty
              mempty
              mempty
              mempty
              mempty
              mempty
              Nothing
              mempty
          config2 =
            PartialConfiguration
              Nothing
              Nothing
              Nothing
              mempty
              mempty
              mempty
              mempty
              mempty
              mempty
              mempty
              mempty
              Nothing
              mempty
      applyPartialConfiguration def (config <> config2)
        `shouldBe` Configuration
          False
          True
          False
          TTY
          mempty
          mempty
          mempty
          mempty
          mempty
          mempty
          mempty
          False
          DLInfoC

    it "override default with specific configuration: verbose" $ do
      let config =
            PartialConfiguration
              Nothing
              Nothing
              (Just True)
              mempty
              mempty
              mempty
              mempty
              mempty
              mempty
              mempty
              mempty
              Nothing
              mempty
      applyPartialConfiguration def config
        `shouldBe` Configuration
          False
          False
          True
          TTY
          mempty
          mempty
          mempty
          mempty
          mempty
          mempty
          mempty
          False
          DLInfoC

    it "override default with specific configuration: output-format json" $ do
      let config =
            PartialConfiguration
              Nothing
              Nothing
              Nothing
              (Just Json)
              mempty
              mempty
              mempty
              mempty
              mempty
              mempty
              mempty
              Nothing
              mempty
      applyPartialConfiguration def config
        `shouldBe` Configuration
          False
          False
          False
          Json
          mempty
          mempty
          mempty
          mempty
          mempty
          mempty
          mempty
          False
          DLInfoC