UNPKG

vvlad1973-telegram-framework

Version:
91 lines (67 loc) 2.69 kB
'use strict' import assert from 'assert'; import express from 'express'; import bodyParser from 'body-parser'; import { delay } from '@vvlad1973/utils'; import { TelegramBotEx, UpdateTypes, InlineKeyboardMarkup } from '../index.js'; import { multipleChoise } from '../preprocessors/multiple_choise.js'; let chatId = 90844863, port = 8080, webhookUrl = 'https://app.vvlad1973.keenetic.link', // webhookUrl = 'https://1b51-194-15-116-48.ngrok.io', token = process.env.TELEGRAM_TOKEN, listener; process.env.TESTMODE = 'YES'; const app = express(), bot = new TelegramBotEx(token,); describe/* .skip */('Tests of Multiple chioce question preprocessor()', () => { before(async () => { app.use(bodyParser.json()); listener = app.listen(port); app.post(`/${token}/`, function (request, response) { console.log('Call of webhook catched'); response.sendStatus(200); bot.processUpdate(request.body); }); bot.logger.setLevel('debug'); await bot.setWebhook(webhookUrl); }); after(() => { listener.close(); }); it/* .only */('Test Multiple choise()', function (done) { bot.once(UpdateTypes.CALLBACK_QUERY, async function (callbackQuery) { bot.answerCallbackQuery(callbackQuery.id, { text: 'Ok', show_alert: true }) .then(response => { assert.equal(response.response.ok, true); console.log(JSON.stringify(callbackQuery, '', '\t')) done(); }) }); // bot.setWebhook(webhookUrl) // .then(response => { // console.log(JSON.stringify(response, '', '\t')); bot.use(multipleChoise, {textTemplate: '%s\n\nТы ответил:\n\n%s'}); let markup = new InlineKeyboardMarkup(); markup.appendRows(); markup.appendTextButton('Вариант 1', 'OPT_1'); markup.appendRows(); markup.appendTextButton('Вариант 2', 'OPT_2'); markup.appendRows(); markup.appendTextButton('Вариант 3', 'OPT_3'); markup.appendRows(); markup.appendTextButton('Вариант 4', 'OPT_4'); markup.appendRows(); markup.appendTextButton('Отправить ответ »»', 'ANSWER'); bot.sendMessage(chatId, 'Выбери несколько вариантов:', { reply_markup: markup }) .then(response => { assert.equal(response.response.ok, true); }); console.log('Press a button in the new telegram message...'); delay(10000); // }) // .catch(error => {console.error(error);}); }).timeout(0); });