{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}

import Data.ByteString
import Data.Text
import PyF
import Test.Hspec

main :: IO ()
main = hspec spec

spec :: Spec
spec = do
  let ten = 10 :: Int
  describe "Test formatting with different types" $ do
    it "String" $
      [fmt|hello {ten:d}|] `shouldBe` ("hello 10" :: String)
    it "Text" $
      [fmt|hello {ten:d}|] `shouldBe` ("hello 10" :: Text)
    it "ByteString" $
      [fmt|hello {ten:d}|] `shouldBe` ("hello 10" :: ByteString)