Skip to content

Commit f8a7e7d

Browse files
authored
Merge pull request #18 from AyoobMH/refactor-tests-to-pest
Refactor tests to pest
2 parents b8c1f42 + 57a8f71 commit f8a7e7d

File tree

10 files changed

+212
-259
lines changed

10 files changed

+212
-259
lines changed

.github/workflows/run-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,4 @@ jobs:
4343
composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest
4444
4545
- name: Execute tests
46-
run: vendor/bin/phpunit
46+
run: vendor/bin/pest

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ coverage
77
.idea
88
.php_cs.cache
99
.php-cs-fixer.cache
10-
10+
.idea

composer.json

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,19 @@
2222
"spatie/typescript-transformer" : "^2.1.12"
2323
},
2424
"require-dev" : {
25-
"orchestra/testbench" : "^6.0|^7.0",
26-
"mockery/mockery" : "^1.4",
27-
"phpunit/phpunit" : "^9.0",
28-
"spatie/temporary-directory" : "^1.2",
29-
"spatie/phpunit-snapshot-assertions": "^4.2",
30-
"spatie/data-transfer-object" : "^2.0",
3125
"friendsofphp/php-cs-fixer": "^3.0",
32-
"spatie/laravel-model-states" : "^1.6|^2.0",
33-
"spatie/enum" : "^3.0",
34-
"vimeo/psalm": "^4.2",
35-
"nesbot/carbon" : "^2.63"
26+
"mockery/mockery": "^1.4",
27+
"nesbot/carbon": "^2.63",
28+
"orchestra/testbench": "^6.0|^7.0",
29+
"pestphp/pest": "^1.22",
30+
"phpunit/phpunit": "^9.0",
31+
"spatie/data-transfer-object": "^2.0",
32+
"spatie/enum": "^3.0",
33+
"spatie/laravel-model-states": "^1.6|^2.0",
34+
"spatie/pest-plugin-snapshots": "^1.1",
35+
"spatie/phpunit-snapshot-assertions": "^4.2",
36+
"spatie/temporary-directory": "^1.2",
37+
"vimeo/psalm": "^4.2"
3638
},
3739
"autoload" : {
3840
"psr-4" : {
@@ -45,13 +47,16 @@
4547
}
4648
},
4749
"scripts" : {
48-
"test" : "vendor/bin/phpunit",
49-
"test-coverage" : "vendor/bin/phpunit --coverage-html coverage",
50+
"test" : "vendor/bin/pest",
51+
"test-coverage" : "vendor/bin/pest --coverage",
5052
"psalm": "./vendor/bin/psalm -c psalm.xml",
5153
"format": "./vendor/bin/php-cs-fixer fix --allow-risky=yes"
5254
},
5355
"config" : {
54-
"sort-packages" : true
56+
"sort-packages" : true,
57+
"allow-plugins": {
58+
"pestphp/pest-plugin": true
59+
}
5560
},
5661
"extra" : {
5762
"laravel" : {

tests/Pest.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
use Spatie\LaravelTypeScriptTransformer\Tests\TestCase;
4+
5+
/*
6+
|--------------------------------------------------------------------------
7+
| Test Case
8+
|--------------------------------------------------------------------------
9+
*/
10+
11+
uses(TestCase::class)->in('.');
12+
13+
/*
14+
|--------------------------------------------------------------------------
15+
| Expectations
16+
|--------------------------------------------------------------------------
17+
*/
18+
19+
/*
20+
|--------------------------------------------------------------------------
21+
| Functions
22+
|--------------------------------------------------------------------------
23+
*/

tests/TestCase.php

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@
77

88
class TestCase extends Orchestra
99
{
10-
public function setUp(): void
11-
{
12-
parent::setUp();
13-
}
14-
1510
protected function getPackageProviders($app)
1611
{
1712
return [
Lines changed: 19 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,27 @@
11
<?php
22

3-
namespace Spatie\LaravelTypeScriptTransformer\Tests\Transformers;
4-
5-
use ReflectionClass;
63
use Spatie\LaravelTypeScriptTransformer\Tests\FakeClasses\Dto\Dto;
74
use Spatie\LaravelTypeScriptTransformer\Tests\FakeClasses\Dto\OtherDto;
8-
use Spatie\LaravelTypeScriptTransformer\Tests\TestCase;
95
use Spatie\LaravelTypeScriptTransformer\Transformers\DtoTransformer;
10-
use Spatie\Snapshots\MatchesSnapshots;
116
use Spatie\TypeScriptTransformer\Tests\FakeClasses\Integration\OtherDtoCollection;
127
use Spatie\TypeScriptTransformer\TypeScriptTransformerConfig;
138

14-
class DtoTransformerTest extends TestCase
15-
{
16-
private DtoTransformer $transformer;
17-
18-
use MatchesSnapshots;
19-
20-
public function setUp(): void
21-
{
22-
parent::setUp();
23-
24-
$this->transformer = new DtoTransformer(
25-
resolve(TypeScriptTransformerConfig::class)
26-
);
27-
}
28-
29-
/** @test */
30-
public function it_can_transform_a_dto()
31-
{
32-
$type = $this->transformer->transform(
33-
new ReflectionClass(Dto::class),
34-
'FakeDto'
35-
);
36-
37-
$this->assertMatchesSnapshot($type->transformed);
38-
$this->assertEquals([
39-
OtherDto::class,
40-
OtherDtoCollection::class,
41-
], $type->missingSymbols->all());
42-
$this->assertFalse($type->isInline);
43-
}
44-
}
9+
beforeEach(function () {
10+
$this->transformer = new DtoTransformer(
11+
resolve(TypeScriptTransformerConfig::class)
12+
);
13+
});
14+
15+
it('can transform a dto', function () {
16+
$type = $this->transformer->transform(
17+
new ReflectionClass(Dto::class),
18+
'FakeDto'
19+
);
20+
21+
expect($type->transformed)->toMatchSnapshot();
22+
expect([
23+
OtherDto::class,
24+
OtherDtoCollection::class,
25+
])->toEqual($type->missingSymbols->all());
26+
expect($type->isInline)->toBeFalse();
27+
});
Lines changed: 31 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,37 @@
11
<?php
22

3-
namespace Spatie\LaravelTypeScriptTransformer\Tests\Transformers;
4-
5-
use DateTime;
6-
use ReflectionClass;
73
use Spatie\LaravelTypeScriptTransformer\Tests\FakeClasses\ChildState;
84
use Spatie\LaravelTypeScriptTransformer\Tests\FakeClasses\State;
9-
use Spatie\LaravelTypeScriptTransformer\Tests\TestCase;
105
use Spatie\LaravelTypeScriptTransformer\Transformers\SpatieStateTransformer;
116

12-
class SpatieStateTransformerTest extends TestCase
13-
{
14-
private SpatieStateTransformer $transformer;
15-
16-
public function setUp(): void
17-
{
18-
parent::setUp();
19-
20-
$this->transformer = new SpatieStateTransformer();
21-
}
22-
23-
/** @test */
24-
public function it_will_only_convert_states()
25-
{
26-
$this->assertNotNull($this->transformer->transform(
27-
new ReflectionClass(State::class),
28-
'State'
29-
));
30-
31-
$this->assertNull($this->transformer->transform(
32-
new ReflectionClass(ChildState::class),
33-
'State'
34-
));
35-
36-
$this->assertNull($this->transformer->transform(
37-
new ReflectionClass(DateTime::class),
38-
'State'
39-
));
40-
}
41-
42-
/** @test */
43-
public function it_can_transform_an_state()
44-
{
45-
$type = $this->transformer->transform(
46-
new ReflectionClass(State::class),
47-
'FakeState'
48-
);
49-
50-
$this->assertEquals("'child' | 'other_child'", $type->transformed);
51-
$this->assertTrue($type->missingSymbols->isEmpty());
52-
$this->assertFalse($type->isInline);
53-
}
54-
}
7+
beforeEach(function () {
8+
$this->transformer = new SpatieStateTransformer();
9+
});
10+
11+
it('will only convert states', function () {
12+
expect($this->transformer->transform(
13+
new ReflectionClass(State::class),
14+
'State'
15+
))->not->toBeNull();
16+
17+
expect($this->transformer->transform(
18+
new ReflectionClass(ChildState::class),
19+
'State'
20+
))->toBeNull();
21+
22+
expect($this->transformer->transform(
23+
new ReflectionClass(DateTime::class),
24+
'State'
25+
))->toBeNull();
26+
});
27+
28+
it('can transform an state', function () {
29+
$type = $this->transformer->transform(
30+
new ReflectionClass(State::class),
31+
'FakeState'
32+
);
33+
34+
expect($type->transformed)->toEqual("'child' | 'other_child'");
35+
expect($type->missingSymbols->isEmpty())->toBeTrue();
36+
expect($type->isInline)->toBeFalse();
37+
});

0 commit comments

Comments
 (0)