From 04c8d5dd2facd7c2da9ed97bb3a1477af2b28a88 Mon Sep 17 00:00:00 2001 From: Youssef Mansour Date: Fri, 10 Jul 2026 11:41:38 +0300 Subject: [PATCH] Add regression test for unique() column type resolution (#1787) Confirms string()->unique() correctly resolves to string type. Related to barryvdh/laravel-ide-helper#1747 Co-authored-by: Youssef Mansour --- .../UniqueColumn/Models/User.php | 12 ++++++++ .../ModelsCommand/UniqueColumn/Test.php | 25 ++++++++++++++++ .../__snapshots__/Test__test__1.php | 30 +++++++++++++++++++ .../migrations/____users_unique_table.php | 21 +++++++++++++ 4 files changed, 88 insertions(+) create mode 100644 tests/Console/ModelsCommand/UniqueColumn/Models/User.php create mode 100644 tests/Console/ModelsCommand/UniqueColumn/Test.php create mode 100644 tests/Console/ModelsCommand/UniqueColumn/__snapshots__/Test__test__1.php create mode 100644 tests/Console/ModelsCommand/migrations/____users_unique_table.php diff --git a/tests/Console/ModelsCommand/UniqueColumn/Models/User.php b/tests/Console/ModelsCommand/UniqueColumn/Models/User.php new file mode 100644 index 0000000..c983529 --- /dev/null +++ b/tests/Console/ModelsCommand/UniqueColumn/Models/User.php @@ -0,0 +1,12 @@ +app->make(ModelsCommand::class); + + $tester = $this->runCommand($command, [ + '--write' => true, + ]); + + $this->assertSame(0, $tester->getStatusCode()); + $this->assertStringContainsString('Written new phpDocBlock to', $tester->getDisplay()); + + $this->assertMatchesMockedSnapshot(); + } +} diff --git a/tests/Console/ModelsCommand/UniqueColumn/__snapshots__/Test__test__1.php b/tests/Console/ModelsCommand/UniqueColumn/__snapshots__/Test__test__1.php new file mode 100644 index 0000000..a6eacdc --- /dev/null +++ b/tests/Console/ModelsCommand/UniqueColumn/__snapshots__/Test__test__1.php @@ -0,0 +1,30 @@ +|User newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|User newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|User query() + * @method static \Illuminate\Database\Eloquent\Builder|User whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereEmail($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|User wherePassword($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereUpdatedAt($value) + * @mixin \Eloquent + */ +class User extends Model +{ + protected $table = 'users_unique'; +} diff --git a/tests/Console/ModelsCommand/migrations/____users_unique_table.php b/tests/Console/ModelsCommand/migrations/____users_unique_table.php new file mode 100644 index 0000000..2ef8633 --- /dev/null +++ b/tests/Console/ModelsCommand/migrations/____users_unique_table.php @@ -0,0 +1,21 @@ +increments('id'); + $table->string('name'); + $table->string('email')->unique(); + $table->string('password'); + $table->timestamps(); + }); + } +}