From f7b61706cb74bf7d96dc05d44d49e32d4133da02 Mon Sep 17 00:00:00 2001 From: groovinchip Date: Sun, 18 Jul 2021 12:47:02 -0400 Subject: [PATCH] test: add tests for ChannelListViewThemeData --- .../src/channel_list_view_theme_test.dart | 119 ++++++++++++++++++ .../src/message_list_view_theme_test.dart | 2 - 2 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 packages/stream_chat_flutter/test/src/channel_list_view_theme_test.dart diff --git a/packages/stream_chat_flutter/test/src/channel_list_view_theme_test.dart b/packages/stream_chat_flutter/test/src/channel_list_view_theme_test.dart new file mode 100644 index 00000000..332f4c22 --- /dev/null +++ b/packages/stream_chat_flutter/test/src/channel_list_view_theme_test.dart @@ -0,0 +1,119 @@ +import 'package:flutter/material.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'; + +void main() { + test('ChannelListViewThemeData copyWith, ==, hashCode basics', () { + expect(const ChannelListViewThemeData(), + const ChannelListViewThemeData().copyWith()); + }); + + test( + '''List ChannelListViewThemeData lerps completely to dark ChannelListViewThemeData''', + () { + expect( + const ChannelListViewThemeData().lerp(_channelListViewThemeDataControl, + _channelListViewThemeDataControlDark, 1), + _channelListViewThemeDataControlDark); + }); + + test( + '''Light ChannelListViewThemeData lerps halfway to dark ChannelListViewThemeData''', + () { + expect( + const ChannelListViewThemeData().lerp(_channelListViewThemeDataControl, + _channelListViewThemeDataControlDark, 0.5), + _channelListViewThemeDataControlHalfLerp); + }); + + test( + '''Dark ChannelListViewThemeData lerps completely to light ChannelListViewThemeData''', + () { + expect( + const ChannelListViewThemeData().lerp( + _channelListViewThemeDataControlDark, + _channelListViewThemeDataControl, + 1), + _channelListViewThemeDataControl); + }); + + test('Merging dark and light themes results in a dark theme', () { + expect( + _channelListViewThemeDataControl + .merge(_channelListViewThemeDataControlDark), + _channelListViewThemeDataControlDark); + }); + + testWidgets( + 'Passing no ChannelListViewThemeData 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: StreamChannel( + channel: MockChannel(), + child: const ChannelListView(), + ), + ); + }, + ), + ), + ); + + final channelListViewTheme = ChannelListViewTheme.of(_context); + expect(channelListViewTheme.backgroundColor, + _channelListViewThemeDataControl.backgroundColor); + }); + + testWidgets( + 'Passing no ChannelListViewThemeData 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: StreamChannel( + channel: MockChannel(), + child: const MessageListView(), + ), + ); + }, + ), + ), + ); + + final channelListViewTheme = ChannelListViewTheme.of(_context); + expect(channelListViewTheme.backgroundColor, + _channelListViewThemeDataControlDark.backgroundColor); + }); +} + +final _channelListViewThemeDataControl = ChannelListViewThemeData( + backgroundColor: ColorTheme.light().appBg, +); + +const _channelListViewThemeDataControlHalfLerp = ChannelListViewThemeData( + backgroundColor: Color(0xff818384), +); + +final _channelListViewThemeDataControlDark = ChannelListViewThemeData( + backgroundColor: ColorTheme.dark().appBg, +); diff --git a/packages/stream_chat_flutter/test/src/message_list_view_theme_test.dart b/packages/stream_chat_flutter/test/src/message_list_view_theme_test.dart index 9785fd2f..252eb944 100644 --- a/packages/stream_chat_flutter/test/src/message_list_view_theme_test.dart +++ b/packages/stream_chat_flutter/test/src/message_list_view_theme_test.dart @@ -108,8 +108,6 @@ void main() { expect(messageListViewTheme.backgroundColor, _messageListViewThemeDataControlDark.backgroundColor); }); - - // default dark theme values } final _messageListViewThemeDataControl = MessageListViewThemeData(