8
8
use GuzzleHttp \Psr7 \Response ;
9
9
use Illuminate \Support \Facades \Log ;
10
10
use Illuminate \Support \Str ;
11
+ use TiMacDonald \Log \LogEntry ;
11
12
use TiMacDonald \Log \LogFake ;
12
13
13
14
class HttpLoggerTest extends TestCase
@@ -26,118 +27,125 @@ public function setUp(): void
26
27
27
28
public function test_response_code_200_logs_debug_level ()
28
29
{
29
- Log:: swap ( new LogFake () );
30
+ LogFake:: bind ( );
30
31
31
32
$ this ->logger ->log ($ this ->request , new Response (200 ), 0.2 );
32
33
33
- Log::assertLogged ('debug ' );
34
+ Log::assertLogged (fn ( LogEntry $ log ) => $ log -> level === 'debug ' );
34
35
}
35
36
36
37
public function test_response_code_300_logs_info_level ()
37
38
{
38
- Log:: swap ( new LogFake () );
39
+ LogFake:: bind ( );
39
40
40
41
$ this ->logger ->log ($ this ->request , new Response (300 ), 0.2 );
41
42
42
- Log::assertLogged ('info ' );
43
+ Log::assertLogged (fn ( LogEntry $ log ) => $ log -> level === 'info ' );
43
44
}
44
45
45
46
public function test_response_code_400_logs_error_level ()
46
47
{
47
- Log:: swap ( new LogFake () );
48
+ LogFake:: bind ( );
48
49
49
50
$ this ->logger ->log ($ this ->request , new Response (400 ), 0.2 );
50
51
51
- Log::assertLogged ('error ' );
52
+ Log::assertLogged (fn ( LogEntry $ log ) => $ log -> level === 'error ' );
52
53
}
53
54
54
55
public function test_response_code_400_logs_critical_level ()
55
56
{
56
- Log:: swap ( new LogFake () );
57
+ LogFake:: bind ( );
57
58
58
59
$ this ->logger ->log ($ this ->request , new Response (500 ), 0.2 );
59
60
60
- Log::assertLogged ('critical ' );
61
+ Log::assertLogged (fn ( LogEntry $ log ) => $ log -> level === 'critical ' );
61
62
}
62
63
63
64
public function test_log_contains_request_header ()
64
65
{
65
- Log:: swap ( new LogFake () );
66
+ LogFake:: bind ( );
66
67
67
68
$ this ->logger ->log ($ this ->request , new Response (200 ), 0.2 );
68
69
69
- Log::assertLogged ('debug ' , function ($ message , $ context ) {
70
- return Str::contains ($ message , 'header1: HIJKL ' );
70
+ Log::assertLogged (function (LogEntry $ log ): bool {
71
+ return $ log ->level === 'debug '
72
+ && Str::contains ($ log ->message , 'header1: HIJKL ' );
71
73
});
72
74
}
73
75
74
76
public function test_log_contains_request_body ()
75
77
{
76
- Log:: swap ( new LogFake () );
78
+ LogFake:: bind ( );
77
79
78
80
$ this ->logger ->log ($ this ->request , new Response (200 ), 0.2 );
79
81
80
- Log::assertLogged ('debug ' , function ($ message , $ context ) {
81
- return Str::contains ($ message , 'TestRequestBody ' );
82
+ Log::assertLogged (function (LogEntry $ log ): bool {
83
+ return $ log ->level === 'debug '
84
+ && Str::contains ($ log ->message , 'TestRequestBody ' );
82
85
});
83
86
}
84
87
85
88
public function test_log_contains_response_header ()
86
89
{
87
- Log:: swap ( new LogFake () );
90
+ LogFake:: bind ( );
88
91
89
92
$ this ->logger ->log ($ this ->request , new Response (200 , ['header2 ' => 'XYZ ' ]), 0.2 );
90
93
91
- Log::assertLogged ('debug ' , function ($ message , $ context ) {
92
- return Str::contains ($ message , 'header2: XYZ ' );
94
+ Log::assertLogged (function (LogEntry $ log ): bool {
95
+ return $ log ->level === 'debug '
96
+ && Str::contains ($ log ->message , 'header2: XYZ ' );
93
97
});
94
98
}
95
99
96
100
public function test_log_contains_response_body ()
97
101
{
98
- Log:: swap ( new LogFake () );
102
+ LogFake:: bind ( );
99
103
100
104
$ this ->logger ->log ($ this ->request , new Response (200 , [], 'TestResponseBody ' ), 0.2 );
101
105
102
- Log::assertLogged ('debug ' , function ($ message , $ context ) {
103
- return Str::contains ($ message , 'TestResponseBody ' );
106
+ Log::assertLogged (function (LogEntry $ log ): bool {
107
+ return $ log ->level === 'debug '
108
+ && Str::contains ($ log ->message , 'TestResponseBody ' );
104
109
});
105
110
}
106
111
107
112
public function test_logs_context ()
108
113
{
109
- Log:: swap ( new LogFake () );
114
+ LogFake:: bind ( );
110
115
111
116
$ this ->logger ->log ($ this ->request , new Response (200 ), 0.2 , ['context ' ]);
112
117
113
- Log::assertLogged ('debug ' , function ($ message , $ context ) {
114
- return $ context == ['context ' ];
118
+ Log::assertLogged (function (LogEntry $ log ): bool {
119
+ return $ log ->level === 'debug '
120
+ && $ log ->context == ['context ' ];
115
121
});
116
122
}
117
123
118
124
public function test_replaces_placeholders_from_request ()
119
125
{
120
- Log:: swap ( new LogFake () );
126
+ LogFake:: bind ( );
121
127
122
128
$ this ->logger ->log ($ this ->request , new Response (200 ), 0.2 , ['test123 ' ], ['replace ' => ['example.com ' => 'mock.org ' ]]);
123
129
124
- Log::assertLogged ('debug ' , function ($ message , $ context ) {
125
- return Str::contains ($ message , 'mock.org ' )
126
- && !Str::contains ($ message , 'example.com ' )
127
- && $ context == ['test123 ' ];
130
+ Log::assertLogged (function (LogEntry $ log ): bool {
131
+ return $ log ->level === 'debug '
132
+ && Str::contains ($ log ->message , 'mock.org ' )
133
+ && !Str::contains ($ log ->message , 'example.com ' )
134
+ && $ log ->context == ['test123 ' ];
128
135
});
129
136
}
130
137
131
138
public function test_replaces_placeholders_from_response ()
132
139
{
133
- Log:: swap ( new LogFake () );
140
+ LogFake:: bind ( );
134
141
135
142
$ this ->logger ->log ($ this ->request , new Response (200 , [], 'My name is John Doe ' ), 0.2 , ['test123 ' ], ['replace ' => ['Doe ' => 'Smith ' ]]);
136
143
137
- Log::assertLogged ('debug ' , function ($ message , $ context ) {
138
- return Str::contains ($ message , 'Smith ' )
139
- && !Str::contains ($ message , 'Doe ' )
140
- && $ context == ['test123 ' ];
144
+ Log::assertLogged (function (LogEntry $ log ): bool {
145
+ return $ log ->level === 'debug '
146
+ && Str::contains ($ log ->message , 'Smith ' )
147
+ && !Str::contains ($ log ->message , 'Doe ' )
148
+ && $ log ->context == ['test123 ' ];
141
149
});
142
150
}
143
151
}
0 commit comments