| name | test-app |
| description | Полное тестирование Alar Finance — API, UI, флоу, визуал. Использует Playwright + Puppeteer + fetch MCP + unit тесты. Аргумент: api / ui / all (default: all) |
Запусти полное тестирование Alar Finance. Аргумент: {{args}} (api / ui / all, default: all)
BASE_URL = https://finance-bot.alar-app.workers.dev
Фаза 1 — Unit & Integration тесты (всегда)
cd c:/Users/illia/Documents/TARS/finance-bot && node --experimental-vm-modules tests/shared-access.test.mjs 2>&1
Выведи: сколько прошло / упало. Если упали — укажи какие.
Фаза 2 — API тесты (если args = api или all)
Используй mcp__fetch__fetch для каждого запроса. Тестируй последовательно:
2.1 Health check
GET {BASE_URL}/api/health
Ожидаем: { status: "ok" }
2.2 Регистрация тестового пользователя
POST {BASE_URL}/api/auth/register
Body: { "email": "test_qa@alar.app", "password": "TestQA123!", "display_name": "QA Bot" }
Сохрани token из ответа → используй как Authorization: Bearer {token} во всех следующих запросах.
2.3 Получение профиля
GET {BASE_URL}/api/user
Headers: Authorization: Bearer {token}
Ожидаем: { id, email, is_pro, subscription_tier }
2.4 Список счётов
GET {BASE_URL}/api/accounts
Ожидаем: массив с хотя бы одним счётом (personal по умолчанию)
2.5 Создание транзакции
POST {BASE_URL}/api/transaction
Body: { "type": "expense", "amount": 99.99, "category_id": 1, "description": "QA test" }
Ожидаем: { success: true, transaction: {...} }
2.6 Список транзакций
GET {BASE_URL}/api/transactions
Ожидаем: массив, содержит только что добавленную транзакцию
2.7 Создание семьи
POST {BASE_URL}/api/family/create
Body: { "name": "QA Family" }
Ожидаем: { success: true, family: { id, name } }
Сохрани family.id → family_id
2.8 Инвайт в семью
POST {BASE_URL}/api/family/invite
Body: { "family_id": {family_id} }
Ожидаем: { invite_code: "XXXXXX" }
2.9 Список семей
GET {BASE_URL}/api/family
Ожидаем: массив, содержит QA Family
2.10 Голосовой API — проверка gate
POST {BASE_URL}/api/voice/parse
Body: { "text": "потратил 50 на кофе" }
Ожидаем: 402 (голос = pro only) — это правильное поведение
2.11 Удаление транзакции (cleanup)
DELETE {BASE_URL}/api/transaction?id={transaction_id}
2.12 Удаление семьи (cleanup)
POST {BASE_URL}/api/family/delete
Body: { "family_id": {family_id} }
Выведи таблицу: эндпоинт | статус | результат (✅/❌)
Фаза 3 — UI & Visual тесты (если args = ui или all)
Используй Playwright MCP (mcp__playwright__*) для браузерного тестирования.
3.1 Открой приложение
mcp__playwright__browser_navigate: { url: "https://finance-bot.alar-app.workers.dev/app/" }
Подожди загрузки. Сделай скриншот → qa-1-login.png
3.2 Проверь экран входа
- Есть ли кнопки: Telegram / Email / (Google/Apple если есть)
- Нет ли JS ошибок в консоли (используй
mcp__puppeteer__puppeteer_evaluate если нужно)
3.3 Войди через email
Заполни форму email/password тестовыми данными (test_qa@alar.app / TestQA123!)
Сделай скриншот → qa-2-home.png
3.4 Главный экран
Проверь:
- Отображается баланс
- Список транзакций (или "нет транзакций")
- FAB кнопка (+ добавить)
- Навбар внизу
Скриншот →
qa-3-home-logged.png
3.5 Добавление транзакции через UI
Нажми FAB → выбери категорию → введи сумму → сохрани
Скриншот → qa-4-add-tx.png
3.6 Семейный доступ
Нажми на иконку семьи / перейди в Family Manager
Скриншот → qa-5-family.png
Проверь: есть ли кнопки "Переименовать" и "Удалить" если ты owner
3.7 Счета
Перейди в раздел счётов
Скриншот → qa-6-accounts.png
3.8 Настройки / профиль
Скриншот → qa-7-settings.png
Прочитай все скриншоты и отобрази их пользователю.
Фаза 4 — Проверка дизайн-системы
Прочитай docs/DESIGN_SYSTEM.md и для каждого скриншота проверь:
- Цвета соответствуют палитре (
--accent-cyan, --bg-primary и т.д.)
- Шрифт Switzer (не Arial/Roboto)
- Иконки phosphor (не emoji в UI элементах)
- Отступы и карточки консистентны
Финальный отчёт
Выведи структурированный отчёт:
## Результаты тестирования Alar Finance
Дата: {дата}
### Unit тесты: X/Y прошли
### API тесты: X/Y прошли
| Эндпоинт | Статус | Примечание |
|----------|--------|------------|
| ... | ✅/❌ | ... |
### UI тесты
- [скриншот qa-1] Описание
- [скриншот qa-2] Описание
### Найденные проблемы
1. 🔴 Критично: ...
2. 🟡 Важно: ...
3. 🟢 Минор: ...
### Рекомендации
...
Если найдены баги — спроси пользователя разрешение исправить.