Files
eryao/apps/test/features/divination/manual_divination_screen_test.dart
T

52 lines
1.9 KiB
Dart
Raw Normal View History

2026-04-03 16:56:47 +08:00
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
2026-04-03 16:56:47 +08:00
import 'package:flutter_test/flutter_test.dart';
import 'package:meeyao_qianwen/app/app_theme.dart';
import 'package:meeyao_qianwen/data/network/api_client.dart';
import 'package:meeyao_qianwen/features/divination/data/apis/divination_api.dart';
2026-04-03 16:56:47 +08:00
import 'package:meeyao_qianwen/features/divination/data/models/divination_params.dart';
import 'package:meeyao_qianwen/features/divination/data/services/divination_run_service.dart';
2026-04-03 16:56:47 +08:00
import 'package:meeyao_qianwen/features/divination/presentation/screens/manual_divination_screen.dart';
import 'package:meeyao_qianwen/l10n/app_localizations.dart';
2026-04-03 16:56:47 +08:00
void main() {
testWidgets('manual screen shows yao legend', (tester) async {
final params = DivinationParams(
2026-04-03 16:56:47 +08:00
method: DivinationMethod.manual,
questionType: QuestionType.career,
2026-04-03 16:56:47 +08:00
question: '测试问题',
divinationTime: DateTime(2026, 4, 3, 20, 30),
coinBalance: 9,
userId: 'user_test',
);
final runService = DivinationRunService(
api: DivinationApi(
apiClient: ApiClient(baseUrl: 'http://localhost:5775'),
),
2026-04-03 16:56:47 +08:00
);
await tester.pumpWidget(
MaterialApp(
theme: AppTheme.light(),
localizationsDelegates: const [
AppLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: AppLocalizations.supportedLocales,
home: ManualDivinationScreen(
params: params,
runService: runService,
onCompleted: (_) async {},
),
2026-04-03 16:56:47 +08:00
),
);
expect(find.text('○ 老阳(变)'), findsOneWidget);
expect(find.text('× 老阴(变)'), findsOneWidget);
expect(find.text('初爻'), findsOneWidget);
expect(find.text('上爻'), findsOneWidget);
});
}