Skip to content

Commit a391c57

Browse files
committed
add test
1 parent c6f5186 commit a391c57

1 file changed

Lines changed: 49 additions & 0 deletions

File tree

tests/Monolog/LogsHandlerTest.php

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,16 @@
77
use Monolog\Logger;
88
use PHPUnit\Framework\TestCase;
99
use Sentry\ClientBuilder;
10+
use Sentry\Event;
1011
use Sentry\Logs\Log;
1112
use Sentry\Logs\LogLevel;
1213
use Sentry\Logs\Logs;
1314
use Sentry\Monolog\LogsHandler;
1415
use Sentry\SentrySdk;
1516
use Sentry\State\Hub;
17+
use Sentry\Transport\Result;
18+
use Sentry\Transport\ResultStatus;
19+
use Sentry\Transport\TransportInterface;
1620

1721
final class LogsHandlerTest extends TestCase
1822
{
@@ -82,6 +86,51 @@ public function testLogLevels($record, int $countLogs): void
8286
$this->assertCount($countLogs, $logs);
8387
}
8488

89+
public function testLogsHandlerDestructor()
90+
{
91+
$transport = new class implements TransportInterface {
92+
private $events = [];
93+
94+
public function send(Event $event): Result
95+
{
96+
$this->events[] = $event;
97+
98+
return new Result(ResultStatus::success());
99+
}
100+
101+
public function close(?int $timeout = null): Result
102+
{
103+
return new Result(ResultStatus::success());
104+
}
105+
106+
/**
107+
* @return Event[]
108+
*/
109+
public function getEvents(): array
110+
{
111+
return $this->events;
112+
}
113+
};
114+
$client = ClientBuilder::create([
115+
'enable_logs' => true,
116+
])->setTransport($transport)
117+
->getClient();
118+
119+
$hub = new Hub($client);
120+
SentrySdk::setCurrentHub($hub);
121+
122+
$this->handleLogAndDrop();
123+
124+
$this->assertCount(1, $transport->getEvents());
125+
$this->assertSame('I was dropped :(', $transport->getEvents()[0]->getLogs()[0]->getBody());
126+
}
127+
128+
private function handleLogAndDrop(): void
129+
{
130+
$handler = new LogsHandler();
131+
$handler->handle(RecordFactory::create('I was dropped :(', Logger::INFO, 'chanel.foo', [], []));
132+
}
133+
85134
public static function handleDataProvider(): iterable
86135
{
87136
yield [

0 commit comments

Comments
 (0)