Skip to content

Commit 6efec42

Browse files
fix: serialize message_ids in #forwardMessages #1215 (#1283)
* fix: forwardMessages #1215 * test: Add test for #forwardMessages() --------- Co-authored-by: 乔瘦子m <qiaoshouzi@cfm.moe>
1 parent 8126b1d commit 6efec42

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

src/telegram.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,13 @@ class TelegramBot extends EventEmitter {
257257
}
258258
}
259259

260+
_fixMessageIds(obj) {
261+
const messageIds = obj.message_ids;
262+
if (messageIds && typeof messageIds !== 'string') {
263+
obj.message_ids = stringify(messageIds);
264+
}
265+
}
266+
260267
/**
261268
* Fix 'reply_parameters' parameter by making it JSON-serialized, as
262269
* required by the Telegram Bot API
@@ -290,6 +297,7 @@ class TelegramBot extends EventEmitter {
290297
this._fixReplyMarkup(options.form);
291298
this._fixEntitiesField(options.form);
292299
this._fixReplyParameters(options.form);
300+
this._fixMessageIds(options.form);
293301
}
294302
if (options.qs) {
295303
this._fixReplyMarkup(options.qs);

test/telegram.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -625,6 +625,28 @@ describe('TelegramBot', function telegramSuite() {
625625
});
626626
});
627627

628+
describe('#forwardMessages', function forwardMessagesSuite() {
629+
before(function before() {
630+
utils.handleRatelimit(bot, 'sendMessage', this);
631+
utils.handleRatelimit(bot, 'forwardMessages', this);
632+
});
633+
it('should forward multiple messages', function test() {
634+
return Promise.all([
635+
bot.sendMessage(USERID, 'test 1'),
636+
bot.sendMessage(USERID, 'test 2'),
637+
]).then(responses => {
638+
const messageIds = [
639+
responses[0].message_id,
640+
responses[1].message_id,
641+
].sort();
642+
return bot.forwardMessages(GROUPID, USERID, messageIds).then(forwarded => {
643+
assert.ok(is.array(forwarded));
644+
assert.ok(forwarded.length === 2);
645+
});
646+
});
647+
});
648+
});
649+
628650
describe('#copyMessage', function copyMessageSuite() {
629651
before(function before() {
630652
utils.handleRatelimit(bot, 'sendMessage', this);

0 commit comments

Comments
 (0)