{-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE PostfixOperators #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} module AgentTests (agentCoreTests, agentTests) where import AgentTests.ConnectionRequestTests import AgentTests.DoubleRatchetTests (doubleRatchetTests) import AgentTests.FunctionalAPITests (functionalAPITests) import AgentTests.MigrationTests (migrationTests) import AgentTests.ServerChoice (serverChoiceTests) import AgentTests.ShortLinkTests (shortLinkTests) import Simplex.Messaging.Server.Env.STM (AStoreType (..)) import Simplex.Messaging.Transport (ASrvTransport) import Test.Hspec hiding (fit, it) #if defined(dbPostgres) import Fixtures import Simplex.Messaging.Agent.Store.Postgres.Util (dropAllSchemasExceptSystem) #else import AgentTests.SQLiteTests (storeTests) #endif #if defined(dbServerPostgres) import AgentTests.NotificationTests (notificationTests) import SMPClient (postgressBracket) import NtfClient (ntfTestServerDBConnectInfo) #endif agentCoreTests :: Spec agentCoreTests = do describe "Migration tests" migrationTests describe "Connection request" connectionRequestTests describe "Double ratchet tests" doubleRatchetTests describe "Short link tests" shortLinkTests agentTests :: (ASrvTransport, AStoreType) -> Spec agentTests ps = do #if defined(dbPostgres) after_ (dropAllSchemasExceptSystem testDBConnectInfo) $ do #else do #endif describe "Functional API" $ functionalAPITests ps describe "Chosen servers" serverChoiceTests #if defined(dbServerPostgres) around_ (postgressBracket ntfTestServerDBConnectInfo) $ describe "Notification tests" $ notificationTests ps #endif #if !defined(dbPostgres) describe "SQLite store" storeTests #endif