{-# LANGUAGE OverloadedStrings #-}
-- | The matrix client specification tests
module Main (main) where
import Data.Aeson (encode)
import Network.Matrix.Client
import Network.Matrix.Events
import Network.Matrix.Internal
import Test.Hspec
main :: IO ()
main = hspec spec
spec :: Spec
spec = describe "unit tests" $ do
it "decode error" $
(decodeResp "{\"errcode\": \"TEST\", \"error\":\"a error\"}" :: Either MatrixError String)
`shouldBe` Left (MatrixError "TEST" "a error" Nothing)
it "decode response" $
decodeResp "{\"user_id\": \"@tristanc_:matrix.org\"}"
`shouldBe` Right (UserID "@tristanc_:matrix.org")
it "encode room message" $
encode (RoomMessageText (MessageText "Hello" Nothing Nothing))
`shouldBe` "{\"msgtype\":\"m.text\",\"body\":\"Hello\"}"