Skip to content

Commit 3fb9d7f

Browse files
committed
Add first unit test
1 parent b99fd5f commit 3fb9d7f

File tree

2 files changed

+65
-2
lines changed

2 files changed

+65
-2
lines changed

src/Monolog/BreadcrumbHandler.php

+1-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ public function __construct(HubInterface $hub, $level = Logger::DEBUG, bool $bub
4444
* channel: string,
4545
* datetime: \DateTimeImmutable,
4646
* message: string,
47-
* formatted?: string,
4847
* extra?: array<string, mixed>
4948
* } $record {@see https://github.com/Seldaek/monolog/blob/main/doc/message-structure.md}
5049
*/
@@ -54,7 +53,7 @@ protected function write(array $record): void
5453
$this->getBreadcrumbLevel($record['level']),
5554
$this->getBreadcrumbType($record['level']),
5655
$record['channel'],
57-
$record['formatted'] ?? $record['message'],
56+
$record['message'],
5857
$record['extra'] ?? [],
5958
$record['datetime']->getTimestamp()
6059
);
+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Sentry\Tests\Monolog;
6+
7+
use Monolog\Logger;
8+
use PHPUnit\Framework\TestCase;
9+
use Sentry\Breadcrumb;
10+
use Sentry\Monolog\BreadcrumbHandler;
11+
use Sentry\State\HubInterface;
12+
13+
final class BreadcrumbHandlerTest extends TestCase
14+
{
15+
/**
16+
* @dataProvider handleDataProvider
17+
*/
18+
public function testHandle(array $record, Breadcrumb $expectedBreadcrumb): void
19+
{
20+
$hub = $this->createMock(HubInterface::class);
21+
$hub->expects($this->once())
22+
->method('addBreadcrumb')
23+
->with($this->callback(function (Breadcrumb $breadcrumb) use ($expectedBreadcrumb): bool {
24+
$this->assertSame($expectedBreadcrumb->getMessage(), $breadcrumb->getMessage());
25+
$this->assertSame($expectedBreadcrumb->getLevel(), $breadcrumb->getLevel());
26+
$this->assertSame($expectedBreadcrumb->getType(), $breadcrumb->getType());
27+
$this->assertSame($expectedBreadcrumb->getTimestamp(), $breadcrumb->getTimestamp());
28+
$this->assertSame($expectedBreadcrumb->getCategory(), $breadcrumb->getCategory());
29+
$this->assertEquals($expectedBreadcrumb->getMetadata(), $breadcrumb->getMetadata());
30+
31+
return true;
32+
}));
33+
34+
$handler = new BreadcrumbHandler($hub);
35+
$handler->handle($record);
36+
}
37+
38+
public function handleDataProvider(): iterable
39+
{
40+
$defaultData = [
41+
'message' => 'foo bar',
42+
'level' => Logger::DEBUG,
43+
'level_name' => Logger::getLevelName(Logger::DEBUG),
44+
'channel' => 'channel.foo',
45+
'context' => [],
46+
'extra' => [],
47+
'datetime' => new \DateTimeImmutable(),
48+
];
49+
50+
$defaultBreadcrumb = new Breadcrumb(
51+
Breadcrumb::LEVEL_DEBUG,
52+
Breadcrumb::TYPE_DEFAULT,
53+
'channel.foo',
54+
'foo bar',
55+
[],
56+
$defaultData['datetime']->getTimestamp()
57+
);
58+
59+
yield [
60+
$defaultData,
61+
$defaultBreadcrumb,
62+
];
63+
}
64+
}

0 commit comments

Comments
 (0)