packages feed

givegif-1.0.0.0: test/Spec.hs

{-# LANGUAGE NoImplicitPrelude         #-}
{-# LANGUAGE OverloadedStrings         #-}

import           Prelude
import           Test.Hspec
import qualified Console as C
import qualified Data.Map.Strict as M
import qualified Data.Set as S
import qualified Data.ByteString.Builder as B

main :: IO ()
main = hspec $ do
  describe "Console Module" $ do
    describe "imageToMap" $ do
      let img = (C.consoleImage True "data") { C.ciName = pure "myimage.png"
                                             , C.ciPreserveAspectRatio = pure True }
      it "has the right keys" $ do
        let m = C.imageToMap img
        M.keysSet m `shouldBe` S.fromList [ "inline", "name", "preserveAspectRatio" ]
      it "creates the right params" $ do
        let p = B.toLazyByteString . C.params . C.imageToMap $ img
        p `shouldBe` "preserveAspectRatio=1;name=myimage.png;inline=1"
    describe "renderImage" $ do
      it "renders an image without pre/post" $ do
        let img = C.consoleImage True ""
        C.renderImage "" "" img `shouldBe` "inline=1:"
      it "renders an image with pre/post" $ do
        let img = C.consoleImage True "data"
        C.renderImage "pre" "post" img `shouldBe` "preinline=1:ZGF0YQ==post"