mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-03-30 20:45:49 +00:00
* groups protocol and some group commands * simplify chat message format, refactor types to include parsed message body * disable chat test
48 lines
1.7 KiB
Haskell
48 lines
1.7 KiB
Haskell
{-# LANGUAGE OverloadedLists #-}
|
|
{-# LANGUAGE OverloadedStrings #-}
|
|
|
|
module ProtocolTests where
|
|
|
|
import Data.ByteString.Char8 (ByteString)
|
|
import Simplex.Chat.Protocol
|
|
import Simplex.Messaging.Parsers (parseAll)
|
|
import Test.Hspec
|
|
|
|
protocolTests :: Spec
|
|
protocolTests = do
|
|
parseChatMessageTest
|
|
|
|
(#==) :: ByteString -> RawChatMessage -> Expectation
|
|
s #== msg = parseAll rawChatMessageP s `shouldBe` Right msg
|
|
|
|
parseChatMessageTest :: Spec
|
|
parseChatMessageTest = describe "Raw chat message format" $ do
|
|
it "no parameters and content" $
|
|
"5 x.grp.mem.leave " #== RawChatMessage (Just 5) "x.grp.mem.leave" [] []
|
|
it "one parameter, no content" $
|
|
"6 x.msg.del 3 " #== RawChatMessage (Just 6) "x.msg.del" ["3"] []
|
|
it "with content that fits the message" $
|
|
"7 x.msg.new c.text x.text:11 hello there "
|
|
#== RawChatMessage
|
|
(Just 7)
|
|
"x.msg.new"
|
|
["c.text"]
|
|
[RawMsgBodyContent (RawContentType "x" "text") "hello there"]
|
|
it "with DAG reference and partial content" $
|
|
"8 x.msg.new c.image x.dag:16,x.text:7,m.image/jpg:6 0123456789012345 picture abcdef "
|
|
#== RawChatMessage
|
|
(Just 8)
|
|
"x.msg.new"
|
|
["c.image"]
|
|
[ RawMsgBodyContent (RawContentType "x" "dag") "0123456789012345",
|
|
RawMsgBodyContent (RawContentType "x" "text") "picture",
|
|
RawMsgBodyContent (RawContentType "m" "image/jpg") "abcdef"
|
|
]
|
|
it "without message id" $
|
|
" x.grp.mem.inv 23456,123 x.json:46 {\"contactRef\":\"john\",\"displayName\":\"John Doe\"} "
|
|
#== RawChatMessage
|
|
Nothing
|
|
"x.grp.mem.inv"
|
|
["23456", "123"]
|
|
[RawMsgBodyContent (RawContentType "x" "json") "{\"contactRef\":\"john\",\"displayName\":\"John Doe\"}"]
|