From f5af2bf588b80d2d8e0108b591fd58576c36affa Mon Sep 17 00:00:00 2001 From: GochoMugo Date: Mon, 10 Oct 2016 14:21:25 +0300 Subject: [PATCH] Add accompanying tests, minor fixes and updates for PR #158 --- README.md | 25 ++++++------------------- src/telegram.js | 25 ++++++------------------- test/README.md | 2 ++ test/index.js | 29 +++++++++++++++++++++++++++++ 4 files changed, 43 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 1f8f308..a3a25ba 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,6 @@ TelegramBot * [new TelegramBot(token, [options])](#new_TelegramBot_new) * [.stopPolling()](#TelegramBot+stopPolling) ⇒ Promise * [.getMe()](#TelegramBot+getMe) ⇒ Promise - * [.getChat(chatId)](#TelegramBot+getChat) ⇒ Promise * [.setWebHook(url, [cert])](#TelegramBot+setWebHook) * [.getUpdates([timeout], [limit], [offset])](#TelegramBot+getUpdates) ⇒ Promise * [.sendMessage(chatId, text, [options])](#TelegramBot+sendMessage) ⇒ Promise @@ -125,20 +124,6 @@ Returns basic information about the bot in form of a `User` object. **Kind**: instance method of [TelegramBot](#TelegramBot) **See**: https://core.telegram.org/bots/api#getme - - -### telegramBot.getChat(chatId) ⇒ Promise -Use this method to get up to date information about the chat -(current name of the user for one-on-one conversations, current -username of a user, group or channel, etc.). - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**See**: https://core.telegram.org/bots/api#getchat - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number | String | Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) | - ### telegramBot.setWebHook(url, [cert]) @@ -538,14 +523,16 @@ Register a reply to wait for a message response. ### telegramBot.getChat(chatId) ⇒ Promise -Returns information about the chat in form of a `Chat` object. +Use this method to get up to date information about the chat +(current name of the user for one-on-one conversations, current +username of a user, group or channel, etc.). **Kind**: instance method of [TelegramBot](#TelegramBot) **See**: https://core.telegram.org/bots/api#getchat | Param | Type | Description | | --- | --- | --- | -| chatId | Number | String | Unique identifier for the target group or username of the target supergroup | +| chatId | Number | String | Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) | @@ -562,7 +549,7 @@ Returns the administrators in a chat in form of an Array of `ChatMember` objects ### telegramBot.getChatMembersCount(chatId) ⇒ Promise -Returns the number of members in a chat in form of an `Int` object. +Use this method to get the number of members in a chat. **Kind**: instance method of [TelegramBot](#TelegramBot) **See**: https://core.telegram.org/bots/api#getchatmemberscount @@ -574,7 +561,7 @@ Returns the number of members in a chat in form of an `Int` object. ### telegramBot.getChatMember(chatId, userId) ⇒ Promise -Returns information about a member of a chat in form of a `ChatMember` object. +Use this method to get information about a member of a chat. **Kind**: instance method of [TelegramBot](#TelegramBot) **See**: https://core.telegram.org/bots/api#getchatmember diff --git a/src/telegram.js b/src/telegram.js index c4222c9..efcc0c1 100644 --- a/src/telegram.js +++ b/src/telegram.js @@ -205,21 +205,6 @@ class TelegramBot extends EventEmitter { return this._request(_path); } - /** - * Use this method to get up to date information about the chat - * (current name of the user for one-on-one conversations, current - * username of a user, group or channel, etc.). - * @param {Number|String} chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) - * @return {Promise} - * @see https://core.telegram.org/bots/api#getchat - */ - getChat(chatId) { - const form = { - chat_id: chatId - }; - return this._request('getChat', { form }); - } - /** * Specify an url to receive incoming updates via an outgoing webHook. * @param {String} url URL where Telegram will make HTTP Post. Leave empty to @@ -757,8 +742,10 @@ class TelegramBot extends EventEmitter { } /** - * Returns information about the chat in form of a `Chat` object. - * @param {Number|String} chatId Unique identifier for the target group or username of the target supergroup + * Use this method to get up to date information about the chat + * (current name of the user for one-on-one conversations, current + * username of a user, group or channel, etc.). + * @param {Number|String} chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) * @return {Promise} * @see https://core.telegram.org/bots/api#getchat */ @@ -783,7 +770,7 @@ class TelegramBot extends EventEmitter { } /** - * Returns the number of members in a chat in form of an `Int` object. + * Use this method to get the number of members in a chat. * @param {Number|String} chatId Unique identifier for the target group or username of the target supergroup * @return {Promise} * @see https://core.telegram.org/bots/api#getchatmemberscount @@ -796,7 +783,7 @@ class TelegramBot extends EventEmitter { } /** - * Returns information about a member of a chat in form of a `ChatMember` object. + * Use this method to get information about a member of a chat. * @param {Number|String} chatId Unique identifier for the target group or username of the target supergroup * @param {String} userId Unique identifier of the target user * @return {Promise} diff --git a/test/README.md b/test/README.md index a34547c..4e8f583 100644 --- a/test/README.md +++ b/test/README.md @@ -4,5 +4,7 @@ Running the tests: export TEST_TELEGRAM_TOKEN= # User Id which you want to send the messages. export TEST_USER_ID= +# Group Id which to use in some of the tests, e.g. for TelegramBot#getChat() +export TEST_GROUP_ID= npm run test ``` diff --git a/test/index.js b/test/index.js index cf4b0a4..4c04789 100644 --- a/test/index.js +++ b/test/index.js @@ -14,6 +14,7 @@ if (!TOKEN) { // Telegram service if not User Id const USERID = process.env.TEST_USER_ID || 777000; +const GROUPID = process.env.TEST_GROUP_ID || -1001075450562; describe('Telegram', function telegramSuite() { describe('#setWebHook', function setWebHookSuite() { @@ -140,6 +141,34 @@ describe('Telegram', function telegramSuite() { }); }); + describe('#getChatAdministrators', function getChatAdministratorsSuite() { + it('should return an Array', function test() { + const bot = new Telegram(TOKEN); + return bot.getChatAdministrators(GROUPID).then(resp => { + assert.ok(Array.isArray(resp)); + }); + }); + }); + + describe('#getChatMembersCount', function getChatMembersCountSuite() { + it('should return an Integer', function test() { + const bot = new Telegram(TOKEN); + return bot.getChatMembersCount(GROUPID).then(resp => { + assert.ok(Number.isInteger(resp)); + }); + }); + }); + + describe('#getChatMember', function getChatMemberSuite() { + it('should return a ChatMember', function test() { + const bot = new Telegram(TOKEN); + return bot.getChatMember(GROUPID, USERID).then(resp => { + assert.ok(is.object(resp.user)); + assert.ok(is.string(resp.status)); + }); + }); + }); + describe('#getUpdates', function getUpdatesSuite() { it('should return an Array', function test() { const bot = new Telegram(TOKEN);