Skip to content

Commit a3544b5

Browse files
nicholasruunuNyholm
authored andcommitted
Handles unknown milliseconds
1 parent 6f40e9a commit a3544b5

File tree

1 file changed

+38
-13
lines changed

1 file changed

+38
-13
lines changed

spec/LoggerPluginSpec.php

Lines changed: 38 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Http\Promise\FulfilledPromise;
88
use Http\Promise\RejectedPromise;
99
use Http\Message\Formatter;
10+
use Prophecy\Argument;
1011
use Psr\Http\Message\RequestInterface;
1112
use Psr\Http\Message\ResponseInterface;
1213
use Psr\Http\Message\UriInterface;
@@ -34,14 +35,23 @@ function it_logs_request_and_response(
3435
LoggerInterface $logger,
3536
Formatter $formatter,
3637
RequestInterface $request,
37-
ResponseInterface $response,
38-
$milliseconds
38+
ResponseInterface $response
3939
) {
4040
$formatter->formatRequest($request)->willReturn('GET / 1.1');
4141
$formatter->formatResponse($response)->willReturn('200 OK 1.1');
4242

4343
$logger->info("Sending request:\nGET / 1.1", ['request' => $request])->shouldBeCalled();
44-
$logger->info("Received response:\n200 OK 1.1\n\nfor request:\nGET / 1.1", ['request' => $request, 'response' => $response, 'milliseconds' => $milliseconds])->shouldBeCalled();
44+
$logger->info(
45+
"Received response:\n200 OK 1.1\n\nfor request:\nGET / 1.1",
46+
Argument::that(
47+
function(array $context) use ($request, $response) {
48+
return $context['request'] === $request
49+
&& $context['response'] === $response
50+
&& is_int($context['milliseconds'])
51+
;
52+
}
53+
)
54+
)->shouldBeCalled();
4555

4656
$next = function () use ($response) {
4757
return new FulfilledPromise($response->getWrappedObject());
@@ -50,14 +60,24 @@ function it_logs_request_and_response(
5060
$this->handleRequest($request, $next, function () {});
5161
}
5262

53-
function it_logs_exception(LoggerInterface $logger, Formatter $formatter, RequestInterface $request, $milliseconds)
63+
function it_logs_exception(LoggerInterface $logger, Formatter $formatter, RequestInterface $request)
5464
{
5565
$formatter->formatRequest($request)->willReturn('GET / 1.1');
5666

5767
$exception = new NetworkException('Cannot connect', $request->getWrappedObject());
5868

5969
$logger->info("Sending request:\nGET / 1.1", ['request' => $request])->shouldBeCalled();
60-
$logger->error("Error:\nCannot connect\nwhen sending request:\nGET / 1.1", ['request' => $request, 'exception' => $exception, 'milliseconds' => $milliseconds])->shouldBeCalled();
70+
$logger->error(
71+
"Error:\nCannot connect\nwhen sending request:\nGET / 1.1",
72+
Argument::that(
73+
function(array $context) use ($request, $exception) {
74+
return $context['request'] === $request
75+
&& $context['exception'] === $exception
76+
&& is_int($context['milliseconds'])
77+
;
78+
}
79+
)
80+
)->shouldBeCalled();
6181

6282
$next = function () use ($exception) {
6383
return new RejectedPromise($exception);
@@ -70,21 +90,26 @@ function it_logs_response_within_exception(
7090
LoggerInterface $logger,
7191
Formatter $formatter,
7292
RequestInterface $request,
73-
ResponseInterface $response,
74-
$milliseconds
93+
ResponseInterface $response
7594
) {
7695
$formatter->formatRequest($request)->willReturn('GET / 1.1');
7796
$formatter->formatResponse($response)->willReturn('403 Forbidden 1.1');
7897

7998
$exception = new HttpException('Forbidden', $request->getWrappedObject(), $response->getWrappedObject());
8099

81100
$logger->info("Sending request:\nGET / 1.1", ['request' => $request])->shouldBeCalled();
82-
$logger->error("Error:\nForbidden\nwith response:\n403 Forbidden 1.1\n\nwhen sending request:\nGET / 1.1", [
83-
'request' => $request,
84-
'response' => $response,
85-
'exception' => $exception,
86-
'milliseconds' => $milliseconds
87-
])->shouldBeCalled();
101+
$logger->error(
102+
"Error:\nForbidden\nwith response:\n403 Forbidden 1.1\n\nwhen sending request:\nGET / 1.1",
103+
Argument::that(
104+
function(array $context) use ($request, $response, $exception) {
105+
return $context['request'] === $request
106+
&& $context['response'] === $response
107+
&& $context['exception'] === $exception
108+
&& is_int($context['milliseconds'])
109+
;
110+
}
111+
)
112+
)->shouldBeCalled();
88113

89114
$next = function () use ($exception) {
90115
return new RejectedPromise($exception);

0 commit comments

Comments
 (0)