Files
portal/app/tests/Feature/DemoSeederTest.php
T

21 lines
808 B
PHP

<?php
declare(strict_types=1);
use App\Models\Tenant;
use App\Models\User;
use Database\Seeders\DemoSeeder;
use Illuminate\Foundation\Testing\RefreshDatabase;
uses(RefreshDatabase::class);
it('DemoSeeder идемпотентен — повторный запуск не дублирует demo-tenant и admin', function () {
$this->seed(DemoSeeder::class);
$this->seed(DemoSeeder::class);
// tenant + admin покрывают оба create-пути сидера (first()??create / updateOrCreate);
// projects/deals используют updateOrInsert + skip-guard — тот же класс идемпотентности.
expect(Tenant::query()->where('subdomain', 'demo')->count())->toBe(1)
->and(User::query()->where('email', 'admin@demo.local')->count())->toBe(1);
});