21 lines
808 B
PHP
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);
|
|
});
|