diff --git a/composer.json b/composer.json index b4f7625..80134c1 100644 --- a/composer.json +++ b/composer.json @@ -23,6 +23,7 @@ "orchestra/testbench": "^9.0", "phpstan/phpstan": "^1.10", "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.4", "phpunit/phpunit": "^11.0", "staudenmeir/eloquent-json-relations": "^1.11", "staudenmeir/laravel-adjacency-list": "^1.21" diff --git a/phpstan.neon.dist b/phpstan.neon.dist index 29ccebc..ece647c 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -1,11 +1,14 @@ includes: - ./vendor/larastan/larastan/extension.neon - ./vendor/phpstan/phpstan-mockery/extension.neon + - ./vendor/phpstan/phpstan-phpunit/extension.neon + - ./vendor/phpstan/phpstan-phpunit/rules.neon parameters: - level: 4 + level: 5 paths: - src - tests treatPhpDocTypesAsCertain: false ignoreErrors: - '#Unsafe usage of new static\(\).#' + - '#Parameter \#\d+ \$relations of method Illuminate\\Database\\Eloquent\\Collection<[^>]+\>::load\(\) expects#' diff --git a/tests/Concatenation/LaravelAdjacencyList/AncestorsTest.php b/tests/Concatenation/LaravelAdjacencyList/AncestorsTest.php index f5d0c1c..960b710 100644 --- a/tests/Concatenation/LaravelAdjacencyList/AncestorsTest.php +++ b/tests/Concatenation/LaravelAdjacencyList/AncestorsTest.php @@ -2,6 +2,7 @@ namespace Tests\Concatenation\LaravelAdjacencyList; +use Illuminate\Database\Eloquent\Relations\Relation; use Staudenmeir\EloquentHasManyDeep\HasManyDeep; use Tests\Concatenation\LaravelAdjacencyList\Models\User; @@ -65,7 +66,7 @@ public function testEagerLoadingWithHasOneDeep() public function testLazyEagerLoading() { $users = User::all()->load([ - 'ancestorPosts' => fn (HasManyDeep $query) => $query->orderBy('id'), + 'ancestorPosts' => fn (Relation $query) => $query->getQuery()->orderBy('id'), ]); $this->assertEquals([], $users[0]->ancestorPosts->pluck('id')->all()); diff --git a/tests/Concatenation/LaravelAdjacencyList/BloodlineTest.php b/tests/Concatenation/LaravelAdjacencyList/BloodlineTest.php index c4a1469..939eb3c 100644 --- a/tests/Concatenation/LaravelAdjacencyList/BloodlineTest.php +++ b/tests/Concatenation/LaravelAdjacencyList/BloodlineTest.php @@ -2,6 +2,7 @@ namespace Tests\Concatenation\LaravelAdjacencyList; +use Illuminate\Database\Eloquent\Relations\Relation; use Staudenmeir\EloquentHasManyDeep\HasManyDeep; use Tests\Concatenation\LaravelAdjacencyList\Models\User; @@ -35,7 +36,7 @@ public function testEagerLoading() public function testLazyEagerLoading() { $users = User::all()->load([ - 'bloodlinePosts' => fn (HasManyDeep $query) => $query->orderBy('id'), + 'bloodlinePosts' => fn (Relation $query) => $query->getQuery()->orderBy('id'), ]); $this->assertEquals([10, 20, 30, 40, 50, 60, 70, 80], $users[0]->bloodlinePosts->pluck('id')->all());