Files
eryao/apps/test/features/home/home_screen_test.dart
T

60 lines
1.8 KiB
Dart
Raw Normal View History

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<bool> hasReadWelcome() async {
return hasReadWelcomeValue;
}
@override
Future<void> 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);
});
}