Files

82 lines
2.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
import 'package:tdc114plus/main.dart' as app;
const _assumeLoggedIn = bool.fromEnvironment('TDC114_SMOKE_ASSUME_LOGGED_IN');
void main() {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
testWidgets('shows Baron SSO login screen', (tester) async {
app.main();
await tester.pumpAndSettle();
if (_assumeLoggedIn) {
return;
}
expect(find.text('Baron SSO 로그인'), findsOneWidget);
expect(find.byIcon(Icons.open_in_browser), findsOneWidget);
expect(find.text('Baron SSO로 로그인'), findsOneWidget);
});
testWidgets('does not collect phone number inside the app', (tester) async {
if (_assumeLoggedIn) {
return;
}
app.main();
await tester.pumpAndSettle();
expect(find.byType(TextField), findsNothing);
expect(find.textContaining('Hosted Login'), findsOneWidget);
});
testWidgets('manual hosted login starts from the SSO button', (
tester,
) async {
if (_assumeLoggedIn) {
return;
}
app.main();
await tester.pumpAndSettle();
expect(find.text('Baron SSO로 로그인'), findsOneWidget);
});
testWidgets('checks post-login directory actions when session is preseeded', (
tester,
) async {
if (!_assumeLoggedIn) {
return;
}
app.main();
await tester.pumpAndSettle();
expect(find.byType(TextField), findsOneWidget);
expect(find.textContaining('검색 결과'), findsOneWidget);
final addFavorite = find.byTooltip('즐겨찾기 추가');
if (addFavorite.evaluate().isNotEmpty) {
await tester.tap(addFavorite.first);
await tester.pumpAndSettle();
await tester.tap(find.text('즐겨찾기').first);
await tester.pumpAndSettle();
expect(find.textContaining('검색 결과'), findsOneWidget);
}
final employeeTile = find.byType(ListTile);
expect(employeeTile, findsWidgets);
await tester.tap(employeeTile.first);
await tester.pumpAndSettle();
expect(find.text('전화'), findsOneWidget);
expect(find.text('문자'), findsOneWidget);
});
}