diff --git a/client/lib/screens/auth/login_screen.dart b/client/lib/screens/auth/login_screen.dart index 0b4e0b2..b424f8b 100644 --- a/client/lib/screens/auth/login_screen.dart +++ b/client/lib/screens/auth/login_screen.dart @@ -546,27 +546,27 @@ class _LoginScreenState extends ConsumerState { padding: const EdgeInsets.symmetric( horizontal: 12, vertical: 10), decoration: BoxDecoration( - color: const Color(0xFFFFF8E1), + color: context.tokens.warnBg, borderRadius: BorderRadius.circular(4), border: Border.all( - color: const Color(0xFFF57F17) - .withAlpha(120)), + color: + context.tokens.warn.withAlpha(120)), ), - child: const Row( + child: Row( children: [ Icon(Icons.wifi_off, - color: Color(0xFFF57F17), size: 16), - SizedBox(width: 8), + color: context.tokens.warn, size: 16), + const SizedBox(width: 8), Expanded( child: Text( '服务器不可达,请检查网络连接', style: TextStyle( - color: Color(0xFF5D4037), + color: context.tokens.warn, fontSize: 13), ), ), NetworkRetryButton( - foreground: Color(0xFF5D4037)), + foreground: context.tokens.warn), ], ), ), diff --git a/client/test/golden/goldens/login_a.png b/client/test/golden/goldens/login_a.png new file mode 100644 index 0000000..416fbe6 Binary files /dev/null and b/client/test/golden/goldens/login_a.png differ diff --git a/client/test/golden/goldens/login_b.png b/client/test/golden/goldens/login_b.png new file mode 100644 index 0000000..67d71e8 Binary files /dev/null and b/client/test/golden/goldens/login_b.png differ diff --git a/client/test/golden/goldens/login_c.png b/client/test/golden/goldens/login_c.png new file mode 100644 index 0000000..a48af7e Binary files /dev/null and b/client/test/golden/goldens/login_c.png differ diff --git a/client/test/golden/login_golden_test.dart b/client/test/golden/login_golden_test.dart new file mode 100644 index 0000000..85a3dcb --- /dev/null +++ b/client/test/golden/login_golden_test.dart @@ -0,0 +1,27 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:shared_preferences/shared_preferences.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 × 三主题(品牌 hero + 表单)。 +/// 锁住品牌 hero、表单、离线提示条(已 token 化)随主题换色。 +/// 更新基准:flutter test --update-goldens test/golden/login_golden_test.dart +void main() { + TestWidgetsFlutterBinding.ensureInitialized(); + SharedPreferences.setMockInitialValues({}); + + goldenAcrossThemes( + 'login 整屏', + goldenPrefix: 'login', + child: () => const LoginScreen(), + overrides: () => [ + // 跳过联网首检,避免后台 Timer 在 golden 结束后仍 pending + connectivityProvider.overrideWith((ref) => ConnectivityNotifier(skipInit: true)), + ], + logical: const Size(1280, 860), + ); +}