monad-logger-aeson-0.1.0.0: test-suite/TestCase/MonadLogger/LogDebugN/ThreadContextNo.hs
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
module TestCase.MonadLogger.LogDebugN.ThreadContextNo
( testCase
) where
import Control.Monad.Logger.Aeson (LogLevel(..), LoggedMessage(..))
import Data.Aeson.QQ.Simple (aesonQQ)
import Data.Time (UTCTime(..))
import TestCase (TestCase(..))
import qualified Control.Monad.Logger.Aeson.Internal as Internal
import qualified Control.Monad.Logger.CallStack as ML
import qualified Data.Time as Time
testCase :: FilePath -> TestCase
testCase logFilePath =
TestCase
{ actionUnderTest = do
ML.logDebugN "Logged from 'monad-logger'"
, logFilePath
, expectedValue =
[aesonQQ|
{
"time": "2022-05-07T20:03:54.0000000Z",
"level": "debug",
"message": {
"text": "Logged from 'monad-logger'"
}
}
|]
, expectedPatch =
[aesonQQ|
[
{ "op": "replace", "path": "/time", "value": "2022-05-07T20:03:54.0000000Z" }
]
|]
, expectedLoggedMessage =
LoggedMessage
{ loggedMessageTimestamp =
UTCTime
{ utctDay = Time.fromGregorian 2022 05 07
, utctDayTime = 72234
}
, loggedMessageLevel = LevelDebug
, loggedMessageLoc = Nothing
, loggedMessageLogSource = Nothing
, loggedMessageThreadContext = Internal.emptyKeyMap
, loggedMessageText = "Logged from 'monad-logger'"
, loggedMessageMeta = Internal.emptyKeyMap
}
}