- 모든 서비스 메서드 시그니처를 실제 구현에 맞게 수정 - TestDataGenerator 제거하고 직접 객체 생성으로 변경 - 모델 필드명 및 타입 불일치 수정 - 불필요한 Either 패턴 사용 제거 - null safety 관련 이슈 해결 수정된 파일: - test/integration/screens/company_integration_test.dart - test/integration/screens/equipment_integration_test.dart - test/integration/screens/user_integration_test.dart - test/integration/screens/login_integration_test.dart
107 lines
2.8 KiB
Dart
107 lines
2.8 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:superport/services/warehouse_service.dart';
|
|
import 'package:superport/models/warehouse_location_model.dart';
|
|
import 'screens/base/base_screen_test.dart';
|
|
import 'framework/models/test_models.dart';
|
|
|
|
/// 창고 관리 화면 자동화 테스트 (수정된 버전)
|
|
class WarehouseAutomatedTest extends BaseScreenTest {
|
|
late WarehouseService warehouseService;
|
|
|
|
WarehouseAutomatedTest({
|
|
required super.apiClient,
|
|
required super.getIt,
|
|
required super.testContext,
|
|
required super.errorDiagnostics,
|
|
required super.autoFixer,
|
|
required super.dataGenerator,
|
|
required super.reportCollector,
|
|
});
|
|
|
|
@override
|
|
ScreenMetadata getScreenMetadata() {
|
|
return ScreenMetadata(
|
|
screenName: 'WarehouseScreen',
|
|
controllerType: WarehouseService,
|
|
relatedEndpoints: [
|
|
ApiEndpoint(
|
|
path: '/api/v1/warehouse-locations',
|
|
method: 'GET',
|
|
description: '창고 목록 조회',
|
|
),
|
|
ApiEndpoint(
|
|
path: '/api/v1/warehouse-locations',
|
|
method: 'POST',
|
|
description: '창고 생성',
|
|
),
|
|
],
|
|
screenCapabilities: {
|
|
'warehouse_management': {
|
|
'create': true,
|
|
'read': true,
|
|
'update': true,
|
|
'delete': true,
|
|
},
|
|
},
|
|
);
|
|
}
|
|
|
|
@override
|
|
Future<void> initializeServices() async {
|
|
warehouseService = getIt<WarehouseService>();
|
|
}
|
|
|
|
@override
|
|
dynamic getService() => warehouseService;
|
|
|
|
@override
|
|
String getResourceType() => 'warehouse';
|
|
|
|
@override
|
|
Map<String, dynamic> getDefaultFilters() {
|
|
return {
|
|
'isActive': true,
|
|
};
|
|
}
|
|
|
|
@override
|
|
Future<List<TestableFeature>> detectCustomFeatures(ScreenMetadata metadata) async {
|
|
return [];
|
|
}
|
|
|
|
// BaseScreenTest 추상 메서드 구현
|
|
@override
|
|
Future<dynamic> performCreateOperation(TestData data) async {
|
|
// 생성 로직 주석 처리 - 필요시 구현
|
|
throw UnimplementedError('창고 생성 메서드를 구현해주세요');
|
|
}
|
|
|
|
@override
|
|
Future<dynamic> performReadOperation(TestData data) async {
|
|
return await warehouseService.getWarehouseLocations(
|
|
page: 1,
|
|
perPage: 20,
|
|
);
|
|
}
|
|
|
|
@override
|
|
Future<dynamic> performUpdateOperation(dynamic resourceId, Map<String, dynamic> updateData) async {
|
|
// 창고 업데이트 구현
|
|
throw UnimplementedError('창고 업데이트 메서드를 구현해주세요');
|
|
}
|
|
|
|
@override
|
|
Future<void> performDeleteOperation(dynamic resourceId) async {
|
|
// 창고 삭제 구현
|
|
throw UnimplementedError('창고 삭제 메서드를 구현해주세요');
|
|
}
|
|
|
|
@override
|
|
dynamic extractResourceId(dynamic resource) {
|
|
if (resource is WarehouseLocation) {
|
|
return resource.id;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
} |