diff --git a/tests/test_flow.py b/tests/test_flow.py index a80c908..0c3de59 100644 --- a/tests/test_flow.py +++ b/tests/test_flow.py @@ -46,3 +46,62 @@ def test_non_admin_cannot_open_panel(app): app._sent.clear() app.handle_message(424242, "Админка ⚙️") assert not any("Админ-панель" in s["msg"] for s in app._sent) + + +def _admin(): + return bot.config.SUPER_ADMIN_IDS[0] + + +def test_admin_services_crud(app): + a = _admin() + app.handle_message(a, "Управление услугами ⚙️") + app.handle_message(a, "➕ Добавить услугу") + app.handle_message(a, "Тест-у | 1 ₽ | описание") + nid = [k for k, v in bot.db.get_services().items() if v["name"] == "Тест-у"] + assert nid + n = nid[0] + app.handle_message(a, "✏️ Изменить услугу"); app.handle_message(a, f"{n}. Тест-у") + app.handle_message(a, "цена | 999 ₽") + assert bot.db.get_services()[n]["price"] == "999 ₽" + app.handle_message(a, "🗑 Удалить услугу"); app.handle_message(a, f"{n}. Тест-у") + assert n not in bot.db.get_services() + + +def test_admin_faq_crud(app): + a = _admin() + app.handle_message(a, "Быстрые ответы 💬") + app.handle_message(a, "➕ Добавить ответ") + app.handle_message(a, "вопрос | ответ") + assert any(kw == "вопрос" for _, kw, _ in bot.db.get_custom_faq()) + + +def test_admin_vacancy_crud(app): + a = _admin() + app.handle_message(a, "Вакансии 💼") + app.handle_message(a, "➕ Вакансия игрок") + app.handle_message(a, "Valorant 🎯") + assert any(l == "Valorant 🎯" for _, l in bot.db.get_vacancy_options("player")) + + +def test_admin_add_remove_admin(app): + a = _admin() + app.handle_message(a, "Администраторы 👑") + app.handle_message(a, "➕ Добавить админа") + app.handle_message(a, "888001") + assert 888001 in bot.db.get_admins() + assert app._is_admin(888001) + + +def test_broadcast_preview_and_cancel(app): + a = _admin() + app.handle_message(a, "рассылка Привет, акция!") + assert a in app._pending_broadcasts + app.handle_message(a, "Отмена ❌") + assert a not in app._pending_broadcasts + + +def test_stats_runs(app): + a = _admin() + app._sent.clear() + app.handle_message(a, "Статистика 📊") + assert any("Статистика" in s["msg"] for s in app._sent)