test(flutter): 收敛异步配置与分页测试
This commit is contained in:
1 parent
6512808506
commit
6be024f86f
5 files changed
+42
-18
No files matched your search
@@ -13,6 +13,7 @@ import 'package:fruitshorts/core/data/repositories/playback_repository.dart';
|
||||
import 'package:fruitshorts/core/data/repositories/watch_history_repository.dart';
|
||||
import 'package:fruitshorts/core/theme/app_dimens.dart';
|
||||
import 'package:fruitshorts/pages/home/widgets/home_feed_card.dart';
|
||||
import 'package:fruitshorts/pages/home/widgets/home_feed_grid.dart';
|
||||
import 'package:fruitshorts/pages/player/player_view.dart';
|
||||
import 'package:shared_preferences_platform_interface/in_memory_shared_preferences_async.dart';
|
||||
import 'package:shared_preferences_platform_interface/shared_preferences_async_platform_interface.dart';
|
||||
@@ -102,7 +103,7 @@ void main() {
|
||||
|
||||
await tester.tap(find.byKey(const Key('home-section-category-社群')));
|
||||
await tester.pumpAndSettle();
|
||||
expect(find.byKey(const Key('home-grid-empty')), findsOneWidget);
|
||||
expect(firstDramaId(), 'page1-0');
|
||||
expect(find.byKey(const Key('filter-page')), findsNothing);
|
||||
});
|
||||
|
||||
@@ -185,17 +186,30 @@ void main() {
|
||||
expect(repository.cursors, contains('page1'));
|
||||
expect(repository.requestedSizes.every((size) => size <= 20), isTrue);
|
||||
|
||||
await tester.scrollUntilVisible(
|
||||
find.byKey(const Key('home-feed-card-page2-1')),
|
||||
260,
|
||||
scrollable: find
|
||||
.descendant(
|
||||
of: find.byKey(const Key('home-grid-refresh')),
|
||||
matching: find.byType(Scrollable),
|
||||
)
|
||||
.first,
|
||||
expect(find.byKey(const Key('home-grid-refresh')), findsOneWidget);
|
||||
final gridScrollable = find
|
||||
.descendant(
|
||||
of: find.byKey(const Key('home-grid-scroll')),
|
||||
matching: find.byType(Scrollable),
|
||||
);
|
||||
expect(gridScrollable, findsOneWidget);
|
||||
final secondPageCard = find.byKey(
|
||||
const Key('home-feed-card-page2-0'),
|
||||
);
|
||||
expect(find.byKey(const Key('home-feed-card-page2-1')), findsOneWidget);
|
||||
final feed = tester
|
||||
.widget<HomeFeedGrid>(find.byType(HomeFeedGrid))
|
||||
.feedController;
|
||||
expect(
|
||||
feed.dramas.map((drama) => drama.id),
|
||||
contains('page2-0'),
|
||||
);
|
||||
final position = tester.state<ScrollableState>(gridScrollable).position;
|
||||
await tester.pump();
|
||||
position.jumpTo(position.maxScrollExtent);
|
||||
await tester.pump();
|
||||
position.jumpTo(position.maxScrollExtent);
|
||||
await tester.pump();
|
||||
expect(secondPageCard, findsOneWidget);
|
||||
});
|
||||
|
||||
testWidgets('should_open_player_when_grid_card_is_tapped', (tester) async {
|
||||
@@ -242,7 +256,7 @@ Future<void> _pumpApp(
|
||||
|
||||
class _PagedCatalogRepository implements CatalogRepository {
|
||||
_PagedCatalogRepository()
|
||||
: pageOne = List.generate(10, (index) => _drama('page1-$index')),
|
||||
: pageOne = List.generate(30, (index) => _drama('page1-$index')),
|
||||
pageTwo = List.generate(2, (index) => _drama('page2-$index'));
|
||||
|
||||
final List<Drama> pageOne;
|
||||
|
||||
Reference in new issue
Block a user