getJson('/api/admin/telegram/tariffs'); $r->assertStatus(200); $tariffs = $r->json('tariffs'); expect($tariffs)->toHaveCount(5); expect(collect($tariffs)->pluck('min_qty')->all())->toBe([1, 1000, 5000, 10000, 50000]); expect($tariffs[0]['price_rub'])->toBe('0.45'); }); test('PUT /api/admin/telegram/tariffs заменяет весь набор ступеней', function () { $r = $this->putJson('/api/admin/telegram/tariffs', [ 'rows' => [ ['min_qty' => 1, 'price_rub' => '0.50'], ['min_qty' => 5000, 'price_rub' => '0.35'], ], ]); $r->assertStatus(200); expect(Tariff::count())->toBe(2); $rows = Tariff::orderBy('min_qty')->get(); expect($rows[0]->min_qty)->toBe(1); expect($rows[0]->price_rub)->toBe('0.50'); expect($rows[1]->min_qty)->toBe(5000); expect($rows[1]->price_rub)->toBe('0.35'); expect(collect($r->json('tariffs'))->pluck('min_qty')->all())->toBe([1, 5000]); }); test('PUT /api/admin/telegram/tariffs с некорректной ступенью → 422', function () { $this->putJson('/api/admin/telegram/tariffs', [ 'rows' => [['min_qty' => 0, 'price_rub' => '0.50']], ])->assertStatus(422); $this->putJson('/api/admin/telegram/tariffs', [ 'rows' => [['min_qty' => 1, 'price_rub' => '0.00']], ])->assertStatus(422); // Исходные 5 ступеней не тронуты. expect(Tariff::count())->toBe(5); });