@@ -4,24 +4,51 @@ import 'package:golden_toolkit/golden_toolkit.dart';
|
|||||||
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
testWidgets('StreamSendingIndicator shows an Icon', (tester) async {
|
testWidgets(
|
||||||
await tester.pumpWidget(
|
'StreamSendingIndicator shows sizedBox if messsage state is initial',
|
||||||
MaterialApp(
|
(tester) async {
|
||||||
home: StreamChatTheme(
|
await tester.pumpWidget(
|
||||||
data: StreamChatThemeData.light(),
|
MaterialApp(
|
||||||
child: Scaffold(
|
home: StreamChatTheme(
|
||||||
body: Center(
|
data: StreamChatThemeData.light(),
|
||||||
child: StreamSendingIndicator(
|
child: Scaffold(
|
||||||
message: Message(),
|
body: Center(
|
||||||
|
child: StreamSendingIndicator(
|
||||||
|
message: Message(),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
);
|
||||||
);
|
|
||||||
|
|
||||||
expect(find.byType(Icon), findsOneWidget);
|
expect(find.byType(SizedBox), findsOneWidget);
|
||||||
});
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
testWidgets(
|
||||||
|
'StreamSendingIndicator shows an Icon if message state is not initial',
|
||||||
|
(tester) async {
|
||||||
|
await tester.pumpWidget(
|
||||||
|
MaterialApp(
|
||||||
|
home: StreamChatTheme(
|
||||||
|
data: StreamChatThemeData.light(),
|
||||||
|
child: Scaffold(
|
||||||
|
body: Center(
|
||||||
|
child: StreamSendingIndicator(
|
||||||
|
message: Message(
|
||||||
|
state: MessageState.sent,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(find.byType(Icon), findsOneWidget);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
testGoldens(
|
testGoldens(
|
||||||
'golden test for StreamSendingIndicator with StreamSvgIcon.checkAll',
|
'golden test for StreamSendingIndicator with StreamSvgIcon.checkAll',
|
||||||
|
|||||||
+12
-60
@@ -431,15 +431,23 @@ void main() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
testWidgets(
|
testWidgets(
|
||||||
'tapping on resend should call send message',
|
'tapping on resend should call retry message',
|
||||||
(WidgetTester tester) async {
|
(WidgetTester tester) async {
|
||||||
final client = MockClient();
|
final client = MockClient();
|
||||||
final clientState = MockClientState();
|
final clientState = MockClientState();
|
||||||
final channel = MockChannel();
|
final channel = MockChannel();
|
||||||
|
|
||||||
|
final message = Message(
|
||||||
|
state: MessageState.sendingFailed,
|
||||||
|
text: 'test',
|
||||||
|
user: User(
|
||||||
|
id: 'user-id',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
when(() => client.state).thenReturn(clientState);
|
when(() => client.state).thenReturn(clientState);
|
||||||
when(() => clientState.currentUser).thenReturn(OwnUser(id: 'user-id'));
|
when(() => clientState.currentUser).thenReturn(OwnUser(id: 'user-id'));
|
||||||
when(() => channel.sendMessage(any()))
|
when(() => channel.retryMessage(message))
|
||||||
.thenAnswer((_) async => SendMessageResponse());
|
.thenAnswer((_) async => SendMessageResponse());
|
||||||
|
|
||||||
final themeData = ThemeData();
|
final themeData = ThemeData();
|
||||||
@@ -459,13 +467,7 @@ void main() {
|
|||||||
child: SizedBox(
|
child: SizedBox(
|
||||||
child: MessageActionsModal(
|
child: MessageActionsModal(
|
||||||
messageWidget: const Text('test'),
|
messageWidget: const Text('test'),
|
||||||
message: Message(
|
message: message,
|
||||||
state: MessageState.sendingFailed,
|
|
||||||
text: 'test',
|
|
||||||
user: User(
|
|
||||||
id: 'user-id',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
messageTheme: streamTheme.ownMessageTheme,
|
messageTheme: streamTheme.ownMessageTheme,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -476,57 +478,7 @@ void main() {
|
|||||||
|
|
||||||
await tester.tap(find.text('Resend'));
|
await tester.tap(find.text('Resend'));
|
||||||
|
|
||||||
verify(() => channel.sendMessage(any())).called(1);
|
verify(() => channel.retryMessage(message)).called(1);
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
testWidgets(
|
|
||||||
'tapping on resend should call update message if editing the message',
|
|
||||||
(WidgetTester tester) async {
|
|
||||||
final client = MockClient();
|
|
||||||
final clientState = MockClientState();
|
|
||||||
final channel = MockChannel();
|
|
||||||
|
|
||||||
when(() => client.state).thenReturn(clientState);
|
|
||||||
when(() => clientState.currentUser).thenReturn(OwnUser(id: 'user-id'));
|
|
||||||
when(() => channel.updateMessage(any()))
|
|
||||||
.thenAnswer((_) async => UpdateMessageResponse());
|
|
||||||
|
|
||||||
final themeData = ThemeData();
|
|
||||||
final streamTheme = StreamChatThemeData.fromTheme(themeData);
|
|
||||||
|
|
||||||
await tester.pumpWidget(
|
|
||||||
MaterialApp(
|
|
||||||
builder: (context, child) => StreamChat(
|
|
||||||
client: client,
|
|
||||||
streamChatThemeData: streamTheme,
|
|
||||||
child: child,
|
|
||||||
),
|
|
||||||
theme: themeData,
|
|
||||||
home: StreamChannel(
|
|
||||||
showLoading: false,
|
|
||||||
channel: channel,
|
|
||||||
child: SizedBox(
|
|
||||||
child: MessageActionsModal(
|
|
||||||
messageWidget: const Text('test'),
|
|
||||||
message: Message(
|
|
||||||
state: MessageState.updatingFailed,
|
|
||||||
text: 'test',
|
|
||||||
user: User(
|
|
||||||
id: 'user-id',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
messageTheme: streamTheme.ownMessageTheme,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
await tester.pumpAndSettle();
|
|
||||||
|
|
||||||
await tester.tap(find.text('Resend Edited Message'));
|
|
||||||
|
|
||||||
verify(() => channel.updateMessage(any())).called(1);
|
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user