Skip to content

Commit 23663dd

Browse files
committed
Fix answerWithFile flow
1 parent d31d994 commit 23663dd

4 files changed

Lines changed: 39 additions & 28 deletions

File tree

src/main/java/com/github/stickerifier/stickerify/bot/Stickerify.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import static com.github.stickerifier.stickerify.telegram.Answer.FILE_READY;
1010
import static com.github.stickerifier.stickerify.telegram.Answer.FILE_TOO_LARGE;
1111
import static com.github.stickerifier.stickerify.telegram.Answer.PROCESSING;
12-
import static com.pengrad.telegrambot.model.request.ParseMode.MarkdownV2;
1312
import static java.util.HashSet.newHashSet;
1413
import static java.util.concurrent.Executors.newThreadPerTaskExecutor;
1514

@@ -147,10 +146,9 @@ private void answerFile(TelegramRequest request, String fileId) {
147146

148147
var answerWithFile = new SendDocument(request.getChatId(), outputFile)
149148
.replyParameters(new ReplyParameters(request.getMessageId()))
150-
.disableContentTypeDetection(true)
151-
.caption(FILE_READY.getText())
152-
.parseMode(MarkdownV2);
149+
.disableContentTypeDetection(true);
153150

151+
answerText(FILE_READY, request);
154152
execute(answerWithFile);
155153
}
156154
} catch (InterruptedException e) {

src/main/java/com/github/stickerifier/stickerify/telegram/Answer.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ public enum Answer {
1818
Once the file is ready, head to [Stickers bot](https://t.me/Stickers) to create a new sticker.
1919
"""),
2020
FILE_READY("""
21-
Your sticker file is ready\\!
22-
Head to [Stickers bot](https://t.me/Stickers) to create a new sticker\\.
21+
Your sticker file is ready!
22+
23+
Head to [Stickers bot](https://t.me/Stickers) to create a new sticker.
2324
"""),
2425
FILE_ALREADY_VALID("""
2526
The media you sent was already suitable to be a Telegram sticker.

src/test/java/com/github/stickerifier/stickerify/bot/MockResponses.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
public final class MockResponses {
99

10-
static final MockResponse EMPTY_RESPONSE = new MockResponse.Builder().body("""
10+
static final MockResponse SUCCESS_RESPONSE = new MockResponse.Builder().body("""
1111
{
1212
ok: true
1313
}

src/test/java/com/github/stickerifier/stickerify/bot/StickerifyTest.java

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class StickerifyTest {
3030

3131
@BeforeEach
3232
void setup() {
33-
((QueueDispatcher) server.getDispatcher()).setFailFast(MockResponses.EMPTY_RESPONSE);
33+
((QueueDispatcher) server.getDispatcher()).setFailFast(MockResponses.SUCCESS_RESPONSE);
3434
}
3535

3636
@Test
@@ -158,7 +158,7 @@ void fileTooBig() throws Exception {
158158
@Test
159159
void fileAlreadyValid() throws Exception {
160160
server.enqueue(MockResponses.ANIMATED_STICKER);
161-
server.enqueue(MockResponses.EMPTY_RESPONSE);
161+
server.enqueue(MockResponses.SUCCESS_RESPONSE);
162162
server.enqueue(MockResponses.fileInfo("animated_sticker.tgs"));
163163
server.enqueue(MockResponses.fileDownload("animated_sticker.tgs"));
164164

@@ -187,7 +187,7 @@ void fileAlreadyValid() throws Exception {
187187
@Test
188188
void convertedPng() throws Exception {
189189
server.enqueue(MockResponses.PNG_FILE);
190-
server.enqueue(MockResponses.EMPTY_RESPONSE);
190+
server.enqueue(MockResponses.SUCCESS_RESPONSE);
191191
server.enqueue(MockResponses.fileInfo("big.png"));
192192
server.enqueue(MockResponses.fileDownload("big.png"));
193193

@@ -207,17 +207,19 @@ void convertedPng() throws Exception {
207207
var download = server.takeRequest();
208208
assertEquals("/files/token/big.png", download.getTarget());
209209

210+
var sendRichMessage = server.takeRequest();
211+
assertEquals("/api/token/sendRichMessage", sendRichMessage.getTarget());
212+
assertResponseContainsMarkdownMessage(sendRichMessage, Answer.FILE_READY);
213+
210214
var sendDocument = server.takeRequest();
211215
assertEquals("/api/token/sendDocument", sendDocument.getTarget());
212-
assertNotNull(sendDocument.getBody());
213-
assertThat(sendDocument.getBody().utf8(), containsString(Answer.FILE_READY.getText()));
214216
}
215217
}
216218

217219
@Test
218220
void convertedWebp() throws Exception {
219221
server.enqueue(MockResponses.WEBP_FILE);
220-
server.enqueue(MockResponses.EMPTY_RESPONSE);
222+
server.enqueue(MockResponses.SUCCESS_RESPONSE);
221223
server.enqueue(MockResponses.fileInfo("static.webp"));
222224
server.enqueue(MockResponses.fileDownload("static.webp"));
223225

@@ -237,17 +239,19 @@ void convertedWebp() throws Exception {
237239
var download = server.takeRequest();
238240
assertEquals("/files/token/static.webp", download.getTarget());
239241

242+
var sendRichMessage = server.takeRequest();
243+
assertEquals("/api/token/sendRichMessage", sendRichMessage.getTarget());
244+
assertResponseContainsMarkdownMessage(sendRichMessage, Answer.FILE_READY);
245+
240246
var sendDocument = server.takeRequest();
241247
assertEquals("/api/token/sendDocument", sendDocument.getTarget());
242-
assertNotNull(sendDocument.getBody());
243-
assertThat(sendDocument.getBody().utf8(), containsString(Answer.FILE_READY.getText()));
244248
}
245249
}
246250

247251
@Test
248252
void convertedMov() throws Exception {
249253
server.enqueue(MockResponses.MOV_FILE);
250-
server.enqueue(MockResponses.EMPTY_RESPONSE);
254+
server.enqueue(MockResponses.SUCCESS_RESPONSE);
251255
server.enqueue(MockResponses.fileInfo("long.mov"));
252256
server.enqueue(MockResponses.fileDownload("long.mov"));
253257

@@ -267,17 +271,19 @@ void convertedMov() throws Exception {
267271
var download = server.takeRequest();
268272
assertEquals("/files/token/long.mov", download.getTarget());
269273

274+
var sendRichMessage = server.takeRequest();
275+
assertEquals("/api/token/sendRichMessage", sendRichMessage.getTarget());
276+
assertResponseContainsMarkdownMessage(sendRichMessage, Answer.FILE_READY);
277+
270278
var sendDocument = server.takeRequest();
271279
assertEquals("/api/token/sendDocument", sendDocument.getTarget());
272-
assertNotNull(sendDocument.getBody());
273-
assertThat(sendDocument.getBody().utf8(), containsString(Answer.FILE_READY.getText()));
274280
}
275281
}
276282

277283
@Test
278284
void convertedWebm() throws Exception {
279285
server.enqueue(MockResponses.WEBM_FILE);
280-
server.enqueue(MockResponses.EMPTY_RESPONSE);
286+
server.enqueue(MockResponses.SUCCESS_RESPONSE);
281287
server.enqueue(MockResponses.fileInfo("short_low_fps.webm"));
282288
server.enqueue(MockResponses.fileDownload("short_low_fps.webm"));
283289

@@ -297,17 +303,19 @@ void convertedWebm() throws Exception {
297303
var download = server.takeRequest();
298304
assertEquals("/files/token/short_low_fps.webm", download.getTarget());
299305

306+
var sendRichMessage = server.takeRequest();
307+
assertEquals("/api/token/sendRichMessage", sendRichMessage.getTarget());
308+
assertResponseContainsMarkdownMessage(sendRichMessage, Answer.FILE_READY);
309+
300310
var sendDocument = server.takeRequest();
301311
assertEquals("/api/token/sendDocument", sendDocument.getTarget());
302-
assertNotNull(sendDocument.getBody());
303-
assertThat(sendDocument.getBody().utf8(), containsString(Answer.FILE_READY.getText()));
304312
}
305313
}
306314

307315
@Test
308316
void convertedGif() throws Exception {
309317
server.enqueue(MockResponses.GIF_FILE);
310-
server.enqueue(MockResponses.EMPTY_RESPONSE);
318+
server.enqueue(MockResponses.SUCCESS_RESPONSE);
311319
server.enqueue(MockResponses.fileInfo("valid.gif"));
312320
server.enqueue(MockResponses.fileDownload("valid.gif"));
313321

@@ -327,17 +335,19 @@ void convertedGif() throws Exception {
327335
var download = server.takeRequest();
328336
assertEquals("/files/token/valid.gif", download.getTarget());
329337

338+
var sendRichMessage = server.takeRequest();
339+
assertEquals("/api/token/sendRichMessage", sendRichMessage.getTarget());
340+
assertResponseContainsMarkdownMessage(sendRichMessage, Answer.FILE_READY);
341+
330342
var sendDocument = server.takeRequest();
331343
assertEquals("/api/token/sendDocument", sendDocument.getTarget());
332-
assertNotNull(sendDocument.getBody());
333-
assertThat(sendDocument.getBody().utf8(), containsString(Answer.FILE_READY.getText()));
334344
}
335345
}
336346

337347
@Test
338348
void convertedLivePhoto() throws Exception {
339349
server.enqueue(MockResponses.LIVE_PHOTO_FILE);
340-
server.enqueue(MockResponses.EMPTY_RESPONSE);
350+
server.enqueue(MockResponses.SUCCESS_RESPONSE);
341351
server.enqueue(MockResponses.fileInfo("valid_live_photo"));
342352
server.enqueue(MockResponses.fileDownload("valid_live_photo"));
343353

@@ -357,17 +367,19 @@ void convertedLivePhoto() throws Exception {
357367
var download = server.takeRequest();
358368
assertEquals("/files/token/valid_live_photo", download.getTarget());
359369

370+
var sendRichMessage = server.takeRequest();
371+
assertEquals("/api/token/sendRichMessage", sendRichMessage.getTarget());
372+
assertResponseContainsMarkdownMessage(sendRichMessage, Answer.FILE_READY);
373+
360374
var sendDocument = server.takeRequest();
361375
assertEquals("/api/token/sendDocument", sendDocument.getTarget());
362-
assertNotNull(sendDocument.getBody());
363-
assertThat(sendDocument.getBody().utf8(), containsString(Answer.FILE_READY.getText()));
364376
}
365377
}
366378

367379
@Test
368380
void documentNotSupported() throws Exception {
369381
server.enqueue(MockResponses.DOCUMENT);
370-
server.enqueue(MockResponses.EMPTY_RESPONSE);
382+
server.enqueue(MockResponses.SUCCESS_RESPONSE);
371383
server.enqueue(MockResponses.fileInfo("document.txt"));
372384
server.enqueue(MockResponses.fileDownload("document.txt"));
373385

0 commit comments

Comments
 (0)