test(core): fix message search list core tests
Signed-off-by: xsahil03x <[email protected]>
This commit is contained in:
@@ -38,7 +38,7 @@ class MessageSearchListCore extends StatefulWidget {
|
||||
/// * [errorBuilder]
|
||||
/// * [loadingBuilder]
|
||||
/// * [childBuilder]
|
||||
MessageSearchListCore({
|
||||
const MessageSearchListCore({
|
||||
Key? key,
|
||||
required this.emptyBuilder,
|
||||
required this.errorBuilder,
|
||||
@@ -58,12 +58,6 @@ class MessageSearchListCore extends StatefulWidget {
|
||||
messageQuery == null || messageFilters == null,
|
||||
"Can't provide both `query` and `messageFilters` at the same time",
|
||||
),
|
||||
assert(
|
||||
paginationParams?.offset == null ||
|
||||
paginationParams?.offset == 0 ||
|
||||
sortOptions == null,
|
||||
'Cannot specify `offset` with `sortOptions` parameter',
|
||||
),
|
||||
super(key: key);
|
||||
|
||||
/// A [MessageSearchListController] allows reloading and pagination.
|
||||
|
||||
@@ -7,6 +7,7 @@ import 'package:stream_chat_flutter_core/stream_chat_flutter_core.dart';
|
||||
import 'mocks.dart';
|
||||
|
||||
const testFilter = Filter.custom(operator: '\$test', value: 'testValue');
|
||||
const testMessageFilter = Filter.custom(operator: '\$test', value: 'testValue');
|
||||
|
||||
void main() {
|
||||
List<GetMessageResponse> _generateMessages({
|
||||
@@ -28,6 +29,40 @@ void main() {
|
||||
},
|
||||
);
|
||||
|
||||
testWidgets(
|
||||
'should throw if both `messageQuery` and `messageFilters` are provided',
|
||||
(tester) async {
|
||||
expect(
|
||||
() => MessageSearchListCore(
|
||||
childBuilder: (_) => const Offstage(),
|
||||
loadingBuilder: (_) => const Offstage(),
|
||||
emptyBuilder: (_) => const Offstage(),
|
||||
errorBuilder: (_, __) => const Offstage(),
|
||||
filters: testFilter,
|
||||
messageFilters: testMessageFilter,
|
||||
messageQuery: 'test',
|
||||
),
|
||||
throwsAssertionError,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
testWidgets(
|
||||
'should throw if both `messageQuery` and `messageFilters` are not provided',
|
||||
(tester) async {
|
||||
expect(
|
||||
() => MessageSearchListCore(
|
||||
childBuilder: (_) => const Offstage(),
|
||||
loadingBuilder: (_) => const Offstage(),
|
||||
emptyBuilder: (_) => const Offstage(),
|
||||
errorBuilder: (_, __) => const Offstage(),
|
||||
filters: testFilter,
|
||||
),
|
||||
throwsAssertionError,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
testWidgets(
|
||||
'should throw if MessageSearchListCore is used where MessageSearchBloc '
|
||||
'is not present in the widget tree',
|
||||
@@ -40,6 +75,7 @@ void main() {
|
||||
emptyBuilder: (BuildContext context) => const Offstage(),
|
||||
errorBuilder: (BuildContext context, Object? error) => const Offstage(),
|
||||
filters: testFilter,
|
||||
messageFilters: testMessageFilter,
|
||||
);
|
||||
|
||||
await tester.pumpWidget(messageSearchListCore);
|
||||
@@ -61,6 +97,7 @@ void main() {
|
||||
emptyBuilder: (BuildContext context) => const Offstage(),
|
||||
errorBuilder: (BuildContext context, Object? error) => const Offstage(),
|
||||
filters: testFilter,
|
||||
messageFilters: testMessageFilter,
|
||||
);
|
||||
|
||||
final mockClient = MockClient();
|
||||
@@ -92,6 +129,7 @@ void main() {
|
||||
errorBuilder: (BuildContext context, Object error) => const Offstage(),
|
||||
messageSearchListController: controller,
|
||||
filters: testFilter,
|
||||
messageFilters: testMessageFilter,
|
||||
);
|
||||
|
||||
expect(controller.loadData, isNull);
|
||||
@@ -129,6 +167,7 @@ void main() {
|
||||
key: errorWidgetKey,
|
||||
),
|
||||
filters: testFilter,
|
||||
messageFilters: testMessageFilter,
|
||||
);
|
||||
|
||||
final mockClient = MockClient();
|
||||
@@ -138,7 +177,7 @@ void main() {
|
||||
testFilter,
|
||||
query: any(named: 'query'),
|
||||
sort: any(named: 'sort'),
|
||||
messageFilters: any(named: 'messageFilters'),
|
||||
messageFilters: testMessageFilter,
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).thenThrow(error);
|
||||
|
||||
@@ -159,7 +198,7 @@ void main() {
|
||||
testFilter,
|
||||
query: any(named: 'query'),
|
||||
sort: any(named: 'sort'),
|
||||
messageFilters: any(named: 'messageFilters'),
|
||||
messageFilters: testMessageFilter,
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).called(1);
|
||||
},
|
||||
@@ -179,6 +218,7 @@ void main() {
|
||||
const Offstage(key: emptyWidgetKey),
|
||||
errorBuilder: (BuildContext context, Object error) => const Offstage(),
|
||||
filters: testFilter,
|
||||
messageFilters: testMessageFilter,
|
||||
);
|
||||
|
||||
final mockClient = MockClient();
|
||||
@@ -188,10 +228,13 @@ void main() {
|
||||
testFilter,
|
||||
query: any(named: 'query'),
|
||||
sort: any(named: 'sort'),
|
||||
messageFilters: any(named: 'messageFilters'),
|
||||
messageFilters: testMessageFilter,
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).thenAnswer(
|
||||
(_) async => SearchMessagesResponse()..results = messageResponseList,
|
||||
(_) async => SearchMessagesResponse()
|
||||
..results = messageResponseList
|
||||
..next = null
|
||||
..previous = null,
|
||||
);
|
||||
|
||||
await tester.pumpWidget(
|
||||
@@ -211,7 +254,7 @@ void main() {
|
||||
testFilter,
|
||||
query: any(named: 'query'),
|
||||
sort: any(named: 'sort'),
|
||||
messageFilters: any(named: 'messageFilters'),
|
||||
messageFilters: testMessageFilter,
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).called(1);
|
||||
},
|
||||
@@ -231,6 +274,7 @@ void main() {
|
||||
emptyBuilder: (BuildContext context) => const Offstage(),
|
||||
errorBuilder: (BuildContext context, Object error) => const Offstage(),
|
||||
filters: testFilter,
|
||||
messageFilters: testMessageFilter,
|
||||
);
|
||||
|
||||
final mockClient = MockClient();
|
||||
@@ -240,10 +284,13 @@ void main() {
|
||||
testFilter,
|
||||
query: any(named: 'query'),
|
||||
sort: any(named: 'sort'),
|
||||
messageFilters: any(named: 'messageFilters'),
|
||||
messageFilters: testMessageFilter,
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).thenAnswer(
|
||||
(_) async => SearchMessagesResponse()..results = messageResponseList,
|
||||
(_) async => SearchMessagesResponse()
|
||||
..results = messageResponseList
|
||||
..next = null
|
||||
..previous = null,
|
||||
);
|
||||
|
||||
await tester.pumpWidget(
|
||||
@@ -263,7 +310,7 @@ void main() {
|
||||
testFilter,
|
||||
query: any(named: 'query'),
|
||||
sort: any(named: 'sort'),
|
||||
messageFilters: any(named: 'messageFilters'),
|
||||
messageFilters: testMessageFilter,
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).called(1);
|
||||
},
|
||||
@@ -289,6 +336,7 @@ void main() {
|
||||
errorBuilder: (BuildContext context, Object error) => const Offstage(),
|
||||
paginationParams: pagination,
|
||||
filters: testFilter,
|
||||
messageFilters: testMessageFilter,
|
||||
);
|
||||
|
||||
final mockClient = MockClient();
|
||||
@@ -298,10 +346,13 @@ void main() {
|
||||
testFilter,
|
||||
query: any(named: 'query'),
|
||||
sort: any(named: 'sort'),
|
||||
messageFilters: any(named: 'messageFilters'),
|
||||
messageFilters: testMessageFilter,
|
||||
paginationParams: pagination,
|
||||
)).thenAnswer(
|
||||
(_) async => SearchMessagesResponse()..results = messageResponseList,
|
||||
(_) async => SearchMessagesResponse()
|
||||
..results = messageResponseList
|
||||
..next = null
|
||||
..previous = null,
|
||||
);
|
||||
|
||||
await tester.pumpWidget(
|
||||
@@ -332,7 +383,7 @@ void main() {
|
||||
testFilter,
|
||||
query: any(named: 'query'),
|
||||
sort: any(named: 'sort'),
|
||||
messageFilters: any(named: 'messageFilters'),
|
||||
messageFilters: testMessageFilter,
|
||||
paginationParams: pagination,
|
||||
)).called(1);
|
||||
|
||||
@@ -348,11 +399,13 @@ void main() {
|
||||
testFilter,
|
||||
query: any(named: 'query'),
|
||||
sort: any(named: 'sort'),
|
||||
messageFilters: any(named: 'messageFilters'),
|
||||
messageFilters: testMessageFilter,
|
||||
paginationParams: updatedPagination,
|
||||
)).thenAnswer(
|
||||
(_) async =>
|
||||
SearchMessagesResponse()..results = paginatedMessageResponseList,
|
||||
(_) async => SearchMessagesResponse()
|
||||
..results = paginatedMessageResponseList
|
||||
..next = null
|
||||
..previous = null,
|
||||
);
|
||||
|
||||
await messageSearchListCoreState.paginateData();
|
||||
@@ -372,7 +425,7 @@ void main() {
|
||||
testFilter,
|
||||
query: any(named: 'query'),
|
||||
sort: any(named: 'sort'),
|
||||
messageFilters: any(named: 'messageFilters'),
|
||||
messageFilters: testMessageFilter,
|
||||
paginationParams: updatedPagination,
|
||||
)).called(1);
|
||||
},
|
||||
@@ -406,6 +459,7 @@ void main() {
|
||||
const Offstage(),
|
||||
paginationParams: pagination.copyWith(limit: limit),
|
||||
filters: testFilter,
|
||||
messageFilters: testMessageFilter,
|
||||
);
|
||||
|
||||
final mockClient = MockClient();
|
||||
@@ -415,10 +469,13 @@ void main() {
|
||||
testFilter,
|
||||
query: any(named: 'query'),
|
||||
sort: any(named: 'sort'),
|
||||
messageFilters: any(named: 'messageFilters'),
|
||||
messageFilters: testMessageFilter,
|
||||
paginationParams: pagination,
|
||||
)).thenAnswer(
|
||||
(_) async => SearchMessagesResponse()..results = messageResponseList,
|
||||
(_) async => SearchMessagesResponse()
|
||||
..results = messageResponseList
|
||||
..next = null
|
||||
..previous = null,
|
||||
);
|
||||
|
||||
await tester.pumpWidget(
|
||||
@@ -453,7 +510,7 @@ void main() {
|
||||
testFilter,
|
||||
query: any(named: 'query'),
|
||||
sort: any(named: 'sort'),
|
||||
messageFilters: any(named: 'messageFilters'),
|
||||
messageFilters: testMessageFilter,
|
||||
paginationParams: pagination,
|
||||
)).called(1);
|
||||
|
||||
@@ -466,11 +523,13 @@ void main() {
|
||||
testFilter,
|
||||
query: any(named: 'query'),
|
||||
sort: any(named: 'sort'),
|
||||
messageFilters: any(named: 'messageFilters'),
|
||||
messageFilters: testMessageFilter,
|
||||
paginationParams: updatedPagination,
|
||||
)).thenAnswer(
|
||||
(_) async =>
|
||||
SearchMessagesResponse()..results = updatedMessageResponseList,
|
||||
(_) async => SearchMessagesResponse()
|
||||
..results = updatedMessageResponseList
|
||||
..next = null
|
||||
..previous = null,
|
||||
);
|
||||
|
||||
await tester.pumpAndSettle();
|
||||
@@ -487,7 +546,7 @@ void main() {
|
||||
testFilter,
|
||||
query: any(named: 'query'),
|
||||
sort: any(named: 'sort'),
|
||||
messageFilters: any(named: 'messageFilters'),
|
||||
messageFilters: testMessageFilter,
|
||||
paginationParams: updatedPagination,
|
||||
)).called(1);
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user