mirror of
https://github.com/simplex-chat/simplexmq.git
synced 2026-03-30 20:45:52 +00:00
* inventory of error handling problems and types * Change SMP protocol errors syntax * connection errors in agent protocol (ERR CONN), STORE error -> AGENT error * include exception in SEInternal error * add MESSAGE errors, remove CRYPTO and SIZE errors * agent protocol SYNTAX and AGENT errors * BROKER errors * group all client command (and agent response) errors * BROKER TRANSPORT error * simplify Client * clean up * transport errors * simplify client * parse / serialize agent errors * differentiate crypto errors * update errors.md * make agent and SMP protocol errors consistent, simplify * update doc * test: parse / serialize protocol errors with QuickCheck * add String to internal error * exponential back-off when retrying to send HELLO * refactor Client.hs * replace fold with recursion in startTCPClient * fail test if server did not start, refactor * test: wait till TCP server stops * test: refactor waiting for server to stop * test: fail with error if server did not start/stop
19 lines
782 B
Haskell
19 lines
782 B
Haskell
module ProtocolErrorTests where
|
|
|
|
import Simplex.Messaging.Agent.Transmission (AgentErrorType, agentErrorTypeP, serializeAgentError)
|
|
import Simplex.Messaging.Parsers (parseAll)
|
|
import Simplex.Messaging.Protocol (ErrorType, errorTypeP, serializeErrorType)
|
|
import Test.Hspec
|
|
import Test.Hspec.QuickCheck (modifyMaxSuccess)
|
|
import Test.QuickCheck
|
|
|
|
protocolErrorTests :: Spec
|
|
protocolErrorTests = modifyMaxSuccess (const 1000) $ do
|
|
describe "errors parsing / serializing" $ do
|
|
it "should parse SMP protocol errors" . property $ \err ->
|
|
parseAll errorTypeP (serializeErrorType err)
|
|
== Right (err :: ErrorType)
|
|
it "should parse SMP agent errors" . property $ \err ->
|
|
parseAll agentErrorTypeP (serializeAgentError err)
|
|
== Right (err :: AgentErrorType)
|