Skip to content

Commit 486fd7f

Browse files
authored
Merge pull request #55 from AyoobMH/refactor-tests-to-pest
Refactor tests to pest
2 parents 7f5842f + fe5a116 commit 486fd7f

File tree

7 files changed

+144
-179
lines changed

7 files changed

+144
-179
lines changed

.github/workflows/run-tests.yml

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,37 +9,17 @@ jobs:
99
fail-fast: true
1010
matrix:
1111
os: [ubuntu-latest,]
12-
php: [8.1, 8.0, 7.4, 7.3, 7.2]
13-
laravel: [5.8.*, 6.*, 7.*, 8.*, 9.*]
12+
php: [8.1, 8.0, 7.4]
13+
laravel: [8.*, 9.*]
1414
dependency-version: [prefer-stable]
1515
include:
1616
- laravel: 9.*
1717
testbench: 7.*
1818
- laravel: 8.*
1919
testbench: 6.*
20-
- laravel: 7.*
21-
testbench: 5.*
22-
- laravel: 6.*
23-
testbench: 4.*
24-
- laravel: 5.8.*
25-
testbench: 3.8.*
2620
exclude:
2721
- laravel: 9.*
2822
php: 7.4
29-
- laravel: 9.*
30-
php: 7.3
31-
- laravel: 9.*
32-
php: 7.2
33-
- laravel: 8.*
34-
php: 7.2
35-
- laravel: 7.*
36-
php: 8.1
37-
- laravel: 6.*
38-
php: 8.1
39-
- laravel: 5.8.*
40-
php: 8.0
41-
- laravel: 5.8.*
42-
php: 8.1
4323

4424
name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.dependency-version }} - ${{ matrix.os }}
4525

@@ -60,4 +40,4 @@ jobs:
6040
composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction
6141
6242
- name: Execute tests
63-
run: vendor/bin/phpunit
43+
run: vendor/bin/pest

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ docs
44
vendor
55
tests/temp
66
.php-cs-fixer.cache
7-
7+
.idea
8+
.phpunit.result.cache

composer.json

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,13 @@
1616
}
1717
],
1818
"require": {
19-
"php": "^7.2|^8.0",
20-
"illuminate/support": "~5.8.0|^6.0|^7.0|^8.0|^9.0"
19+
"php": "^7.4|^8.0",
20+
"illuminate/support": "^8.0|^9.0"
2121
},
2222
"require-dev": {
23-
"orchestra/testbench": "~3.8.0|^4.0|^5.0|^6.0|^7.0",
24-
"phpunit/phpunit": "^8.0|^9.0"
23+
"orchestra/testbench": "^6.0|^7.0",
24+
"pestphp/pest": "^1.22",
25+
"phpunit/phpunit": "^9.0"
2526
},
2627
"autoload": {
2728
"psr-4": {
@@ -34,10 +35,13 @@
3435
}
3536
},
3637
"scripts": {
37-
"test": "vendor/bin/phpunit"
38+
"test": "vendor/bin/pest"
3839
},
3940
"config": {
40-
"sort-packages": true
41+
"sort-packages": true,
42+
"allow-plugins": {
43+
"pestphp/pest-plugin": true
44+
}
4145
},
4246
"extra": {
4347
"laravel": {

tests/DefaultLogWriterTest.php

Lines changed: 88 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -1,152 +1,129 @@
11
<?php
22

3-
namespace Spatie\HttpLogger\Test;
4-
53
use Illuminate\Http\UploadedFile;
4+
5+
use function PHPUnit\Framework\assertStringContainsString;
6+
use function PHPUnit\Framework\assertStringNotContainsString;
7+
68
use Spatie\HttpLogger\DefaultLogWriter;
79

8-
class DefaultLogWriterTest extends TestCase
9-
{
10-
/** @var \Spatie\HttpLogger\DefaultLogWriter */
11-
protected $logger;
10+
beforeEach(function () {
11+
$this->logger = new DefaultLogWriter();
12+
});
1213

13-
public function setUp(): void
14-
{
15-
parent::setup();
14+
it('logs request method and uri', function () {
15+
foreach (['post', 'put', 'patch', 'delete'] as $method) {
16+
$request = $this->makeRequest($method, $this->uri);
1617

17-
$this->logger = new DefaultLogWriter();
18+
$this->logger->logRequest($request);
1819
}
1920

20-
/** @test */
21-
public function it_logs_request_method_and_uri()
22-
{
23-
foreach (['post', 'put', 'patch', 'delete'] as $method) {
24-
$request = $this->makeRequest($method, $this->uri);
21+
$log = $this->readLogFile();
2522

26-
$this->logger->logRequest($request);
27-
}
23+
assertStringContainsString("POST {$this->uri}", $log);
24+
assertStringContainsString("PUT {$this->uri}", $log);
25+
assertStringContainsString("PATCH {$this->uri}", $log);
26+
assertStringContainsString("DELETE {$this->uri}", $log);
27+
});
2828

29-
$log = $this->readLogFile();
29+
it('will log the body', function () {
30+
$request = $this->makeRequest('post', $this->uri, [
31+
'name' => 'Name',
32+
]);
3033

31-
$this->assertStringContainsString("POST {$this->uri}", $log);
32-
$this->assertStringContainsString("PUT {$this->uri}", $log);
33-
$this->assertStringContainsString("PATCH {$this->uri}", $log);
34-
$this->assertStringContainsString("DELETE {$this->uri}", $log);
35-
}
34+
$this->logger->logRequest($request);
3635

37-
/** @test */
38-
public function it_will_log_the_body()
39-
{
40-
$request = $this->makeRequest('post', $this->uri, [
41-
'name' => 'Name',
42-
]);
36+
$log = $this->readLogFile();
4337

44-
$this->logger->logRequest($request);
38+
assertStringContainsString('"name":"Name', $log);
39+
});
4540

46-
$log = $this->readLogFile();
41+
it('will not log excluded fields', function () {
42+
$request = $this->makeRequest('post', $this->uri, [
43+
'name' => 'Name',
44+
'password' => 'none',
45+
'password_confirmation' => 'none',
46+
]);
4747

48-
$this->assertStringContainsString('"name":"Name', $log);
49-
}
48+
$this->logger->logRequest($request);
5049

51-
/** @test */
52-
public function it_will_not_log_excluded_fields()
53-
{
54-
$request = $this->makeRequest('post', $this->uri, [
55-
'name' => 'Name',
56-
'password' => 'none',
57-
'password_confirmation' => 'none',
58-
]);
50+
$log = $this->readLogFile();
5951

60-
$this->logger->logRequest($request);
52+
assertStringNotContainsString('password', $log);
53+
assertStringNotContainsString('password_confirmation', $log);
54+
});
6155

62-
$log = $this->readLogFile();
56+
it('logs files', function () {
57+
$file = $this->getTempFile();
6358

64-
$this->assertStringNotContainsString('password', $log);
65-
$this->assertStringNotContainsString('password_confirmation', $log);
66-
}
59+
$request = $this->makeRequest('post', $this->uri, [], [], [
60+
'file' => new UploadedFile($file, 'test.md'),
61+
]);
6762

68-
/** @test */
69-
public function it_logs_files()
70-
{
71-
$file = $this->getTempFile();
63+
$this->logger->logRequest($request);
7264

73-
$request = $this->makeRequest('post', $this->uri, [], [], [
74-
'file' => new UploadedFile($file, 'test.md'),
75-
]);
65+
$log = $this->readLogFile();
7666

77-
$this->logger->logRequest($request);
67+
assertStringContainsString('test.md', $log);
68+
});
7869

79-
$log = $this->readLogFile();
70+
it('logs one file in an array', function () {
71+
$file = $this->getTempFile();
8072

81-
$this->assertStringContainsString('test.md', $log);
82-
}
73+
$request = $this->makeRequest('post', $this->uri, [], [], [
74+
'files' => [
75+
new UploadedFile($file, 'test.md'),
76+
],
77+
]);
8378

84-
/** @test */
85-
public function it_logs_one_file_in_an_array()
86-
{
87-
$file = $this->getTempFile();
79+
$this->logger->logRequest($request);
8880

89-
$request = $this->makeRequest('post', $this->uri, [], [], [
90-
'files' => [
91-
new UploadedFile($file, 'test.md'),
92-
],
93-
]);
81+
$log = $this->readLogFile();
9482

95-
$this->logger->logRequest($request);
96-
97-
$log = $this->readLogFile();
83+
assertStringContainsString('test.md', $log);
84+
});
9885

99-
$this->assertStringContainsString('test.md', $log);
100-
}
86+
it('logs multiple files in an array', function () {
87+
$file = $this->getTempFile();
10188

102-
/** @test */
103-
public function it_logs_multiple_files_in_an_array()
104-
{
105-
$file = $this->getTempFile();
89+
$request = $this->makeRequest('post', $this->uri, [], [], [
90+
'files' => [
91+
new UploadedFile($file, 'first.doc'),
92+
new UploadedFile($file, 'second.doc'),
93+
],
94+
]);
10695

107-
$request = $this->makeRequest('post', $this->uri, [], [], [
108-
'files' => [
109-
new UploadedFile($file, 'first.doc'),
110-
new UploadedFile($file, 'second.doc'),
111-
],
112-
]);
113-
114-
$this->logger->logRequest($request);
96+
$this->logger->logRequest($request);
11597

116-
$log = $this->readLogFile();
98+
$log = $this->readLogFile();
11799

118-
$this->assertStringContainsString('first.doc', $log);
119-
$this->assertStringContainsString('second.doc', $log);
120-
}
100+
assertStringContainsString('first.doc', $log);
101+
assertStringContainsString('second.doc', $log);
102+
});
121103

122-
/** @test */
123-
public function it_logs_using_the_default_log_level()
124-
{
125-
$request = $this->makeRequest('post', $this->uri, [
126-
'name' => 'Name',
127-
]);
104+
it('logs using the default log level', function () {
105+
$request = $this->makeRequest('post', $this->uri, [
106+
'name' => 'Name',
107+
]);
128108

129-
$this->logger->logRequest($request);
109+
$this->logger->logRequest($request);
130110

131-
$log = $this->readLogFile();
111+
$log = $this->readLogFile();
132112

133-
$this->assertStringContainsString('testing.INFO', $log);
134-
$this->assertStringContainsString('"name":"Name', $log);
135-
}
113+
assertStringContainsString('testing.INFO', $log);
114+
assertStringContainsString('"name":"Name', $log);
115+
});
136116

137-
/** @test */
138-
public function it_logs_using_the_configured_log_level()
139-
{
140-
config(['http-logger.log_level' => 'debug']);
141-
$request = $this->makeRequest('post', $this->uri, [
142-
'name' => 'Name',
143-
]);
117+
it('logs using the configured log level', function () {
118+
config(['http-logger.log_level' => 'debug']);
119+
$request = $this->makeRequest('post', $this->uri, [
120+
'name' => 'Name',
121+
]);
144122

145-
$this->logger->logRequest($request);
123+
$this->logger->logRequest($request);
146124

147-
$log = $this->readLogFile();
125+
$log = $this->readLogFile();
148126

149-
$this->assertStringContainsString('testing.DEBUG', $log);
150-
$this->assertStringContainsString('"name":"Name', $log);
151-
}
152-
}
127+
assertStringContainsString('testing.DEBUG', $log);
128+
assertStringContainsString('"name":"Name', $log);
129+
});

tests/IntegrationTest.php

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
<?php
22

3-
namespace Spatie\HttpLogger\Test;
3+
use function PHPUnit\Framework\assertFileExists;
44

5-
class IntegrationTest extends TestCase
6-
{
7-
/** @test */
8-
public function it_logs_an_incoming_request_via_the_middleware()
9-
{
10-
$this->call('post', '/');
5+
it('logs an incoming request via the middleware', function () {
6+
$this->call('post', '/');
117

12-
$this->assertFileExists($this->getLogFile());
13-
}
14-
}
8+
assertFileExists($this->getLogFile());
9+
});

tests/LogNonGetRequestsTest.php

Lines changed: 13 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,23 @@
11
<?php
22

3-
namespace Spatie\HttpLogger\Test;
4-
53
use Spatie\HttpLogger\LogNonGetRequests;
64

7-
class LogNonGetRequestsTest extends TestCase
8-
{
9-
/** @var \Spatie\HttpLogger\LogNonGetRequests */
10-
protected $logProfile;
11-
12-
public function setUp(): void
13-
{
14-
parent::setup();
15-
16-
$this->logProfile = new LogNonGetRequests();
17-
}
5+
beforeEach(function () {
6+
$this->logProfile = new LogNonGetRequests();
7+
});
188

19-
/** @test */
20-
public function it_logs_post_patch_put_delete()
21-
{
22-
foreach (['post', 'put', 'patch', 'delete'] as $method) {
23-
$request = $this->makeRequest($method, $this->uri);
9+
it('logs post patch put delete', function () {
10+
foreach (['post', 'put', 'patch', 'delete'] as $method) {
11+
$request = $this->makeRequest($method, $this->uri);
2412

25-
$this->assertTrue($this->logProfile->shouldLogRequest($request), "{$method} should be logged.");
26-
}
13+
$this->assertTrue($this->logProfile->shouldLogRequest($request), "{$method} should be logged.");
2714
}
15+
});
2816

29-
/** @test */
30-
public function it_doesnt_log_get_head_options_trace()
31-
{
32-
foreach (['get', 'head', 'options', 'trace'] as $method) {
33-
$request = $this->makeRequest($method, $this->uri);
17+
it('doesnt log get head options trace', function () {
18+
foreach (['get', 'head', 'options', 'trace'] as $method) {
19+
$request = $this->makeRequest($method, $this->uri);
3420

35-
$this->assertFalse($this->logProfile->shouldLogRequest($request), "{$method} should not be logged.");
36-
}
21+
$this->assertFalse($this->logProfile->shouldLogRequest($request), "{$method} should not be logged.");
3722
}
38-
}
23+
});

0 commit comments

Comments
 (0)