test: add tests for ChannelPreviewTheme
This commit is contained in:
@@ -0,0 +1,108 @@
|
|||||||
|
import 'package:flutter/material.dart' hide TextTheme;
|
||||||
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
test('ChannelPreviewThemeData copyWith, ==, hashCode basics', () {
|
||||||
|
expect(const ChannelPreviewThemeData(),
|
||||||
|
const ChannelPreviewThemeData().copyWith());
|
||||||
|
expect(const ChannelPreviewThemeData().hashCode,
|
||||||
|
const ChannelPreviewThemeData().copyWith().hashCode);
|
||||||
|
});
|
||||||
|
|
||||||
|
group('ChannelPreviewThemeData lerps', () {
|
||||||
|
test(
|
||||||
|
'''Light ChannelPreviewThemeData lerps completely to dark ChannelPreviewThemeData''',
|
||||||
|
() {
|
||||||
|
expect(
|
||||||
|
const ChannelPreviewThemeData().lerp(
|
||||||
|
_channelPreviewThemeControl, _channelPreviewThemeControlDark, 1),
|
||||||
|
_channelPreviewThemeControlDark);
|
||||||
|
});
|
||||||
|
|
||||||
|
test(
|
||||||
|
'''Light ChannelPreviewThemeData lerps halfway to dark ChannelPreviewThemeData''',
|
||||||
|
() {
|
||||||
|
expect(
|
||||||
|
const ChannelPreviewThemeData().lerp(_channelPreviewThemeControl,
|
||||||
|
_channelPreviewThemeControlDark, 0.5),
|
||||||
|
_channelPreviewThemeControlMidLerp);
|
||||||
|
});
|
||||||
|
|
||||||
|
test(
|
||||||
|
'''Dark ChannelPreviewThemeData lerps completely to light ChannelPreviewThemeData''',
|
||||||
|
() {
|
||||||
|
expect(
|
||||||
|
const ChannelPreviewThemeData().lerp(
|
||||||
|
_channelPreviewThemeControlDark, _channelPreviewThemeControl, 1),
|
||||||
|
_channelPreviewThemeControl);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
test('Merging dark and light themes results in a dark theme', () {
|
||||||
|
expect(_channelPreviewThemeControl.merge(_channelPreviewThemeControlDark),
|
||||||
|
_channelPreviewThemeControlDark);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
final _channelPreviewThemeControl = ChannelPreviewThemeData(
|
||||||
|
unreadCounterColor: ColorTheme.light().accentError,
|
||||||
|
avatarTheme: AvatarThemeData(
|
||||||
|
borderRadius: BorderRadius.circular(20),
|
||||||
|
constraints: const BoxConstraints.tightFor(
|
||||||
|
height: 40,
|
||||||
|
width: 40,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
titleStyle: TextTheme.light().bodyBold,
|
||||||
|
subtitleStyle: TextTheme.light().footnote.copyWith(
|
||||||
|
color: const Color(0xff7A7A7A),
|
||||||
|
),
|
||||||
|
lastMessageAtStyle: TextTheme.light().footnote.copyWith(
|
||||||
|
color: ColorTheme.light().textHighEmphasis.withOpacity(.5),
|
||||||
|
),
|
||||||
|
indicatorIconSize: 16,
|
||||||
|
);
|
||||||
|
|
||||||
|
final _channelPreviewThemeControlMidLerp = ChannelPreviewThemeData(
|
||||||
|
unreadCounterColor: const Color(0xffff3842),
|
||||||
|
avatarTheme: AvatarThemeData(
|
||||||
|
borderRadius: BorderRadius.circular(20),
|
||||||
|
constraints: const BoxConstraints.tightFor(
|
||||||
|
height: 40,
|
||||||
|
width: 40,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
titleStyle: const TextStyle(
|
||||||
|
color: Color(0xff000000),
|
||||||
|
fontSize: 14,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
subtitleStyle: const TextStyle(
|
||||||
|
color: Color(0xff7a7a7a),
|
||||||
|
fontSize: 12,
|
||||||
|
),
|
||||||
|
lastMessageAtStyle: TextTheme.light().footnote.copyWith(
|
||||||
|
color: Color(0x80000000).withOpacity(.5),
|
||||||
|
),
|
||||||
|
indicatorIconSize: 16,
|
||||||
|
);
|
||||||
|
|
||||||
|
final _channelPreviewThemeControlDark = ChannelPreviewThemeData(
|
||||||
|
unreadCounterColor: ColorTheme.dark().accentError,
|
||||||
|
avatarTheme: AvatarThemeData(
|
||||||
|
borderRadius: BorderRadius.circular(20),
|
||||||
|
constraints: const BoxConstraints.tightFor(
|
||||||
|
height: 40,
|
||||||
|
width: 40,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
titleStyle: TextTheme.dark().bodyBold,
|
||||||
|
subtitleStyle: TextTheme.dark().footnote.copyWith(
|
||||||
|
color: const Color(0xff7A7A7A),
|
||||||
|
),
|
||||||
|
lastMessageAtStyle: TextTheme.dark().footnote.copyWith(
|
||||||
|
color: ColorTheme.dark().textHighEmphasis.withOpacity(.5),
|
||||||
|
),
|
||||||
|
indicatorIconSize: 16,
|
||||||
|
);
|
||||||
Reference in New Issue
Block a user