feat: 增强管理员权限与角色管理功能
- 在 SyncAdminAuthorizationCommand 中新增对代理和抽奖菜单操作的同步功能,确保缺失的菜单操作行能够被创建。 - 更新多个控制器中的权限检查逻辑,使用 hasPermissionCode 替代原有的权限验证方式,提升权限管理的灵活性。 - 引入 ApiMessage 统一错误响应格式,确保在权限不足时返回一致的错误信息。 - 更新 AdminRole 和 AdminUser 模型,增强角色与用户的权限管理功能,支持更细粒度的权限控制。
This commit is contained in:
52
tests/Unit/ApiValidationErrorsTest.php
Normal file
52
tests/Unit/ApiValidationErrorsTest.php
Normal file
@@ -0,0 +1,52 @@
|
||||
<?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');
|
||||
});
|
||||
Reference in New Issue
Block a user