mirror of
https://github.com/simplex-chat/simplexmq.git
synced 2026-03-30 20:45:52 +00:00
* rfc: queue rotation * update rfc * messages for queue rotation * allow multiple subscribed queues per connection in Agent/Client.hs * refactor * fix module name * allow multiple queues in duplex connection type * update commands * add indices * addConnectionRcvQueue * switch connection to another queue (WIP) * update schema/protocol * switching queue works, but sending messages after the switch fails * messages are delivered after rotation * use connection-scoped queue ID * rename queue records fields * refactor using SMPQueue class/instances * simplify queries * QKEY: check queue is not secured, refactor * update rfc * mark queue as primary in QUSE * queue rotation errors * fix async ack * fix async ACK to send OK * correction Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com> * use SWCH command * rename * take into account only active queue subscription when determining connection result if at least one queue is active * remove comment * only enable notifications for connections with enableNtfs = True * async test (WIP) * async queue rotation test * simplify combining results * test with 2 servers * fix unused subscribeConnection * switch to cabal build * increase build timeout * increase delay in async test * skip queue rotation tests * build matrix * step name * use ubuntu-18.04 in build matrix * enable rotation tests Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com>
38 lines
1.4 KiB
Haskell
38 lines
1.4 KiB
Haskell
{-# LANGUAGE TypeApplications #-}
|
|
|
|
import AgentTests (agentTests)
|
|
-- import Control.Logger.Simple
|
|
import CoreTests.CryptoTests
|
|
import CoreTests.EncodingTests
|
|
import CoreTests.ProtocolErrorTests
|
|
import CoreTests.VersionRangeTests
|
|
import NtfServerTests (ntfServerTests)
|
|
import ServerTests
|
|
import Simplex.Messaging.Transport (TLS, Transport (..))
|
|
import Simplex.Messaging.Transport.WebSockets (WS)
|
|
import System.Directory (createDirectoryIfMissing, removeDirectoryRecursive)
|
|
import System.Environment (setEnv)
|
|
import Test.Hspec
|
|
|
|
-- logCfg :: LogConfig
|
|
-- logCfg = LogConfig {lc_file = Nothing, lc_stderr = True}
|
|
|
|
main :: IO ()
|
|
main = do
|
|
-- setLogLevel LogInfo -- LogError
|
|
-- withGlobalLogging logCfg $ do
|
|
createDirectoryIfMissing False "tests/tmp"
|
|
setEnv "APNS_KEY_ID" "H82WD9K9AQ"
|
|
setEnv "APNS_KEY_FILE" "./tests/fixtures/AuthKey_H82WD9K9AQ.p8"
|
|
hspec $ do
|
|
describe "Core tests" $ do
|
|
describe "Encoding tests" encodingTests
|
|
describe "Protocol error tests" protocolErrorTests
|
|
describe "Version range" versionRangeTests
|
|
describe "Encryption tests" cryptoTests
|
|
describe "SMP server via TLS" $ serverTests (transport @TLS)
|
|
describe "SMP server via WebSockets" $ serverTests (transport @WS)
|
|
describe "Notifications server" $ ntfServerTests (transport @TLS)
|
|
describe "SMP client agent" $ agentTests (transport @TLS)
|
|
removeDirectoryRecursive "tests/tmp"
|