Skip to content

Commit 14ba3ac

Browse files
committed
message [nfc]: Have editMessage return Future<void> instead of void
1 parent e492832 commit 14ba3ac

File tree

3 files changed

+35
-31
lines changed

3 files changed

+35
-31
lines changed

lib/model/message.dart

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,13 @@ mixin MessageStore {
5858
/// Should only be called when there is no current edit request for [messageId],
5959
/// i.e., [getEditMessageErrorStatus] returns null for [messageId].
6060
///
61+
/// The returned [Future] resolves or rejects with the edit-message request,
62+
/// irrespective of when the edit-message event arrives (if it does).
63+
///
6164
/// See also:
6265
/// * [getEditMessageErrorStatus]
6366
/// * [takeFailedMessageEdit]
64-
void editMessage({
67+
Future<void> editMessage({
6568
required int messageId,
6669
required String originalRawContent,
6770
required String newContent,
@@ -104,7 +107,7 @@ mixin ProxyMessageStore on MessageStore {
104107
return messageStore.getEditMessageErrorStatus(messageId);
105108
}
106109
@override
107-
void editMessage({
110+
Future<void> editMessage({
108111
required int messageId,
109112
required String originalRawContent,
110113
required String newContent,
@@ -315,7 +318,7 @@ class MessageStoreImpl extends HasRealmStore with MessageStore, _OutboxMessageSt
315318
final Map<int, _EditMessageRequestStatus> _editMessageRequests = {};
316319

317320
@override
318-
void editMessage({
321+
Future<void> editMessage({
319322
required int messageId,
320323
required String originalRawContent,
321324
required String newContent,

test/model/message_test.dart

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -603,8 +603,8 @@ void main() {
603603

604604
connection.prepare(
605605
json: UpdateMessageResult().toJson(), delay: Duration(seconds: 1));
606-
store.editMessage(messageId: message.id,
607-
originalRawContent: 'old content', newContent: 'new content');
606+
unawaited(store.editMessage(messageId: message.id,
607+
originalRawContent: 'old content', newContent: 'new content'));
608608
checkRequest(message.id,
609609
prevContent: 'old content',
610610
content: 'new content');
@@ -634,8 +634,8 @@ void main() {
634634

635635
connection.prepare(
636636
json: UpdateMessageResult().toJson(), delay: Duration(seconds: 1));
637-
store.editMessage(messageId: message.id,
638-
originalRawContent: 'old content', newContent: 'new content');
637+
unawaited(store.editMessage(messageId: message.id,
638+
originalRawContent: 'old content', newContent: 'new content'));
639639
checkRequest(message.id,
640640
prevContent: 'old content',
641641
content: 'new content');
@@ -647,8 +647,8 @@ void main() {
647647
check(store.getEditMessageErrorStatus(otherMessage.id)).isNull();
648648
connection.prepare(
649649
json: UpdateMessageResult().toJson(), delay: Duration(seconds: 1));
650-
store.editMessage(messageId: otherMessage.id,
651-
originalRawContent: 'other message old content', newContent: 'other message new content');
650+
unawaited(store.editMessage(messageId: otherMessage.id,
651+
originalRawContent: 'other message old content', newContent: 'other message new content'));
652652
checkRequest(otherMessage.id,
653653
prevContent: 'other message old content',
654654
content: 'other message new content');
@@ -682,8 +682,8 @@ void main() {
682682
check(store.getEditMessageErrorStatus(message.id)).isNull();
683683

684684
connection.prepare(apiException: eg.apiBadRequest(), delay: Duration(seconds: 1));
685-
store.editMessage(messageId: message.id,
686-
originalRawContent: 'old content', newContent: 'new content');
685+
unawaited(store.editMessage(messageId: message.id,
686+
originalRawContent: 'old content', newContent: 'new content'));
687687
checkNotifiedOnce();
688688
async.elapse(Duration(seconds: 1));
689689
check(store.getEditMessageErrorStatus(message.id)).isNotNull().isTrue();
@@ -695,8 +695,8 @@ void main() {
695695
check(store.getEditMessageErrorStatus(message.id)).isNull();
696696

697697
connection.prepare(apiException: eg.apiBadRequest(), delay: Duration(seconds: 1));
698-
store.editMessage(messageId: message.id,
699-
originalRawContent: 'old content', newContent: 'new content');
698+
unawaited(store.editMessage(messageId: message.id,
699+
originalRawContent: 'old content', newContent: 'new content'));
700700
checkNotifiedOnce();
701701
async.elapse(Duration(seconds: 1));
702702
check(store.getEditMessageErrorStatus(message.id)).isNotNull().isTrue();
@@ -718,8 +718,8 @@ void main() {
718718

719719
connection.prepare(
720720
json: UpdateMessageResult().toJson(), delay: Duration(seconds: 1));
721-
store.editMessage(messageId: message.id,
722-
originalRawContent: 'old content', newContent: 'new content');
721+
unawaited(store.editMessage(messageId: message.id,
722+
originalRawContent: 'old content', newContent: 'new content'));
723723
async.elapse(Duration(milliseconds: 500));
724724
check(connection.takeRequests()).length.equals(1);
725725
checkNotifiedOnce();
@@ -738,8 +738,8 @@ void main() {
738738

739739
connection.prepare(
740740
httpException: const SocketException('failed'), delay: Duration(seconds: 1));
741-
store.editMessage(messageId: message.id,
742-
originalRawContent: 'old content', newContent: 'new content');
741+
unawaited(store.editMessage(messageId: message.id,
742+
originalRawContent: 'old content', newContent: 'new content'));
743743
checkNotifiedOnce();
744744

745745
async.elapse(Duration(milliseconds: 500));
@@ -760,8 +760,8 @@ void main() {
760760

761761
connection.prepare(
762762
httpException: const SocketException('failed'), delay: Duration(seconds: 1));
763-
store.editMessage(messageId: message.id,
764-
originalRawContent: 'old content', newContent: 'new content');
763+
unawaited(store.editMessage(messageId: message.id,
764+
originalRawContent: 'old content', newContent: 'new content'));
765765
checkNotifiedOnce();
766766

767767
async.elapse(Duration(seconds: 1));
@@ -781,8 +781,8 @@ void main() {
781781

782782
connection.prepare(
783783
httpException: const SocketException('failed'), delay: Duration(seconds: 1));
784-
store.editMessage(messageId: message.id,
785-
originalRawContent: 'old content', newContent: 'new content');
784+
unawaited(store.editMessage(messageId: message.id,
785+
originalRawContent: 'old content', newContent: 'new content'));
786786
checkNotifiedOnce();
787787

788788
async.elapse(Duration(seconds: 1));
@@ -801,8 +801,8 @@ void main() {
801801
check(store.getEditMessageErrorStatus(message.id)).isNull();
802802

803803
connection.prepare(apiException: eg.apiBadRequest(), delay: Duration(seconds: 1));
804-
store.editMessage(messageId: message.id,
805-
originalRawContent: 'old content', newContent: 'new content');
804+
unawaited(store.editMessage(messageId: message.id,
805+
originalRawContent: 'old content', newContent: 'new content'));
806806
checkNotifiedOnce();
807807
async.elapse(Duration(seconds: 1));
808808
check(store.getEditMessageErrorStatus(message.id)).isNotNull().isTrue();
@@ -818,8 +818,8 @@ void main() {
818818
check(store.getEditMessageErrorStatus(message.id)).isNull();
819819

820820
connection.prepare(apiException: eg.apiBadRequest(), delay: Duration(seconds: 1));
821-
store.editMessage(messageId: message.id,
822-
originalRawContent: 'old content', newContent: 'new content');
821+
unawaited(store.editMessage(messageId: message.id,
822+
originalRawContent: 'old content', newContent: 'new content'));
823823
checkNotifiedOnce();
824824

825825
async.elapse(Duration(milliseconds: 500));
@@ -843,8 +843,8 @@ void main() {
843843

844844
connection.prepare(
845845
json: UpdateMessageResult().toJson(), delay: Duration(seconds: 1));
846-
store.editMessage(messageId: message.id,
847-
originalRawContent: 'old content', newContent: 'new content');
846+
unawaited(store.editMessage(messageId: message.id,
847+
originalRawContent: 'old content', newContent: 'new content'));
848848
checkNotifiedOnce();
849849

850850
async.elapse(Duration(milliseconds: 500));

test/widgets/message_list_test.dart

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import 'dart:async';
12
import 'dart:convert';
23
import 'dart:io';
34

@@ -2274,9 +2275,9 @@ void main() {
22742275
messages: [message]);
22752276

22762277
connection.prepare(json: UpdateMessageResult().toJson());
2277-
store.editMessage(messageId: message.id,
2278+
unawaited(store.editMessage(messageId: message.id,
22782279
originalRawContent: 'foo',
2279-
newContent: 'bar');
2280+
newContent: 'bar'));
22802281
await tester.pump(Duration.zero);
22812282
checkEditInProgress(tester);
22822283
await store.handleEvent(eg.updateMessageEditEvent(message));
@@ -2291,9 +2292,9 @@ void main() {
22912292
messages: [message]);
22922293

22932294
connection.prepare(apiException: eg.apiBadRequest(), delay: Duration(seconds: 1));
2294-
store.editMessage(messageId: message.id,
2295+
unawaited(store.editMessage(messageId: message.id,
22952296
originalRawContent: 'foo',
2296-
newContent: 'bar');
2297+
newContent: 'bar'));
22972298
await tester.pump(Duration.zero);
22982299
checkEditInProgress(tester);
22992300
await tester.pump(Duration(seconds: 1));

0 commit comments

Comments
 (0)