feat(approvals): 결재 상세 전표 연동과 스코프 권한 매핑 확장

- 결재 상세 다이얼로그에 전표 요약·라인·고객 섹션을 추가하고 현재 사용자 단계 강조 및 비고 입력 검증을 개선함

- 대시보드·결재 목록에서 전표 리포지토리와 AuthService를 주입해 상세 진입과 결재 관리 이동 버튼을 제공함

- StockTransactionApprovalInput이 template/steps를 config 노드로 직렬화하도록 변경하고 통합 테스트를 갱신함

- scope 권한 문자열을 리소스권으로 변환하는 PermissionScopeMapper와 단위 테스트를 추가하고 AuthPermission을 연동함

- 재고 메뉴 정렬, 상세 컨트롤러 오류 리셋, 요청자 자동완성 상태 동기화 등 주변 UI 버그를 수정하고 테스트를 보강함
This commit is contained in:
JiWoong Sul
2025-11-14 01:57:02 +09:00
parent e3cf068bf8
commit 6d09e72142
12 changed files with 857 additions and 50 deletions

View File

@@ -0,0 +1,48 @@
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/core/permissions/permission_scope_mapper.dart';
void main() {
group('PermissionScopeMapper', () {
test('maps approval scopes to approval resource', () {
final map = PermissionScopeMapper.map('approval.approve');
expect(map, isNotNull);
expect(
map![PermissionResources.approvals],
contains(PermissionAction.approve),
);
});
test('maps approvals.* codes to view permissions', () {
final map = PermissionScopeMapper.map('approvals.templates');
expect(map, isNotNull);
expect(
map![PermissionResources.approvalTemplates],
contains(PermissionAction.view),
);
});
test('maps dashboard codes to dashboard resource', () {
final map = PermissionScopeMapper.map('dashboard');
expect(map, isNotNull);
expect(
map![PermissionResources.dashboard],
contains(PermissionAction.view),
);
});
test('maps inventory transaction codes to stock transactions resource', () {
final map = PermissionScopeMapper.map('inventory.issues');
expect(map, isNotNull);
expect(
map![PermissionResources.stockTransactions],
contains(PermissionAction.view),
);
});
});
}