Skip to content

Commit 8a8e4f5

Browse files
authored
Add regression test for #1463. (#1514)
Fix #1463.
1 parent ed3c5c6 commit 8a8e4f5

File tree

1 file changed

+149
-0
lines changed

1 file changed

+149
-0
lines changed

test/tall/regression/1400/1463.unit

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
>>>
2+
class C {
3+
late final Command<MessageUpdateRequest, void> addNewMessageCommand =
4+
Command.createAsyncNoResult<MessageUpdateRequest>((newMessage) async {
5+
final chatApi = ChatsApi(di<ApiClient>());
6+
if (_target == null) {
7+
assert(_chatPartner != null);
8+
_target = await chatApi.sendMessageToUserAndCreateChatIfNeeded(
9+
_chatPartner!.id.toString(),
10+
messageUpdateRequest: newMessage);
11+
} else {
12+
await chatApi.addMessageToChat(chatId, messageUpdateRequest: newMessage);
13+
}
14+
notifyListeners();
15+
},
16+
errorFilter: ApiErrorFilter(
17+
(error) => error.code == 412 || error.code == 403,
18+
ErrorReaction.localHandler,
19+
),debugName: cmdAddMessage)
20+
..errors.listen((ex,_) {
21+
final apiError = ex!.error as ApiException;
22+
23+
/// TODO adjust to chatmessagesource
24+
items.removeLast();
25+
lastMessage = null;
26+
refreshItemCOunt();
27+
if (apiError.message?.contains('limited to 15 people') ?? false) {
28+
di<InteractionManager>().pushToastWithBuilder(
29+
(context) => ToastConfig(
30+
context.l10n.messagingLimitPerDay,
31+
),
32+
);
33+
} else if (apiError.message?.contains('Permission denied') ?? false) {
34+
di<InteractionManager>().pushToastWithBuilder(
35+
(context) => ToastConfig(
36+
context.l10n.defaultMessagingRestriction,
37+
),
38+
);
39+
}
40+
});
41+
}
42+
<<<
43+
class C {
44+
late final Command<MessageUpdateRequest, void> addNewMessageCommand =
45+
Command.createAsyncNoResult<MessageUpdateRequest>(
46+
(newMessage) async {
47+
final chatApi = ChatsApi(di<ApiClient>());
48+
if (_target == null) {
49+
assert(_chatPartner != null);
50+
_target =
51+
await chatApi.sendMessageToUserAndCreateChatIfNeeded(
52+
_chatPartner!.id.toString(),
53+
messageUpdateRequest: newMessage,
54+
);
55+
} else {
56+
await chatApi.addMessageToChat(
57+
chatId,
58+
messageUpdateRequest: newMessage,
59+
);
60+
}
61+
notifyListeners();
62+
},
63+
errorFilter: ApiErrorFilter(
64+
(error) => error.code == 412 || error.code == 403,
65+
ErrorReaction.localHandler,
66+
),
67+
debugName: cmdAddMessage,
68+
)
69+
..errors.listen((ex, _) {
70+
final apiError = ex!.error as ApiException;
71+
72+
/// TODO adjust to chatmessagesource
73+
items.removeLast();
74+
lastMessage = null;
75+
refreshItemCOunt();
76+
if (apiError.message?.contains('limited to 15 people') ?? false) {
77+
di<InteractionManager>().pushToastWithBuilder(
78+
(context) => ToastConfig(context.l10n.messagingLimitPerDay),
79+
);
80+
} else if (apiError.message?.contains('Permission denied') ?? false) {
81+
di<InteractionManager>().pushToastWithBuilder(
82+
(context) => ToastConfig(
83+
context.l10n.defaultMessagingRestriction,
84+
),
85+
);
86+
}
87+
});
88+
}
89+
>>>
90+
class C {
91+
late final Command<MessageUpdateRequest, void> addNewMessageCommand =
92+
Command.createAsyncNoResult<MessageUpdateRequest>(_addNewMessage,
93+
errorFilter: ApiErrorFilter(
94+
(error) => error.code == 412 || error.code == 403,
95+
ErrorReaction.localHandler,
96+
),debugName: cmdAddMessage)
97+
..errors.listen((ex,_) {
98+
final apiError = ex!.error as ApiException;
99+
100+
/// TODO adjust to chatmessagesource
101+
items.removeLast();
102+
lastMessage = null;
103+
refreshItemCOunt();
104+
if (apiError.message?.contains('limited to 15 people') ?? false) {
105+
di<InteractionManager>().pushToastWithBuilder(
106+
(context) => ToastConfig(
107+
context.l10n.messagingLimitPerDay,
108+
),
109+
);
110+
} else if (apiError.message?.contains('Permission denied') ?? false) {
111+
di<InteractionManager>().pushToastWithBuilder(
112+
(context) => ToastConfig(
113+
context.l10n.defaultMessagingRestriction,
114+
),
115+
);
116+
}
117+
});
118+
}
119+
<<<
120+
class C {
121+
late final Command<MessageUpdateRequest, void> addNewMessageCommand =
122+
Command.createAsyncNoResult<MessageUpdateRequest>(
123+
_addNewMessage,
124+
errorFilter: ApiErrorFilter(
125+
(error) => error.code == 412 || error.code == 403,
126+
ErrorReaction.localHandler,
127+
),
128+
debugName: cmdAddMessage,
129+
)
130+
..errors.listen((ex, _) {
131+
final apiError = ex!.error as ApiException;
132+
133+
/// TODO adjust to chatmessagesource
134+
items.removeLast();
135+
lastMessage = null;
136+
refreshItemCOunt();
137+
if (apiError.message?.contains('limited to 15 people') ?? false) {
138+
di<InteractionManager>().pushToastWithBuilder(
139+
(context) => ToastConfig(context.l10n.messagingLimitPerDay),
140+
);
141+
} else if (apiError.message?.contains('Permission denied') ?? false) {
142+
di<InteractionManager>().pushToastWithBuilder(
143+
(context) => ToastConfig(
144+
context.l10n.defaultMessagingRestriction,
145+
),
146+
);
147+
}
148+
});
149+
}

0 commit comments

Comments
 (0)