artisan('demo:showcase')->assertExitCode(0); $tenant = Tenant::query()->where('organization_name', 'Стоматология Улыбка')->first(); expect($tenant)->not->toBeNull(); expect(User::query()->where('tenant_id', $tenant->id)->where('email', 'demo@liderra.ru')->exists())->toBeTrue(); expect(Project::query()->where('tenant_id', $tenant->id)->count())->toBe(3); expect(Deal::query()->where('tenant_id', $tenant->id)->count())->toBe(25); foreach (Deal::query()->where('tenant_id', $tenant->id)->pluck('phone') as $phone) { expect($phone)->toStartWith('7999000'); // 🔴 ПДн: несуществующий диапазон } }); it('не запускается на боевом окружении', function () { config(['app.env' => 'production']); $this->artisan('demo:showcase')->assertExitCode(1); }); it('запускается дважды без ошибок (данные не дублируются)', function () { $this->artisan('demo:showcase')->assertExitCode(0); $this->artisan('demo:showcase')->assertExitCode(0); $tenant = Tenant::query()->where('organization_name', 'Стоматология Улыбка')->first(); expect(Project::query()->where('tenant_id', $tenant->id)->count())->toBe(3) ->and(Deal::query()->where('tenant_id', $tenant->id)->count())->toBe(25); });