vvlad1973-telegram-framework
Version:
Current version: *7.9.5*
91 lines (67 loc) • 2.69 kB
JavaScript
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);
});