Админам: персональное отключение уведомлений от клиентов
В админ-панели кнопка «Уведомления: вкл 🔔 / выкл 🔕» — админ (в т.ч. из ADMIN_IDS/ супер-админ) может лично отключить приём уведомлений о заявках и сообщениях клиентов. Флаг notify_muted хранится в профиле; _notify_operators пропускает замьюченных получателей (у остальных операторов уведомления идут как обычно). pytest 37 passed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -213,6 +213,19 @@ def test_admin_edit_link(app):
|
||||
assert app._link("group_4") == "https://infocyber.pro/pay/group4"
|
||||
|
||||
|
||||
def test_admin_mute_notifications(app):
|
||||
"""Админ может отключить себе уведомления от клиентов — _notify_operators его пропускает."""
|
||||
op = _admin()
|
||||
bot.config.OPERATOR_PEER_IDS = [op]
|
||||
app._sent.clear(); app._notify_operators("тест-уведомление")
|
||||
assert any("тест-уведомление" in s["msg"] for s in app._sent) # по умолчанию доходит
|
||||
app.handle_message(op, "Админка ⚙️")
|
||||
app.handle_message(op, "Уведомления: вкл 🔔") # переключаем в «выкл»
|
||||
assert bot.db.get_profile(op).get("notify_muted") is True
|
||||
app._sent.clear(); app._notify_operators("второе уведомление")
|
||||
assert not any("второе уведомление" in s["msg"] for s in app._sent) # больше не доходит
|
||||
|
||||
|
||||
def test_admin_faq_crud(app):
|
||||
a = _admin()
|
||||
app.handle_message(a, "Быстрые ответы 💬")
|
||||
|
||||
Reference in New Issue
Block a user