diff --git a/packages/stream_chat_flutter/lib/src/gradient_avatar.dart b/packages/stream_chat_flutter/lib/src/gradient_avatar.dart index 0cb8c41c..dc97fb98 100644 --- a/packages/stream_chat_flutter/lib/src/gradient_avatar.dart +++ b/packages/stream_chat_flutter/lib/src/gradient_avatar.dart @@ -47,7 +47,7 @@ class _GradientAvatarState extends State { var result = ''; for (var i = 0; i < parts.length; i++) { - result = result + parts[i][0]; + result = result + parts[i][0].toUpperCase(); } return result; @@ -112,8 +112,8 @@ class DemoPainter extends CustomPainter { final textSize = smallerSide / 3; - final dxShift = (username.length == 2 ? 1.45 : 0.75) * textSize / 2; - final dyShift = (username.length == 2 ? 1.0 : 1.8) * textSize / 2; + final dxShift = (username.length == 2 ? 1.45 : 0.9) * textSize / 2; + final dyShift = (username.length == 2 ? 1.0 : 1.65) * textSize / 2; final fontSize = username.length == 2 ? textSize : textSize * 1.5; diff --git a/packages/stream_chat_flutter/test/src/goldens/gradient_avatar_0.png b/packages/stream_chat_flutter/test/src/goldens/gradient_avatar_0.png new file mode 100644 index 00000000..0906f11a Binary files /dev/null and b/packages/stream_chat_flutter/test/src/goldens/gradient_avatar_0.png differ diff --git a/packages/stream_chat_flutter/test/src/goldens/gradient_avatar_1.png b/packages/stream_chat_flutter/test/src/goldens/gradient_avatar_1.png new file mode 100644 index 00000000..d288abf0 Binary files /dev/null and b/packages/stream_chat_flutter/test/src/goldens/gradient_avatar_1.png differ diff --git a/packages/stream_chat_flutter/test/src/gradient_avatar_test.dart b/packages/stream_chat_flutter/test/src/gradient_avatar_test.dart new file mode 100644 index 00000000..9196497b --- /dev/null +++ b/packages/stream_chat_flutter/test/src/gradient_avatar_test.dart @@ -0,0 +1,82 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:golden_toolkit/golden_toolkit.dart'; +import 'package:mocktail/mocktail.dart'; +import 'package:stream_chat_flutter/src/gradient_avatar.dart'; +import 'package:stream_chat_flutter/stream_chat_flutter.dart'; + +import 'mocks.dart'; + +void main() { + testWidgets( + 'control test', + (WidgetTester tester) async { + final client = MockClient(); + final clientState = MockClientState(); + + when(() => client.state).thenReturn(clientState); + when(() => clientState.user).thenReturn(OwnUser(id: 'user-id')); + + await tester.pumpWidget( + MaterialApp( + home: StreamChat( + client: client, + child: const Scaffold( + body: Center( + child: SizedBox( + width: 50, + height: 50, + child: GradientAvatar(name: 'demo user', userId: 'demo123'), + ), + ), + ), + ), + ), + ); + + expect(find.byType(GradientAvatar), findsOneWidget); + }, + ); + + testGoldens( + 'golden test for the name "demo user"', + (WidgetTester tester) async { + await tester.pumpWidget( + const MaterialApp( + home: Scaffold( + body: Center( + child: SizedBox( + width: 50, + height: 50, + child: GradientAvatar(name: 'demo user', userId: 'demo123'), + ), + ), + ), + ), + ); + + await screenMatchesGolden(tester, 'gradient_avatar_0'); + }, + ); + + testGoldens( + 'golden test for the name "demo"', + (WidgetTester tester) async { + await tester.pumpWidget( + const MaterialApp( + home: Scaffold( + body: Center( + child: SizedBox( + width: 50, + height: 50, + child: GradientAvatar(name: 'demo', userId: 'demo1'), + ), + ), + ), + ), + ); + + await screenMatchesGolden(tester, 'gradient_avatar_1'); + }, + ); +}