logging-facade-journald-0.0.0: test/System/Logging/Facade/Journald/InternalSpec.hs
{-# LANGUAGE OverloadedStrings #-}
module System.Logging.Facade.Journald.InternalSpec where
import Data.HashMap.Strict
import Data.Monoid
import Test.Hspec
import System.Logging.Facade.Journald.Internal
import System.Logging.Facade.Types
spec :: Spec
spec = do
describe "logRecordToJournalFields" $ do
let record = LogRecord {
logRecordLevel = ERROR,
logRecordLocation = Nothing,
logRecordMessage = "foo"
}
expected = fromList $
("MESSAGE", "foo") :
("PRIORITY", "3") :
[]
it "maps LogRecords to JournalFields" $ do
logRecordToJournalFields record `shouldBe` expected
context "when LogRecord has a location" $ do
let location = Location {
locationPackage = "foo",
locationModule = "Main",
locationFile = "./foo/Main.hs",
locationLine = 42,
locationColumn = 23
}
locationFields = fromList $
("CODE_FILE", "./foo/Main.hs") :
("CODE_LINE", "42") :
[]
it "includes the location as user journal fields" $ do
logRecordToJournalFields record{logRecordLocation = Just location} `shouldBe`
expected <> locationFields