diff --git a/stubs/10.0.0/QueryBuilder.stub b/stubs/10.0.0/QueryBuilder.stub index 43d2dc172..b4f063a45 100644 --- a/stubs/10.0.0/QueryBuilder.stub +++ b/stubs/10.0.0/QueryBuilder.stub @@ -13,7 +13,7 @@ class Builder * @param string $as * @param \Closure|string $first * @param string|null $operator - * @param string|null $second + * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second * @param string $type * @param bool $where * @return $this @@ -25,7 +25,7 @@ class Builder /** * Add a basic where clause to the query. * - * @param \Closure|string|array $column + * @param \Closure|string|array|\Illuminate\Contracts\Database\Query\Expression $column * @param mixed $operator * @param mixed $value * @param string $boolean @@ -46,7 +46,7 @@ class Builder /** * Add an "or where" clause to the query. * - * @param \Closure|model-property|array $column + * @param \Closure|model-property|array|\Illuminate\Contracts\Database\Query\Expression $column * @param mixed $operator * @param mixed $value * @return $this @@ -106,7 +106,7 @@ class Builder /** * Add a "where null" clause to the query. * - * @param string|array $columns + * @param string|array|\Illuminate\Contracts\Database\Query\Expression $columns * @param string $boolean * @param bool $not * @return $this @@ -116,7 +116,7 @@ class Builder /** * Add a "where not null" clause to the query. * - * @param string|array $columns + * @param string|array|\Illuminate\Contracts\Database\Query\Expression $columns * @param string $boolean * @return $this */ diff --git a/tests/Type/GeneralTypeTest.php b/tests/Type/GeneralTypeTest.php index afa2fc30b..ee3827527 100644 --- a/tests/Type/GeneralTypeTest.php +++ b/tests/Type/GeneralTypeTest.php @@ -69,6 +69,10 @@ public static function dataFileAsserts(): iterable yield from self::gatherAssertTypes(__DIR__.'/data/model-relations-l10-20.php'); } + if (version_compare(LARAVEL_VERSION, '10.24.0', '>=')) { + yield from self::gatherAssertTypes(__DIR__.'/data/query-builder-l10-24.php'); + } + //############################################################################################################## // Console Commands diff --git a/tests/Type/data/query-builder-l10-24.php b/tests/Type/data/query-builder-l10-24.php new file mode 100644 index 000000000..881842d82 --- /dev/null +++ b/tests/Type/data/query-builder-l10-24.php @@ -0,0 +1,53 @@ +select(['id', 'user_id']); + + $builder = DB::table('users') + ->joinSub($subQuery, 'addresses', 'users.user_id', '=', DB::raw('addresses.user_id')); + + assertType('Illuminate\Database\Query\Builder', $builder); +} + +function testWhereExpressionParameter(): void +{ + $builder = DB::table('users') + ->where(DB::raw('id'), '=', 1); + + assertType('Illuminate\Database\Query\Builder', $builder); +} + +function testOrWhereExpressionParameter(): void +{ + $builder = DB::table('users') + ->where(DB::raw('id'), '=', 1) + ->orWhere(DB::raw('id'), '=', 2); + + assertType('Illuminate\Database\Query\Builder', $builder); +} + +function testWhereNullExpressionParameter(): void +{ + $builder = DB::table('users') + ->whereNull(DB::raw('email_verified_at')); + + assertType('Illuminate\Database\Query\Builder', $builder); +} + +function testWhereNotNullExpressionParameter(): void +{ + $builder = DB::table('users') + ->whereNotNull(DB::raw('email_verified_at')); + + assertType('Illuminate\Database\Query\Builder', $builder); +} diff --git a/tests/Type/data/query-builder.php b/tests/Type/data/query-builder.php index a5ea1e946..24103d743 100644 --- a/tests/Type/data/query-builder.php +++ b/tests/Type/data/query-builder.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace EloquentBuilder; +namespace QueryBuilder; use Illuminate\Support\Facades\DB;