Files
lotteryLaravel/tests/Unit/ApiValidationErrorsTest.php
kang 0527c7c392 feat: 增强管理员权限与角色管理功能
- 在 SyncAdminAuthorizationCommand 中新增对代理和抽奖菜单操作的同步功能,确保缺失的菜单操作行能够被创建。
- 更新多个控制器中的权限检查逻辑,使用 hasPermissionCode 替代原有的权限验证方式,提升权限管理的灵活性。
- 引入 ApiMessage 统一错误响应格式,确保在权限不足时返回一致的错误信息。
- 更新 AdminRole 和 AdminUser 模型,增强角色与用户的权限管理功能,支持更细粒度的权限控制。
2026-06-03 10:56:36 +08:00

53 lines
1.7 KiB
PHP

<?php
use App\Support\ApiValidationErrors;
test('normalizes english regex error for code field in zh', function (): void {
$errors = ApiValidationErrors::normalize(
['code' => ['The code field format is invalid.']],
'zh',
);
expect($errors['code'][0])->toContain('编码只能使用字母、数字');
});
test('normalizes business shorthand unique in zh', function (): void {
$errors = ApiValidationErrors::normalize(['code' => ['unique']], 'zh');
expect($errors['code'][0])->toBe('该内容已存在,请更换后重试。');
});
test('summary joins multiple field errors', function (): void {
$normalized = [
'code' => ['编码格式不正确。'],
'name' => ['名称不能为空。'],
];
expect(ApiValidationErrors::summary($normalized))->toBe('编码格式不正确。;名称不能为空。');
});
test('keeps already localized chinese messages', function (): void {
$message = '最小下注额不能小于 0';
$errors = ApiValidationErrors::normalize(['items.0.min_bet_amount' => [$message]], 'zh');
expect($errors['items.0.min_bet_amount'][0])->toBe($message);
});
test('normalizes english min length for password in zh', function (): void {
$errors = ApiValidationErrors::normalize(
['password' => ['The password field must be at least 8 characters.']],
'zh',
);
expect($errors['password'][0])->toBe('密码至少需要 8 个字符。');
});
test('normalizes exact draw items message in zh', function (): void {
$errors = ApiValidationErrors::normalize(
['items' => ['items must contain the complete 23 draw prize slots.']],
'zh',
);
expect($errors['items'][0])->toContain('23');
});