Skip to content

Commit

Permalink
Complete the unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Jean85 committed Jan 13, 2022
1 parent 3fb9d7f commit 2d23abe
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 4 deletions.
2 changes: 1 addition & 1 deletion src/Monolog/BreadcrumbHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ protected function write(array $record): void
$this->getBreadcrumbType($record['level']),
$record['channel'],
$record['message'],
$record['extra'] ?? [],
($record['context'] ?? []) + ($record['extra'] ?? []),
$record['datetime']->getTimestamp()
);

Expand Down
50 changes: 47 additions & 3 deletions tests/Monolog/BreadcrumbHandlerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ public function testHandle(array $record, Breadcrumb $expectedBreadcrumb): void
$handler->handle($record);
}

/**
* @return iterable<array{array<string, mixed>, Breadcrumb}>
*/
public function handleDataProvider(): iterable
{
$defaultData = [
Expand All @@ -56,9 +59,50 @@ public function handleDataProvider(): iterable
$defaultData['datetime']->getTimestamp()
);

yield [
$defaultData,
$defaultBreadcrumb,
$levelsToBeTested = [
Logger::DEBUG => Breadcrumb::LEVEL_DEBUG,
Logger::INFO => Breadcrumb::LEVEL_INFO,
Logger::NOTICE => Breadcrumb::LEVEL_INFO,
Logger::WARNING => Breadcrumb::LEVEL_WARNING,
];

foreach ($levelsToBeTested as $loggerLevel => $breadcrumbLevel) {
yield 'with level ' . Logger::getLevelName($loggerLevel) => [
['level' => $loggerLevel] + $defaultData,
$defaultBreadcrumb->withLevel($breadcrumbLevel),
];
}

yield 'with level ERROR' => [
['level' => Logger::ERROR] + $defaultData,
$defaultBreadcrumb->withLevel(Breadcrumb::LEVEL_ERROR)
->withType(Breadcrumb::TYPE_ERROR),
];

yield 'with level ALERT' => [
['level' => Logger::ALERT] + $defaultData,
$defaultBreadcrumb->withLevel(Breadcrumb::LEVEL_FATAL)
->withType(Breadcrumb::TYPE_ERROR),
];

yield 'with context' => [
['context' => ['foo' => 'bar']] + $defaultData,
$defaultBreadcrumb->withMetadata('foo', 'bar'),
];

yield 'with extra' => [
['extra' => ['foo' => 'bar']] + $defaultData,
$defaultBreadcrumb->withMetadata('foo', 'bar'),
];

yield 'with context + extra' => [
[
'context' => ['foo' => 'bar', 'context' => 'baz'],
'extra' => ['foo' => 'baz', 'extra' => 'baz'],
] + $defaultData,
$defaultBreadcrumb->withMetadata('foo', 'bar')
->withMetadata('context', 'baz')
->withMetadata('extra', 'baz'),
];
}
}

0 comments on commit 2d23abe

Please sign in to comment.