import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:jiu_client/core/theme/theme_controller.dart'; import 'package:jiu_client/providers/connectivity_provider.dart'; import 'package:jiu_client/screens/auth/login_screen.dart'; import '../support/golden_harness.dart'; /// design-distill 阶段4:登录屏 golden × 三主题(照原型 login.html 重建: /// 两栏卡片=品牌渐变面板+表单,右上角主题切换器)。1280×900 与 fidelity 注册一致。 /// 历史账号 mock 成原型预填值(DSJH-001 / wang),记住我默认开 → 表单预填。 /// 更新基准:flutter test --update-goldens test/golden/login_golden_test.dart void main() { TestWidgetsFlutterBinding.ensureInitialized(); SharedPreferences.setMockInitialValues({ 'login_history_hotels': ['DSJH-001'], 'login_history_usernames': ['wang'], }); for (final theme in const ['a', 'b', 'c']) { testWidgets('login 整屏 · theme $theme', (tester) async { await pumpGolden( tester, child: const LoginScreen(), theme: theme, goldenName: 'login_$theme', overrides: [ // 跳过联网首检,避免后台 Timer 在 golden 结束后仍 pending connectivityProvider .overrideWith((ref) => ConnectivityNotifier(skipInit: true)), // 主题切换器选中态跟随当前主题(与原型 setTheme 同步高亮一致) themeControllerProvider.overrideWith((ref) { final c = ThemeController(); c.set(theme); return c; }), ], logical: const Size(1280, 900), ); }); } }