Files
lotteryLaravel/tests/Feature/PublicSettingsApiTest.php
kang e547e2b4a6 feat: 添加货币组至设置控制器并更新测试用例
- 在 SettingIndexController 中新增 'currency' 组,以支持货币相关设置。
- 更新 PublicSettingsApiTest,新增测试用例以验证货币组的返回数据,确保 API 正确处理货币设置。
2026-06-01 13:38:08 +08:00

54 lines
1.7 KiB
PHP

<?php
use App\Lottery\ErrorCode;
use Database\Seeders\CurrencySeeder;
use Illuminate\Foundation\Testing\RefreshDatabase;
uses(RefreshDatabase::class);
beforeEach(function (): void {
$this->seed(CurrencySeeder::class);
});
test('public settings requires allowed group', function (): void {
$this->getJson('/api/v1/settings')
->assertStatus(400)
->assertJsonPath('code', ErrorCode::ClientHttpError->value);
$this->getJson('/api/v1/settings?group=wallet')
->assertStatus(400)
->assertJsonPath('code', ErrorCode::ClientHttpError->value);
});
test('public settings returns currency group', function (): void {
\App\Models\LotterySetting::query()->updateOrCreate(
['setting_key' => 'currency.display_decimals'],
[
'group_name' => 'currency',
'value_json' => 3,
'description_zh' => '展示小数位',
],
);
$this->getJson('/api/v1/settings?group=currency')
->assertOk()
->assertJsonPath('code', ErrorCode::Success->value)
->assertJsonFragment(['key' => 'currency.display_decimals', 'value' => 3]);
});
test('public settings returns frontend group only', function (): void {
\App\Models\LotterySetting::query()->updateOrCreate(
['setting_key' => 'frontend.play_rules_html_zh'],
[
'group_name' => 'frontend',
'value_json' => '<p>rules</p>',
'description_zh' => '规则',
],
);
$this->getJson('/api/v1/settings?group=frontend')
->assertOk()
->assertJsonPath('code', ErrorCode::Success->value)
->assertJsonFragment(['key' => 'frontend.play_rules_html_zh']);
});