66 lines
2.5 KiB
PHP
66 lines
2.5 KiB
PHP
|
|
<?php
|
|||
|
|
|
|||
|
|
declare(strict_types=1);
|
|||
|
|
|
|||
|
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|||
|
|
use Illuminate\Support\Facades\DB;
|
|||
|
|
|
|||
|
|
uses(DatabaseTransactions::class);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* SaaS-admin: «цена клиенту за 1000 показов» — ad_settings.client_cpm_rub
|
|||
|
|
* (глобальная single-row настройка, как markup_percent).
|
|||
|
|
*/
|
|||
|
|
test('GET /api/admin/advertising/settings отдаёт текущий client_cpm_rub (дефолт 120.00)', function () {
|
|||
|
|
$r = $this->getJson('/api/admin/advertising/settings');
|
|||
|
|
|
|||
|
|
$r->assertStatus(200);
|
|||
|
|
expect($r->json('client_cpm_rub'))->toBe('120.00');
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
test('PUT /api/admin/advertising/settings обновляет client_cpm_rub, GET показывает новое значение', function () {
|
|||
|
|
$r = $this->putJson('/api/admin/advertising/settings', ['client_cpm_rub' => '90.00']);
|
|||
|
|
|
|||
|
|
$r->assertStatus(200);
|
|||
|
|
expect($r->json('client_cpm_rub'))->toBe('90.00');
|
|||
|
|
|
|||
|
|
expect(DB::table('ad_settings')->value('client_cpm_rub'))->toBe('90.00');
|
|||
|
|
|
|||
|
|
$get = $this->getJson('/api/admin/advertising/settings');
|
|||
|
|
expect($get->json('client_cpm_rub'))->toBe('90.00');
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
test('PUT /api/admin/advertising/settings с client_cpm_rub=0 → 422', function () {
|
|||
|
|
$this->putJson('/api/admin/advertising/settings', ['client_cpm_rub' => '0'])
|
|||
|
|
->assertStatus(422);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
test('PUT /api/admin/advertising/settings без поля client_cpm_rub → 422', function () {
|
|||
|
|
$this->putJson('/api/admin/advertising/settings', [])
|
|||
|
|
->assertStatus(422);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
test('GET /api/admin/advertising/settings отдаёт ad_margin_percent (дефолт 40.00)', function () {
|
|||
|
|
$r = $this->getJson('/api/admin/advertising/settings');
|
|||
|
|
|
|||
|
|
$r->assertStatus(200);
|
|||
|
|
expect($r->json('ad_margin_percent'))->toBe('40.00');
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
test('PUT /api/admin/advertising/settings обновляет ad_margin_percent, GET показывает новое значение', function () {
|
|||
|
|
$r = $this->putJson('/api/admin/advertising/settings', ['ad_margin_percent' => '35']);
|
|||
|
|
|
|||
|
|
$r->assertStatus(200);
|
|||
|
|
expect($r->json('ad_margin_percent'))->toBe('35.00');
|
|||
|
|
|
|||
|
|
expect(DB::table('ad_settings')->value('ad_margin_percent'))->toBe('35.00');
|
|||
|
|
|
|||
|
|
$get = $this->getJson('/api/admin/advertising/settings');
|
|||
|
|
expect($get->json('ad_margin_percent'))->toBe('35.00');
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
test('PUT /api/admin/advertising/settings с ad_margin_percent=95 → 422 (>90)', function () {
|
|||
|
|
$this->putJson('/api/admin/advertising/settings', ['ad_margin_percent' => '95'])
|
|||
|
|
->assertStatus(422);
|
|||
|
|
});
|