import 'package:flutter/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:meeyao_qianwen/core/auth/session_store.dart'; import 'package:meeyao_qianwen/app/app_theme.dart'; import 'package:meeyao_qianwen/data/storage/local_kv_store.dart'; import 'package:meeyao_qianwen/features/home/presentation/screens/home_screen.dart'; import 'package:meeyao_qianwen/l10n/app_localizations.dart'; class _FakeSessionStore extends SessionStore { _FakeSessionStore({required this.hasReadWelcomeValue}) : super(LocalKvStore()); bool hasReadWelcomeValue; bool setWelcomeReadCalled = false; @override Future hasReadWelcome() async { return hasReadWelcomeValue; } @override Future setWelcomeRead(bool value) async { setWelcomeReadCalled = value; } } void main() { testWidgets('history cards should use full available width', (tester) async { final sessionStore = _FakeSessionStore(hasReadWelcomeValue: true); await tester.pumpWidget( MaterialApp( theme: AppTheme.light(), localizationsDelegates: const [ AppLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: AppLocalizations.supportedLocales, home: HomeScreen( account: 'user@example.com', sessionStore: sessionStore, onLogout: () async {}, ), ), ); await tester.pumpAndSettle(); final historyCard = find.byType(Card).first; final cardWidth = tester.getSize(historyCard).width; final viewportWidth = tester.view.physicalSize.width / tester.view.devicePixelRatio; expect(cardWidth, viewportWidth); }); }