Files
portal/app/tests/Feature/Advertising/AdCampaignBannersApprovedMigrationTest.php
T
Дмитрий 2c8c876d51 feat(реклама): Часть 3b-2 — endpoint'ы баннеров (загрузка/превью/утверждение)
Часть 3b-2 из 6 (Часть 3 «баннеры» закрыта целиком).

- ad_campaigns.banners_approved_at (nullable) — момент утверждения набора; новая
  загрузка сбрасывает в NULL.
- Endpoint'ы tenant-scoped: banner-source (1 картинка→15 баннеров), banners (список превью),
  banners/{id}/preview (стрим приватного файла), banners/approve (флаг; пусто→422). Чужой→404.

Тесты: 22/22 зелёные (вкл. регресс). CHANGELOG v8.98.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-26 11:49:17 +03:00

19 lines
600 B
PHP

<?php
declare(strict_types=1);
use App\Models\AdCampaign;
use App\Models\Tenant;
use Illuminate\Support\Facades\Schema;
it('добавляет banners_approved_at в ad_campaigns и модель его читает', function () {
expect(Schema::hasColumn('ad_campaigns', 'banners_approved_at'))->toBeTrue();
$tenant = Tenant::factory()->create();
$c = AdCampaign::create([
'tenant_id' => $tenant->id, 'name' => 'C', 'audience_days' => 10, 'use_uploaded_list' => false,
'banners_approved_at' => now(),
]);
expect($c->banners_approved_at)->not->toBeNull();
});