<?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);
});
