Telegraf Test - Simple Test ToolKit of Telegram Bots by Tiago Danin.
Telegraf Test - Simple Test ToolKit of Telegram Bots
Module available through the npm registry. It can be installed using the npm
or yarn
command line tool.
# Yarn (Recomend)
yarn add telegraf-test
# NPM
npm install telegraf-test --save
const Telegraf = require('telegraf')
const TelegrafTest = require('telegraf-test')
const port = 3000
const secretPath = 'secret-path'
const bot = new Telegraf('ABCD:1234567890')
const test = new TelegrafTest({
url: `http://127.0.0.1:${port}/${secretPath}`
})
test.setUser({
id: 1234,
username: '@TiagoEDGE'
// ...//
}) /* Return {
id: 1234,
is_bot: false,
first_name: 'FIST-NAME',
last_name: '',
username: '@TiagoEDGE',
language_code: 'en-US'
} */
bot.hears(/ping/i, ctx => {
ctx.reply('Pong!')
})
bot.startWebhook(`/${secretPath}`, null, port)
test.sendMessageWithText('/ping')
.then(res => {
console.log(res.data)
// { method: 'sendMessage', chat_id: 1234567890, text: 'Pong!' }
})
.catch(error => {
console.error(error)
})
TelegrafTest({options})
url - String
Webhook url of your bot. Default value:
http://127.0.0.1:3000/secret-path
axios - Object
Config/option of Axios. Default value:
{headers: {'content-type': 'application/json'}, method: 'POST'}
port - Number
Server emulator port. Default value:
2000
token - String
Bot token. Default value:
ABCD:1234567890
setUpdateId(id: Number)
Update id. Default value: Start in
0
Return request of axios or false
in updates ignored.
Telegram Bot Api Server Emulator. Start with startServer()
.
Support methods:
You create a test suite with Mocha and ExpectJS.
Example test.js
:
const expect = require('expect.js')
describe('bot', function() {
it('/ping', async function() {
var r = await test.sendMessageWithText('/ping')
expect(r.data.text).to.be.a('string')
expect(r.data.text).to.contain('Pong!')
})
})
Run with $ mocha --exit --timeout 100000
Set environment variables DEBUG=telgraf:test
.
To run the test suite, first install the dependencies, then run test
:
# Using Yarn
yarn test
# Using NPM
npm run test
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue. List of all contributors.
JavaScript
22