add payment_link and banks

This commit is contained in:
javad committed 2026-10-06 10:03:22 +03:30
1 parent 2ae79b1ca4
commit de3135b588
100 files changed
+6167 -47

No files matched your search

+53
View File
@@ -0,0 +1,53 @@
import pytest
from django.urls import reverse
from django.utils import timezone
from playwright.sync_api import expect
from apps.accounts.models import User
from apps.payments import services
from apps.payments.models import BankInstitution, CompanyBankAccount
from apps.staff.models import StaffProfile
from apps.tickets.models import Ticket, TicketCategory
from tests.e2e.pages.auth import AuthenticationPage
from tests.e2e.pages.ticket_notices import TicketNoticesPage
pytestmark = [pytest.mark.e2e, pytest.mark.django_db(transaction=True)]
@pytest.mark.parametrize('width', [1440, 390])
def test_ticket_notices_toggle_and_customer_navigation(live_server, browser_page, width):
password = 'TicketNotices-e2e-2026'
staff = User.objects.create_user(username='notice-staff', password=password, account_type='STAFF')
StaffProfile.objects.create(user=staff, display_name='کارشناس اعلامیه')
customer = User.objects.create_user(username='notice-customer', account_type='CUSTOMER')
bank, _ = BankInstitution.objects.get_or_create(code='melli', defaults={'name': 'ملی'})
account = CompanyBankAccount.objects.create(name='حساب اعلامیه', holder='شرکت', bank=bank, account_number='123')
notices = [services.issue_notice(staff, {'customer': customer, 'account': account,
'subject': f'اعلامیه نمونه {index}', 'amount': 12345}) for index in range(4)]
ticket = Ticket.objects.create(customer=customer,
category=TicketCategory.objects.create(title='مالی', slug='ticket-notices'),
subject='تیکت اعلامیه', owner=staff, selected_expert=staff,
origin_visibility='SELECTED', last_activity_at=timezone.now())
ticket_url = reverse('staff_tickets:detail', args=[ticket.public_id])
with browser_page() as page:
page.set_viewport_size({'width': width, 'height': 900})
AuthenticationPage(page, live_server.url).login_staff(staff, password)
view = TicketNoticesPage(page, live_server.url)
view.goto(ticket_url)
view.open_customer_panel()
view.expect_closed()
view.toggle_notices()
view.expect_open()
expect(page.get_by_role('list', name='اعلامیه‌های اخیر مشتری')).to_contain_text('در انتظار واریز')
expect(page.get_by_role('list', name='اعلامیه‌های اخیر مشتری')).not_to_contain_text(notices[0].subject)
view.toggle_notices()
view.expect_closed()
view.toggle_notices()
view.open_notice(notices[-1].subject)
expect(page).to_have_url(live_server.url + reverse('staff_payments:notice_detail', args=[notices[-1].public_id]))
view.goto(ticket_url)
view.open_customer_panel()
view.toggle_notices()
view.open_all()
expect(page).to_have_url(live_server.url + reverse('staff_payments:desk') + f'?tab=notices&customer={customer.pk}')
expect(page.get_by_text(notices[0].subject, exact=True)).to_be_visible()