Skip to content

Commit 2d23abe

Browse files
committed
Complete the unit tests
1 parent 3fb9d7f commit 2d23abe

File tree

2 files changed

+48
-4
lines changed

2 files changed

+48
-4
lines changed

src/Monolog/BreadcrumbHandler.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ protected function write(array $record): void
5454
$this->getBreadcrumbType($record['level']),
5555
$record['channel'],
5656
$record['message'],
57-
$record['extra'] ?? [],
57+
($record['context'] ?? []) + ($record['extra'] ?? []),
5858
$record['datetime']->getTimestamp()
5959
);
6060

tests/Monolog/BreadcrumbHandlerTest.php

+47-3
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ public function testHandle(array $record, Breadcrumb $expectedBreadcrumb): void
3535
$handler->handle($record);
3636
}
3737

38+
/**
39+
* @return iterable<array{array<string, mixed>, Breadcrumb}>
40+
*/
3841
public function handleDataProvider(): iterable
3942
{
4043
$defaultData = [
@@ -56,9 +59,50 @@ public function handleDataProvider(): iterable
5659
$defaultData['datetime']->getTimestamp()
5760
);
5861

59-
yield [
60-
$defaultData,
61-
$defaultBreadcrumb,
62+
$levelsToBeTested = [
63+
Logger::DEBUG => Breadcrumb::LEVEL_DEBUG,
64+
Logger::INFO => Breadcrumb::LEVEL_INFO,
65+
Logger::NOTICE => Breadcrumb::LEVEL_INFO,
66+
Logger::WARNING => Breadcrumb::LEVEL_WARNING,
67+
];
68+
69+
foreach ($levelsToBeTested as $loggerLevel => $breadcrumbLevel) {
70+
yield 'with level ' . Logger::getLevelName($loggerLevel) => [
71+
['level' => $loggerLevel] + $defaultData,
72+
$defaultBreadcrumb->withLevel($breadcrumbLevel),
73+
];
74+
}
75+
76+
yield 'with level ERROR' => [
77+
['level' => Logger::ERROR] + $defaultData,
78+
$defaultBreadcrumb->withLevel(Breadcrumb::LEVEL_ERROR)
79+
->withType(Breadcrumb::TYPE_ERROR),
80+
];
81+
82+
yield 'with level ALERT' => [
83+
['level' => Logger::ALERT] + $defaultData,
84+
$defaultBreadcrumb->withLevel(Breadcrumb::LEVEL_FATAL)
85+
->withType(Breadcrumb::TYPE_ERROR),
86+
];
87+
88+
yield 'with context' => [
89+
['context' => ['foo' => 'bar']] + $defaultData,
90+
$defaultBreadcrumb->withMetadata('foo', 'bar'),
91+
];
92+
93+
yield 'with extra' => [
94+
['extra' => ['foo' => 'bar']] + $defaultData,
95+
$defaultBreadcrumb->withMetadata('foo', 'bar'),
96+
];
97+
98+
yield 'with context + extra' => [
99+
[
100+
'context' => ['foo' => 'bar', 'context' => 'baz'],
101+
'extra' => ['foo' => 'baz', 'extra' => 'baz'],
102+
] + $defaultData,
103+
$defaultBreadcrumb->withMetadata('foo', 'bar')
104+
->withMetadata('context', 'baz')
105+
->withMetadata('extra', 'baz'),
62106
];
63107
}
64108
}

0 commit comments

Comments
 (0)