package io.odin.loggers import cats.Id import cats.data.Writer import cats.effect.Timer import cats.instances.list._ import io.odin.{LoggerMessage, OdinSpec} class WriterTLoggerSpec extends OdinSpec { type F[A] = Writer[List[LoggerMessage], A] implicit val timer: Timer[Id] = zeroTimer checkAll( "WriterTLogger", LoggerTests[F](new WriterTLogger[Id], _.written).all ) it should "write log into list" in { val logger = new WriterTLogger[Id]() forAll { msg: LoggerMessage => logger.log(msg).written shouldBe List(msg) } } it should "write all the logs into list" in { val logger = new WriterTLogger[Id]() forAll { msgs: List[LoggerMessage] => logger.log(msgs).written shouldBe msgs } } }