feat: 결재·마스터 실연동 업데이트

This commit is contained in:
JiWoong Sul
2025-10-14 18:10:24 +09:00
parent 1325109fba
commit 8067416c09
66 changed files with 2129 additions and 222 deletions

View File

@@ -1,12 +1,18 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:get_it/get_it.dart';
import 'package:go_router/go_router.dart';
import 'package:shadcn_ui/shadcn_ui.dart';
import 'package:superport_v2/core/common/models/paginated_result.dart';
import 'package:superport_v2/core/config/environment.dart';
import 'package:superport_v2/core/constants/app_sections.dart';
import 'package:superport_v2/features/login/presentation/pages/login_page.dart';
import 'package:superport_v2/core/theme/superport_shad_theme.dart';
import 'package:superport_v2/core/permissions/permission_manager.dart';
import 'package:superport_v2/core/theme/superport_shad_theme.dart';
import 'package:superport_v2/features/login/presentation/pages/login_page.dart';
import 'package:superport_v2/features/masters/group/domain/entities/group.dart';
import 'package:superport_v2/features/masters/group/domain/repositories/group_repository.dart';
import 'package:superport_v2/features/masters/group_permission/domain/entities/group_permission.dart';
import 'package:superport_v2/features/masters/group_permission/domain/repositories/group_permission_repository.dart';
GoRouter _createTestRouter() {
return GoRouter(
@@ -114,6 +120,108 @@ class _PlaceholderPage extends StatelessWidget {
}
}
class _StubGroupRepository implements GroupRepository {
@override
Future<Group> create(GroupInput input) {
throw UnimplementedError();
}
@override
Future<void> delete(int id) {
throw UnimplementedError();
}
@override
Future<PaginatedResult<Group>> list({
int page = 1,
int pageSize = 20,
String? query,
bool? isDefault,
bool? isActive,
bool includePermissions = false,
bool includeEmployees = false,
}) async {
return PaginatedResult<Group>(
items: [
Group(
id: 1,
groupName: '기본 그룹',
description: '테스트',
isDefault: true,
isActive: true,
),
],
page: 1,
pageSize: 1,
total: 1,
);
}
@override
Future<Group> restore(int id) {
throw UnimplementedError();
}
@override
Future<Group> update(int id, GroupInput input) {
throw UnimplementedError();
}
}
class _StubGroupPermissionRepository implements GroupPermissionRepository {
@override
Future<GroupPermission> create(GroupPermissionInput input) {
throw UnimplementedError();
}
@override
Future<void> delete(int id) {
throw UnimplementedError();
}
@override
Future<PaginatedResult<GroupPermission>> list({
int page = 1,
int pageSize = 20,
int? groupId,
int? menuId,
bool? isActive,
bool includeDeleted = false,
}) async {
return PaginatedResult<GroupPermission>(
items: [
GroupPermission(
id: 1,
group: GroupPermissionGroup(id: groupId ?? 1, groupName: '기본 그룹'),
menu: GroupPermissionMenu(
id: 10,
menuCode: 'DASHBOARD',
menuName: '대시보드',
path: dashboardRoutePath,
),
canCreate: true,
canRead: true,
canUpdate: true,
canDelete: true,
),
],
page: 1,
pageSize: 1,
total: 1,
);
}
@override
Future<GroupPermission> restore(int id) {
throw UnimplementedError();
}
@override
Future<GroupPermission> update(int id, GroupPermissionInput input) {
throw UnimplementedError();
}
}
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
@@ -132,6 +240,13 @@ void main() {
view.resetDevicePixelRatio();
});
await GetIt.I.reset();
GetIt.I.registerSingleton<GroupRepository>(_StubGroupRepository());
GetIt.I.registerSingleton<GroupPermissionRepository>(
_StubGroupPermissionRepository(),
);
addTearDown(() async => GetIt.I.reset());
final router = _createTestRouter();
await tester.pumpWidget(_TestApp(router: router));
await tester.pumpAndSettle();