packages feed

matrix-client-0.1.0.0: test/Spec.hs

{-# 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\"}"