feat реклама за показы: ручка Исправить и узкое исключение в замке правки

This commit is contained in:
Дмитрий
2026-07-28 11:43:58 +03:00
parent 729a2636df
commit d29f45da11
4 changed files with 149 additions and 1 deletions
@@ -413,3 +413,23 @@ it('баннер с номером объявления в Яндексе не
expect(AdCampaignBanner::find($banner->id))->not->toBeNull();
});
/**
* Узкое исключение из замка: у отклонённой кампании показов нет и денег на ней нет,
* поэтому картинку клиент обязан иметь возможность переделать. Соседний тест
* «перезалить баннер после заведения кампании в Яндексе нельзя» держит вторую половину
* правила: у НЕотклонённой кампании замок остаётся на месте.
*/
it('у отклонённой кампании картинку перезалить можно', function () {
Storage::fake('local');
[$user, $campaign, $banner] = launchedBannerCampaign();
$campaign->update(['status' => AdCampaign::STATUS_REJECTED]);
$res = $this->actingAs($user)->postJson("/api/advertising/campaigns/{$campaign->id}/banners", [
'width' => 728, 'height' => 90,
'file' => UploadedFile::fake()->image('new.jpg', 728, 90),
]);
$res->assertStatus(201);
expect($banner->fresh()->bytes)->not->toBe(1000);
});