@cutcode/tele2egram
v0.1.0
Published
CLI for real end-to-end testing of Telegram bots
Downloads
32
Maintainers
Readme
tele2egram
CLI для реальных E2E-тестов Telegram-ботов через MTProto. Сценарии принадлежат
тестируемому проекту: tele2egram только авторизует тестовый аккаунт, отправляет
сообщения, проверяет ответы и нажимает inline-кнопки.
Установка
В Node.js-проект:
npm install --save-dev @cutcode/tele2egramВ проект на любом другом стеке CLI можно запускать без добавления зависимости:
npx --yes @cutcode/tele2egram --helpТребуется Node.js 22 или новее.
Настройка
Создайте Telegram-приложение на https://my.telegram.org/apps и добавьте в
.env проекта:
TELEGRAM_API_ID=12345678
TELEGRAM_API_HASH=0123456789abcdef0123456789abcdefАвторизуйте тестовый аккаунт:
npx tele2egram login-qr defaultВход по номеру также доступен:
npx tele2egram login defaultСессия сохраняется в .tele2egram/default.session текущего проекта. Добавьте
.tele2egram/ в .gitignore: файл сессии даёт полный доступ к аккаунту.
Сценарии
Создайте JSON-файл в тестируемом проекте, например e2e/telegram/smoke.json:
{
"name": "Registration smoke",
"account": "default",
"bot": "@my_staging_bot",
"steps": [
{ "send": "/start" },
{ "expect": { "contains": "Welcome", "button": "Continue" } },
{ "click": { "data": "accept" } },
{ "expect": { "text": "Main menu" } }
]
}Запустите его из корня проекта:
npx tele2egram run e2e/telegram/smoke.jsonДействия DSL:
send— отправить текст или текст reply-кнопки;expect— дождаться сообщения и проверитьtext,contains,buttonилиhasMedia;expect.capture— сохранить первую группу регулярного выражения;sendVariable— отправить ранее сохранённое значение;click— нажать callback-кнопку последнего проверенного сообщения поtextи/илиdata.
Сценарии выполняйте последовательно: одновременное использование одной MTProto- сессии на нескольких машинах может привести к её отзыву Telegram.
Разработка и публикация
npm install
npm run verify
npm pack --dry-run
npm publishGitHub workflow публикует версию из release tag через NPM_TOKEN, аналогично
ai-factory.
