share ticket and ticket message
This commit is contained in:
1 parent
39e64854b8
commit
79fe1cddbb
35 files changed
+1742
-95
No files matched your search
@@ -0,0 +1,35 @@
|
||||
import pytest
|
||||
from django.urls import reverse
|
||||
|
||||
from apps.tickets.sharing import revoke_staff_share, share_staff_message, staff_message_context
|
||||
from tests.test_staff_sharing import make_sharing_case
|
||||
|
||||
|
||||
pytestmark = pytest.mark.django_db
|
||||
|
||||
|
||||
def test_inline_sharing_keeps_each_messages_recipients_and_history_separate(client):
|
||||
case = make_sharing_case()
|
||||
other_message = case["ticket"].ticket_messages.get(body="مکاتبه محرمانه قبل")
|
||||
selected_grant = share_staff_message(case["selected"], case["sender"], case["recipient"], "رسید منتخب")
|
||||
other_grant = share_staff_message(other_message, case["sender"], case["outsider"], "مکاتبه دیگر")
|
||||
client.force_login(case["recipient"])
|
||||
assert client.get(reverse("staff_tickets:shared_message", args=[selected_grant.public_id]), follow=True).status_code == 200
|
||||
assert client.post(reverse("staff_tickets:read_shares", args=[case["ticket"].public_id]), {"message_ids": [str(case["selected"].public_id)]}).status_code == 200
|
||||
client.force_login(case["sender"])
|
||||
response = client.get(reverse("staff_tickets:detail", args=[case["ticket"].public_id]))
|
||||
selected = next(item for item in response.context["conversation"] if item.pk == case["selected"].pk)
|
||||
before = next(item for item in response.context["conversation"] if item.pk == other_message.pk)
|
||||
assert [grant.pk for grant in selected.staff_message_shares] == [selected_grant.pk]
|
||||
assert selected.staff_message_shares[0].first_viewed_at is not None
|
||||
assert [grant.pk for grant in before.staff_message_shares] == [other_grant.pk]
|
||||
assert {event.metadata["action"] for event in selected.staff_share_events} == {"created", "opened"}
|
||||
assert all(event.metadata["message_public_id"] == str(selected.public_id) for event in selected.staff_share_events)
|
||||
assert all(event.metadata["user"] == case["recipient"].pk for event in selected.staff_share_events)
|
||||
assert revoke_staff_share(selected_grant, case["sender"])
|
||||
staff_message_context(case["ticket"], case["sender"], [case["selected"]])
|
||||
assert case["selected"].staff_message_shares[0].revoked_at is not None
|
||||
assert {event.metadata["action"] for event in case["selected"].staff_share_events} == {"created", "opened", "revoked"}
|
||||
context = staff_message_context(case["ticket"], case["customer"], [other_message])
|
||||
assert not context["can_share_message"]
|
||||
assert not hasattr(other_message, "staff_message_shares")
|
||||
Reference in new issue
Block a user