estelam ticket, varizha , others
This commit is contained in:
1 parent
35a1ec1794
commit
6b546aad76
71 files changed
+2865
-191
No files matched your search
@@ -0,0 +1,46 @@
|
||||
import pytest
|
||||
from django.contrib.auth.models import Permission
|
||||
from django.urls import reverse
|
||||
|
||||
from apps.accounts.models import User
|
||||
from apps.customers.models import ContactGroup, CustomerProfile
|
||||
from apps.staff.models import OrganizationalUnit, StaffProfile
|
||||
from apps.tickets.dispatch_presentation import dispatch_form_options
|
||||
from apps.tickets.models import TicketCategory
|
||||
|
||||
pytestmark = pytest.mark.django_db
|
||||
|
||||
|
||||
def test_dispatch_options_count_only_eligible_members_and_preserve_unit_scope(client):
|
||||
unit = OrganizationalUnit.objects.create(name="واحد مجاز", slug="dispatch-options")
|
||||
other = OrganizationalUnit.objects.create(name="واحد دیگر", slug="dispatch-options-other")
|
||||
unit.permissions.add(Permission.objects.get(codename="dispatch_group_tickets"))
|
||||
user = User.objects.create_user(username="dispatch-options", account_type="STAFF")
|
||||
StaffProfile.objects.create(user=user, primary_unit=unit)
|
||||
group = ContactGroup.objects.create(unit=unit, name="گروه مجاز")
|
||||
hidden_group = ContactGroup.objects.create(unit=other, name="گروه پنهان")
|
||||
category = TicketCategory.objects.create(unit=unit, title="مجاز", slug="options-category")
|
||||
hidden_category = TicketCategory.objects.create(unit=other, title="پنهان", slug="options-hidden-category")
|
||||
for index, (mobile, active) in enumerate([("09120000091", True), ("", True), (None, True), ("09120000092", False)]):
|
||||
contact = User.objects.create_user(username=f"options-customer-{index}", mobile=mobile, is_active=active, account_type="CUSTOMER")
|
||||
profile = CustomerProfile.objects.create(user=contact)
|
||||
profile.groups.add(group)
|
||||
client.force_login(user)
|
||||
response = client.get(reverse("staff_tickets:dispatch_create"))
|
||||
assert response.status_code == 200
|
||||
options = response.context["dispatch_options"]
|
||||
assert options["units"] == [{"id": unit.pk, "name": unit.name, "operations": ["BULK"]}]
|
||||
assert options["groups"] == [{"id": group.pk, "name": group.name, "unit_id": unit.pk, "recipient_count": 1}]
|
||||
assert category.pk in [item["id"] for item in options["categories"]]
|
||||
assert hidden_category.pk not in [item["id"] for item in options["categories"]]
|
||||
assert hidden_group.pk not in [item["id"] for item in options["groups"]]
|
||||
assert "?v=" in response.content.decode().split("dispatch-workspace.js", 1)[1]
|
||||
|
||||
|
||||
def test_dispatch_options_include_global_category_fallback_for_units_without_categories():
|
||||
unit = OrganizationalUnit.objects.create(name="بدون دستهبندی", slug="dispatch-options-fallback")
|
||||
user = User.objects.create_superuser(username="options-admin", account_type="STAFF")
|
||||
global_category = TicketCategory.objects.create(title="عمومی", slug="options-global", unit=None)
|
||||
options = dispatch_form_options(user, [unit], ContactGroup.objects.none())
|
||||
assert {"id": global_category.pk, "title": global_category.title, "unit_id": None} in options["categories"]
|
||||
assert options["groups"] == []
|
||||
Reference in new issue
Block a user