0 | module Control.RIO.Mock.Logging
 1 |
 2 | import Control.RIO.Logging
 3 | import Data.IORef
 4 |
 5 | %default total
 6 |
 7 | ||| A mock logging utility.
 8 | public export
 9 | record Mock where
10 |   constructor MkMock
11 |   ref : IORef (SnocList (LogLevel, Lazy String))
12 |
13 | ||| Creates a mock logging facility
14 | export
15 | mkMock : IO Mock
16 | mkMock = MkMock <$> newIORef [<]
17 |
18 | export
19 | logging : Mock -> Logger
20 | logging m = MkLogger $ \l,s => modifyIORef m.ref (:< (l,s))
21 |