feat(approvals): 결재 상세 전표 연동과 스코프 권한 매핑 확장
- 결재 상세 다이얼로그에 전표 요약·라인·고객 섹션을 추가하고 현재 사용자 단계 강조 및 비고 입력 검증을 개선함 - 대시보드·결재 목록에서 전표 리포지토리와 AuthService를 주입해 상세 진입과 결재 관리 이동 버튼을 제공함 - StockTransactionApprovalInput이 template/steps를 config 노드로 직렬화하도록 변경하고 통합 테스트를 갱신함 - scope 권한 문자열을 리소스권으로 변환하는 PermissionScopeMapper와 단위 테스트를 추가하고 AuthPermission을 연동함 - 재고 메뉴 정렬, 상세 컨트롤러 오류 리셋, 요청자 자동완성 상태 동기화 등 주변 UI 버그를 수정하고 테스트를 보강함
This commit is contained in:
@@ -1,23 +1,45 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
import 'package:superport_v2/core/permissions/permission_manager.dart';
|
||||
import 'package:superport_v2/core/permissions/permission_resources.dart';
|
||||
import 'package:superport_v2/features/auth/domain/entities/auth_permission.dart';
|
||||
|
||||
void main() {
|
||||
group('AuthPermission', () {
|
||||
test('scope 리소스는 actions가 비어도 view 권한을 부여한다', () {
|
||||
group('AuthPermission.toPermissionMap', () {
|
||||
test('approval.approve scope grants approval resource approve action', () {
|
||||
const permission = AuthPermission(
|
||||
resource: 'scope:inventory.view',
|
||||
resource: 'scope:approval.approve',
|
||||
actions: [],
|
||||
);
|
||||
|
||||
final map = permission.toPermissionMap();
|
||||
|
||||
expect(map.length, 1);
|
||||
expect(
|
||||
map[PermissionResources.inventoryScope],
|
||||
contains(PermissionAction.view),
|
||||
map[PermissionResources.approvals],
|
||||
contains(PermissionAction.approve),
|
||||
);
|
||||
expect(map['scope:approval.approve'], contains(PermissionAction.view));
|
||||
});
|
||||
|
||||
test('approval.manage scope grants manage actions to approval modules', () {
|
||||
const permission = AuthPermission(
|
||||
resource: 'scope:approval.manage',
|
||||
actions: [],
|
||||
);
|
||||
|
||||
final map = permission.toPermissionMap();
|
||||
|
||||
expect(
|
||||
map[PermissionResources.approvals],
|
||||
containsAll({
|
||||
PermissionAction.view,
|
||||
PermissionAction.create,
|
||||
PermissionAction.edit,
|
||||
PermissionAction.delete,
|
||||
}),
|
||||
);
|
||||
expect(
|
||||
map[PermissionResources.approvalTemplates],
|
||||
contains(PermissionAction.edit),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user