diff --git a/src/Monolog/BreadcrumbHandler.php b/src/Monolog/BreadcrumbHandler.php index 5398c8758..f01ce3ace 100644 --- a/src/Monolog/BreadcrumbHandler.php +++ b/src/Monolog/BreadcrumbHandler.php @@ -44,7 +44,6 @@ public function __construct(HubInterface $hub, $level = Logger::DEBUG, bool $bub * channel: string, * datetime: \DateTimeImmutable, * message: string, - * formatted?: string, * extra?: array * } $record {@see https://github.com/Seldaek/monolog/blob/main/doc/message-structure.md} */ @@ -54,7 +53,7 @@ protected function write(array $record): void $this->getBreadcrumbLevel($record['level']), $this->getBreadcrumbType($record['level']), $record['channel'], - $record['formatted'] ?? $record['message'], + $record['message'], $record['extra'] ?? [], $record['datetime']->getTimestamp() ); diff --git a/tests/Monolog/BreadcrumbHandlerTest.php b/tests/Monolog/BreadcrumbHandlerTest.php new file mode 100644 index 000000000..5388a0ee3 --- /dev/null +++ b/tests/Monolog/BreadcrumbHandlerTest.php @@ -0,0 +1,64 @@ +createMock(HubInterface::class); + $hub->expects($this->once()) + ->method('addBreadcrumb') + ->with($this->callback(function (Breadcrumb $breadcrumb) use ($expectedBreadcrumb): bool { + $this->assertSame($expectedBreadcrumb->getMessage(), $breadcrumb->getMessage()); + $this->assertSame($expectedBreadcrumb->getLevel(), $breadcrumb->getLevel()); + $this->assertSame($expectedBreadcrumb->getType(), $breadcrumb->getType()); + $this->assertSame($expectedBreadcrumb->getTimestamp(), $breadcrumb->getTimestamp()); + $this->assertSame($expectedBreadcrumb->getCategory(), $breadcrumb->getCategory()); + $this->assertEquals($expectedBreadcrumb->getMetadata(), $breadcrumb->getMetadata()); + + return true; + })); + + $handler = new BreadcrumbHandler($hub); + $handler->handle($record); + } + + public function handleDataProvider(): iterable + { + $defaultData = [ + 'message' => 'foo bar', + 'level' => Logger::DEBUG, + 'level_name' => Logger::getLevelName(Logger::DEBUG), + 'channel' => 'channel.foo', + 'context' => [], + 'extra' => [], + 'datetime' => new \DateTimeImmutable(), + ]; + + $defaultBreadcrumb = new Breadcrumb( + Breadcrumb::LEVEL_DEBUG, + Breadcrumb::TYPE_DEFAULT, + 'channel.foo', + 'foo bar', + [], + $defaultData['datetime']->getTimestamp() + ); + + yield [ + $defaultData, + $defaultBreadcrumb, + ]; + } +}