60 lines
1.8 KiB
Dart
60 lines
1.8 KiB
Dart
|
|
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);
|
||
|
|
});
|
||
|
|
}
|