Files
tdc114plus/app/test/widget_test.dart
T
2026-07-02 13:43:07 +09:00

89 lines
2.8 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:tdc114plus/src/app.dart';
void main() {
testWidgets('shows Baron SSO login screen', (WidgetTester tester) async {
await tester.pumpWidget(const ProviderScope(child: Tdc114PlusApp()));
expect(find.text('Baron SSO 로그인'), findsOneWidget);
expect(find.byIcon(Icons.phone_android), findsOneWidget);
});
testWidgets('moves to directory screen after phone input', (
WidgetTester tester,
) async {
await tester.pumpWidget(const ProviderScope(child: Tdc114PlusApp()));
await tester.enterText(find.byType(TextField), '01012345678');
await tester.tap(find.text('로그인'));
await tester.pumpAndSettle();
expect(find.text('직원검색'), findsWidgets);
expect(find.text('김하늘'), findsOneWidget);
expect(find.text('검색 결과 5명'), findsOneWidget);
});
testWidgets('filters employees by search query', (WidgetTester tester) async {
await _openDirectory(tester);
await tester.enterText(find.byType(TextField), '서준');
await tester.pumpAndSettle();
expect(find.text('박서준'), findsOneWidget);
expect(find.text('김하늘'), findsNothing);
expect(find.text('검색 결과 1명'), findsOneWidget);
});
testWidgets('filters employees by tenant chip', (WidgetTester tester) async {
await _openDirectory(tester);
await tester.tap(find.text('TDC'));
await tester.pumpAndSettle();
expect(find.text('이도윤'), findsOneWidget);
expect(find.text('정수빈'), findsOneWidget);
expect(find.text('김하늘'), findsNothing);
expect(find.text('검색 결과 2명'), findsOneWidget);
});
testWidgets('shows favorite employees view', (WidgetTester tester) async {
await _openDirectory(tester);
await tester.tap(find.text('즐겨찾기'));
await tester.pumpAndSettle();
expect(find.text('김하늘'), findsOneWidget);
expect(find.text('박서준'), findsNothing);
expect(find.text('검색 결과 1명'), findsOneWidget);
});
testWidgets('opens employee detail bottom sheet', (
WidgetTester tester,
) async {
await _openDirectory(tester);
await tester.tap(find.text('김하늘'));
await tester.pumpAndSettle();
expect(find.text('haneul.kim@example.com'), findsOneWidget);
expect(find.text('전화'), findsOneWidget);
expect(find.text('문자'), findsOneWidget);
});
}
Future<void> _openDirectory(WidgetTester tester) async {
await tester.pumpWidget(const ProviderScope(child: Tdc114PlusApp()));
await tester.pumpAndSettle();
if (find.text('직원검색').evaluate().isNotEmpty) {
return;
}
await tester.enterText(find.byType(TextField), '01012345678');
await tester.tap(find.text('로그인'));
await tester.pumpAndSettle();
}