add small test
This commit is contained in:
@@ -147,6 +147,56 @@ void main() {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
testWidgets(
|
||||||
|
'should assign paginateData callback and paginate data correctly if a MessageListController is passed',
|
||||||
|
(tester) async {
|
||||||
|
const messageListCoreKey = Key('messageListCore');
|
||||||
|
final controller = MessageListController();
|
||||||
|
final messageListCore = MessageListCore(
|
||||||
|
key: messageListCoreKey,
|
||||||
|
messageListBuilder: (_, __) => Offstage(),
|
||||||
|
loadingBuilder: (BuildContext context) => Offstage(),
|
||||||
|
emptyBuilder: (BuildContext context) => Offstage(),
|
||||||
|
errorWidgetBuilder: (BuildContext context, Object error) => Offstage(),
|
||||||
|
messageListController: controller,
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(controller.paginateData, isNull);
|
||||||
|
|
||||||
|
final mockChannel = MockChannel();
|
||||||
|
|
||||||
|
when(() => mockChannel.state.isUpToDate).thenReturn(true);
|
||||||
|
// when(() => mockChannel.query(
|
||||||
|
// messagesPagination: any(named: 'messagesPagination'),
|
||||||
|
// preferOffline: any(named: 'preferOffline'),
|
||||||
|
// )).thenAnswer((_) => mockChannel.state);
|
||||||
|
final messages = _generateMessages();
|
||||||
|
when(() => mockChannel.state.messages).thenReturn(messages);
|
||||||
|
when(() => mockChannel.state.messagesStream)
|
||||||
|
.thenAnswer((_) => Stream.value(messages));
|
||||||
|
when(() => mockChannel.initialized).thenAnswer((_) => Future.value(true));
|
||||||
|
|
||||||
|
await tester.pumpWidget(
|
||||||
|
StreamChannel(
|
||||||
|
channel: mockChannel,
|
||||||
|
child: messageListCore,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
final finder = find.byKey(messageListCoreKey);
|
||||||
|
final coreState = tester.firstState<MessageListCoreState>(finder);
|
||||||
|
expect(finder, findsOneWidget);
|
||||||
|
expect(controller.paginateData, isNotNull);
|
||||||
|
|
||||||
|
await coreState.paginateData();
|
||||||
|
|
||||||
|
verify(() => mockChannel.query(
|
||||||
|
messagesPagination: any(named: 'messagesPagination'),
|
||||||
|
preferOffline: any(named: 'preferOffline'),
|
||||||
|
)).called(1);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
testWidgets(
|
testWidgets(
|
||||||
'should build error widget if messagesStream emits error',
|
'should build error widget if messagesStream emits error',
|
||||||
(tester) async {
|
(tester) async {
|
||||||
|
|||||||
Reference in New Issue
Block a user