fix: fix test.

Signed-off-by: xsahil03x <[email protected]>
This commit is contained in:
Sahil Kumar
2023-07-28 23:26:32 +05:30
committed by xsahil03x
parent 72e0c7b6e9
commit ff3ad6b16d
3 changed files with 29 additions and 11 deletions
@@ -1,3 +1,4 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:stream_chat_flutter/scrollable_positioned_list/scrollable_positioned_list.dart';
import 'package:stream_chat_flutter/src/message_list_view/mlv_utils.dart';
@@ -22,7 +23,7 @@ class FloatingDateDivider extends StatelessWidget {
final bool isThreadConversation;
// ignore: public_member_api_docs
final ItemPositionsListener itemPositionListener;
final ValueListenable<Iterable<ItemPosition>> itemPositionListener;
// ignore: public_member_api_docs
final bool reverse;
@@ -38,9 +39,8 @@ class FloatingDateDivider extends StatelessWidget {
@override
Widget build(BuildContext context) {
final itemPositions = itemPositionListener.itemPositions;
return ValueListenableBuilder(
valueListenable: itemPositions,
valueListenable: itemPositionListener,
builder: (context, positions, child) {
if (positions.isEmpty || messages.isEmpty) {
return const Offstage();
@@ -817,7 +817,7 @@ class _StreamMessageListViewState extends State<StreamMessageListView> {
child: FloatingDateDivider(
itemCount: itemCount,
reverse: widget.reverse,
itemPositionListener: _itemPositionListener,
itemPositionListener: _itemPositionListener.itemPositions,
messages: messages,
dateDividerBuilder: widget.dateDividerBuilder,
isThreadConversation: _isThreadConversation,
@@ -1,11 +1,32 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart';
import 'package:stream_chat_flutter/scrollable_positioned_list/scrollable_positioned_list.dart';
import 'package:stream_chat_flutter/src/message_list_view/floating_date_divider.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
import '../mocks.dart';
void main() {
testWidgets('FloatingDateDivider', (tester) async {
final client = MockClient();
final clientState = MockClientState();
when(() => client.state).thenReturn(clientState);
when(() => clientState.currentUser).thenReturn(OwnUser(id: 'user-id'));
final createdAt = DateTime.now();
final itemPositionsListener = ValueNotifier(
[
const ItemPosition(
index: 0,
itemLeadingEdge: 0,
itemTrailingEdge: 0,
),
],
);
await tester.pumpWidget(
MaterialApp(
home: Scaffold(
@@ -14,12 +35,9 @@ void main() {
FloatingDateDivider(
reverse: false,
itemCount: 3,
itemPositionListener: ItemPositionsListener.create(),
messages: [
Message(),
Message(),
Message(),
],
itemPositionListener: itemPositionsListener,
messages: [Message(createdAt: createdAt)],
dateDividerBuilder: (dateTime) => Text('$dateTime'),
),
],
),
@@ -27,6 +45,6 @@ void main() {
),
);
expect(find.byType(Positioned), findsOneWidget);
expect(find.text('$createdAt'), findsOneWidget);
});
}