test: add tests for MessageSearchListViewThemeData

This commit is contained in:
groovinchip
2021-07-19 14:41:39 -04:00
parent e25db48a07
commit 10d2480a00
2 changed files with 131 additions and 1 deletions
@@ -1,7 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
import 'package:flutter_test/flutter_test.dart';
import 'mocks.dart';
class MockStreamChatClient extends Mock implements StreamChatClient {}
@@ -0,0 +1,129 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
import 'mocks.dart';
void main() {
test('MessageSearchListViewThemeData copyWith, ==, hashCode basics', () {
expect(const MessageSearchListViewThemeData(),
const MessageSearchListViewThemeData().copyWith());
expect(const MessageSearchListViewThemeData().hashCode,
const MessageSearchListViewThemeData().copyWith().hashCode);
});
test(
'''Light MessageSearchListViewThemeData lerps completely to dark MessageSearchListViewThemeData''',
() {
expect(
const MessageSearchListViewThemeData().lerp(
_messageSearchListViewThemeDataControl,
_messageSearchListViewThemeDataControlDark,
1),
_messageSearchListViewThemeDataControlDark);
});
test(
'''Light MessageSearchListViewThemeData lerps halfway to dark MessageSearchListViewThemeData''',
() {
expect(
const MessageSearchListViewThemeData().lerp(
_messageSearchListViewThemeDataControl,
_messageSearchListViewThemeDataControlDark,
0.5),
_messageSearchListViewThemeDataControlHalfLerp);
});
test(
'''Dark MessageSearchListViewThemeData lerps completely to light MessageSearchListViewThemeData''',
() {
expect(
const MessageSearchListViewThemeData().lerp(
_messageSearchListViewThemeDataControlDark,
_messageSearchListViewThemeDataControl,
1),
_messageSearchListViewThemeDataControl);
});
test('Merging dark and light themes results in a dark theme', () {
expect(
_messageSearchListViewThemeDataControl
.merge(_messageSearchListViewThemeDataControlDark),
_messageSearchListViewThemeDataControlDark);
});
testWidgets(
'''Passing no MessageSearchListViewThemeData returns default light theme values''',
(WidgetTester tester) async {
late BuildContext _context;
await tester.pumpWidget(
MaterialApp(
builder: (context, child) => StreamChat(
client: MockClient(),
child: child,
),
home: Builder(
builder: (BuildContext context) {
_context = context;
return Scaffold(
body: MessageSearchBloc(
child: MessageSearchListView(
filters: Filter.in_('members', const ['test_id']),
),
),
);
},
),
),
);
final messageSearchListViewTheme = MessageSearchListViewTheme.of(_context);
expect(messageSearchListViewTheme.backgroundColor,
_messageSearchListViewThemeDataControl.backgroundColor);
});
testWidgets(
'''Passing no MessageSearchListViewThemeData returns default dark theme values''',
(WidgetTester tester) async {
late BuildContext _context;
await tester.pumpWidget(
MaterialApp(
builder: (context, child) => StreamChat(
client: MockClient(),
streamChatThemeData: StreamChatThemeData.dark(),
child: child,
),
home: Builder(
builder: (BuildContext context) {
_context = context;
return Scaffold(
body: MessageSearchBloc(
child: MessageSearchListView(
filters: Filter.in_('members', const ['test_id']),
),
),
);
},
),
),
);
final messageSearchListViewTheme = MessageSearchListViewTheme.of(_context);
expect(messageSearchListViewTheme.backgroundColor,
_messageSearchListViewThemeDataControlDark.backgroundColor);
});
}
final _messageSearchListViewThemeDataControl = MessageSearchListViewThemeData(
backgroundColor: ColorTheme.light().appBg,
);
const _messageSearchListViewThemeDataControlHalfLerp =
MessageSearchListViewThemeData(
backgroundColor: Color(0xff818384),
);
final _messageSearchListViewThemeDataControlDark =
MessageSearchListViewThemeData(
backgroundColor: ColorTheme.dark().appBg,
);