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