Тесты: покрытие админ-CRUD (услуги, FAQ, вакансии, админы, рассылка, стата)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -46,3 +46,62 @@ def test_non_admin_cannot_open_panel(app):
|
|||||||
app._sent.clear()
|
app._sent.clear()
|
||||||
app.handle_message(424242, "Админка ⚙️")
|
app.handle_message(424242, "Админка ⚙️")
|
||||||
assert not any("Админ-панель" in s["msg"] for s in app._sent)
|
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user