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