Skip to content

Commit 7a6438f

Browse files
committed
wip
1 parent 3e1d920 commit 7a6438f

13 files changed

+29
-123
lines changed

composer.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,10 @@
5050
"test-coverage": "phpunit --coverage-html coverage"
5151
},
5252
"config": {
53-
"sort-packages": true
53+
"sort-packages": true,
54+
"allow-plugins": {
55+
"pestphp/pest-plugin": true
56+
}
5457
},
5558
"extra": {
5659
"laravel": {

tests/AppendTest.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
use Spatie\QueryBuilder\QueryBuilder;
88
use Spatie\QueryBuilder\Tests\TestClasses\Models\AppendModel;
99

10-
uses(TestCase::class);
11-
1210
beforeEach(function () {
1311
AppendModel::factory()->count(5)->create();
1412
});

tests/FieldsTest.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
use Spatie\QueryBuilder\Tests\TestClasses\Models\RelatedModel;
1010
use Spatie\QueryBuilder\Tests\TestClasses\Models\TestModel;
1111

12-
uses(TestCase::class);
13-
1412
beforeEach(function () {
1513
$this->model = TestModel::factory()->create();
1614

tests/FilterTest.php

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
use Spatie\QueryBuilder\QueryBuilder;
1313
use Spatie\QueryBuilder\Tests\TestClasses\Models\TestModel;
1414

15-
uses(TestCase::class);
16-
1715
beforeEach(function () {
1816
$this->models = TestModel::factory()->count(5)->create();
1917
});
@@ -144,7 +142,7 @@
144142
->allowedFilters(AllowedFilter::exact('id'))
145143
->get();
146144

147-
expect($models)->toEqual(Result, $models);
145+
expect($models)->toEqual($modelsResult, $models);
148146
});
149147

150148
it('can filter and reject results by exact property', function () {
@@ -465,12 +463,3 @@ public function __invoke(Builder $query, $value, string $property): Builder
465463
expect($models->count())->toEqual(0);
466464
});
467465

468-
// Helpers
469-
function createQueryFromFilterRequest(array $filters): QueryBuilder
470-
{
471-
$request = new Request([
472-
'filter' => $filters,
473-
]);
474-
475-
return QueryBuilder::for(TestModel::class, $request);
476-
}

tests/FiltersCallbackTest.php

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
use Spatie\QueryBuilder\QueryBuilder;
77
use Spatie\QueryBuilder\Tests\TestClasses\Models\TestModel;
88

9-
uses(TestCase::class);
10-
119
beforeEach(function () {
1210
$this->models = TestModel::factory()->count(3)->create();
1311
});
@@ -39,12 +37,3 @@ function filterCallback(Builder $query, $value)
3937
{
4038
$query->where('name', $value);
4139
}
42-
43-
function createQueryFromFilterRequest(array $filters): QueryBuilder
44-
{
45-
$request = new Request([
46-
'filter' => $filters,
47-
]);
48-
49-
return QueryBuilder::for(TestModel::class, $request);
50-
}

tests/FiltersTrashedTest.php

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
use Spatie\QueryBuilder\QueryBuilder;
66
use Spatie\QueryBuilder\Tests\TestClasses\Models\SoftDeleteModel;
77

8-
uses(TestCase::class);
9-
108
beforeEach(function () {
119
$this->models = collect([
1210
SoftDeleteModel::factory()->create(),
@@ -29,7 +27,7 @@
2927
it('can filter only trashed', function () {
3028
$models = createQueryFromFilterRequest([
3129
'trashed' => 'only',
32-
])
30+
], SoftDeleteModel::class)
3331
->allowedFilters(AllowedFilter::trashed())
3432
->get();
3533

@@ -39,7 +37,7 @@
3937
it('can filter only trashed by scope directly', function () {
4038
$models = createQueryFromFilterRequest([
4139
'only_trashed' => true,
42-
])
40+
], SoftDeleteModel::class)
4341
->allowedFilters(AllowedFilter::scope('only_trashed'))
4442
->get();
4543

@@ -49,19 +47,10 @@
4947
it('can filter with trashed', function () {
5048
$models = createQueryFromFilterRequest([
5149
'trashed' => 'with',
52-
])
50+
], SoftDeleteModel::class)
5351
->allowedFilters(AllowedFilter::trashed())
5452
->get();
5553

5654
expect($models)->toHaveCount(3);
5755
});
5856

59-
// Helpers
60-
function createQueryFromFilterRequest(array $filters): QueryBuilder
61-
{
62-
$request = new Request([
63-
'filter' => $filters,
64-
]);
65-
66-
return QueryBuilder::for(SoftDeleteModel::class, $request);
67-
}

tests/IncludeTest.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
use Spatie\QueryBuilder\Tests\TestClasses\Models\MorphModel;
1414
use Spatie\QueryBuilder\Tests\TestClasses\Models\TestModel;
1515

16-
uses(TestCase::class);
17-
1816
beforeEach(function () {
1917
$this->models = TestModel::factory()->count(5)->create();
2018

tests/Pest.php

Lines changed: 21 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,29 @@
11
<?php
22

3-
uses(\Spatie\QueryBuilder\Tests\TestCase::class)->in('tests', 'Concerns', 'TestClasses');
3+
use Illuminate\Support\Facades\DB;
4+
use Spatie\QueryBuilder\QueryBuilder;
5+
use Spatie\QueryBuilder\Tests\TestCase;
6+
use Illuminate\Http\Request;
7+
use Spatie\QueryBuilder\Tests\TestClasses\Models\TestModel;
48

5-
/*
6-
|--------------------------------------------------------------------------
7-
| Test Case
8-
|--------------------------------------------------------------------------
9-
|
10-
| The closure you provide to your test functions is always bound to a specific PHPUnit test
11-
| case class. By default, that class is "PHPUnit\Framework\TestCase". Of course, you may
12-
| need to change it using the "uses()" function to bind a different classes or traits.
13-
|
14-
*/
9+
uses(TestCase::class)->in(__DIR__);
1510

16-
/** @link https://pestphp.com/docs/underlying-test-case */
11+
function createQueryFromFilterRequest(array $filters, string $model = null): QueryBuilder
12+
{
13+
$model ??= TestModel::class;
1714

18-
/*
19-
|--------------------------------------------------------------------------
20-
| Expectations
21-
|--------------------------------------------------------------------------
22-
|
23-
| When you're writing tests, you often need to check that values meet certain conditions. The
24-
| "expect()" function gives you access to a set of "expectations" methods that you can use
25-
| to assert different things. Of course, you may extend the Expectation API at any time.
26-
|
27-
*/
15+
$request = new Request([
16+
'filter' => $filters,
17+
]);
2818

29-
/** @link https://pestphp.com/docs/expectations#custom-expectations */
19+
return QueryBuilder::for($model, $request);
20+
}
3021

31-
/*
32-
|--------------------------------------------------------------------------
33-
| Functions
34-
|--------------------------------------------------------------------------
35-
|
36-
| While Pest is very powerful out-of-the-box, you may have some testing code specific to your
37-
| project that you don't want to repeat in every file. Here you can also expose helpers as
38-
| global functions to help you to reduce the number of lines of code in your test files.
39-
|
40-
*/
22+
function assertQueryExecuted(string $query)
23+
{
24+
$queries = array_map(function ($queryLogItem) {
25+
return $queryLogItem['query'];
26+
}, DB::getQueryLog());
4127

42-
/** @link https://pestphp.com/docs/helpers */
28+
expect($queries)->toContain($query);
29+
}

tests/QueryBuilderRequestTest.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
use Spatie\QueryBuilder\QueryBuilderRequest;
44

5-
uses(TestCase::class);
6-
75
it('can filter nested arrays', function () {
86
$expected = [
97
'info' => [

tests/QueryBuilderTest.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
use Spatie\QueryBuilder\Tests\TestClasses\Models\SoftDeleteModel;
1414
use Spatie\QueryBuilder\Tests\TestClasses\Models\TestModel;
1515

16-
uses(TestCase::class);
17-
1816
it('can be given an eloquent query using where', function () {
1917
$queryBuilder = QueryBuilder::for(TestModel::where('id', 1));
2018

0 commit comments

Comments
 (0)