polysemy-log-0.1.0.0: test/Polysemy/Log/Test/SimpleTest.hs
module Polysemy.Log.Test.SimpleTest where
import Polysemy.Test (UnitTest, assertEq, runTestAuto)
import Polysemy.Log.Atomic (interpretLogAtomic)
import qualified Polysemy.Log.Data.Log as Log
import Polysemy.Log.Data.Log (Log)
import Polysemy.Log.Data.LogMessage (LogMessage(LogMessage))
import Polysemy.Log.Data.Severity (Severity(Crit, Debug))
prog ::
Members [Log, AtomicState [LogMessage]] r =>
Sem r [LogMessage]
prog = do
Log.debug "debug"
Log.crit "critical"
atomicGet
target :: [LogMessage]
target =
[LogMessage Crit "critical", LogMessage Debug "debug"]
test_simple :: UnitTest
test_simple =
runTestAuto do
assertEq @_ @IO target =<< interpretLogAtomic prog