-- | Ledger DB tests.
--
-- The ledger DB consists of two subcomponents: an in-memory component, which is
-- pure Haskell (no IO anywhere) and so can be tested using normal property
-- tests, and the on-disk component, which is tested with a model based test.
module Test.Ouroboros.Storage.LedgerDB (tests) where

import qualified Test.Ouroboros.Storage.LedgerDB.Serialisation as Serialisation
import qualified Test.Ouroboros.Storage.LedgerDB.SnapshotPolicySanityCheck as SnapshotPolicySanityCheck
import qualified Test.Ouroboros.Storage.LedgerDB.Snapshots as Snapshots
import qualified Test.Ouroboros.Storage.LedgerDB.StateMachine as StateMachine
import Test.Tasty (TestTree, testGroup)

tests :: TestTree
tests :: TestTree
tests =
  TestName -> [TestTree] -> TestTree
testGroup
    TestName
"LedgerDB"
    [ TestTree
Serialisation.tests
    , TestTree
Snapshots.tests
    , TestTree
SnapshotPolicySanityCheck.tests
    , TestTree
StateMachine.tests
    ]