add payment_link and banks
This commit is contained in:
1 parent
2ae79b1ca4
commit
de3135b588
100 files changed
+6167
-47
No files matched your search
@@ -10,7 +10,7 @@ class AuthenticationPage(BasePage):
|
||||
self.page.locator('input[name="mobile"]').fill(customer.local_mobile)
|
||||
self.page.locator('input[name="password"]').fill(password)
|
||||
self.page.get_by_role("button", name="ورود به حساب").click()
|
||||
expect(self.page).to_have_url(self.url(reverse("tickets:list")))
|
||||
expect(self.page).to_have_url(self.url(reverse("payments:home")))
|
||||
|
||||
def login_staff(self, staff, password):
|
||||
self.goto(reverse("accounts:staff_login"))
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
from django.urls import reverse
|
||||
from playwright.sync_api import expect
|
||||
|
||||
from tests.e2e.pages.base import BasePage
|
||||
|
||||
|
||||
class MagicLinkConfirmationPage(BasePage):
|
||||
def open(self, token):
|
||||
self.goto(reverse("accounts:magic", args=[token]))
|
||||
expect(self.page.get_by_role("heading", name="این لینک مربوط به حساب دیگری است")).to_be_visible()
|
||||
|
||||
@property
|
||||
def continue_button(self):
|
||||
return self.page.get_by_role("button", name="خروج از حساب و مشاهده تیکت", exact=True)
|
||||
|
||||
@property
|
||||
def cancel_link(self):
|
||||
return self.page.get_by_role("link", name="انصراف از مشاهده این تیکت/پیام", exact=True)
|
||||
|
||||
def continue_to_ticket(self, ticket):
|
||||
self.continue_button.click()
|
||||
expect(self.page).to_have_url(self.url(reverse("tickets:detail", args=[ticket.public_id])))
|
||||
expect(self.page.get_by_role("heading", name=ticket.subject, exact=True)).to_be_visible()
|
||||
expect(self.page.get_by_text("فقط به همین تیکت دسترسی دارید", exact=False)).to_be_visible()
|
||||
|
||||
def cancel(self):
|
||||
self.cancel_link.click()
|
||||
expect(self.page).to_have_url(self.url(reverse("payments:home")))
|
||||
|
||||
def expect_readable_layout(self):
|
||||
expect(self.continue_button).to_be_visible()
|
||||
expect(self.cancel_link).to_be_visible()
|
||||
metrics = self.page.evaluate("""() => ({
|
||||
width: document.documentElement.clientWidth,
|
||||
scrollWidth: document.documentElement.scrollWidth,
|
||||
textSize: parseFloat(getComputedStyle(document.querySelector('#confirmation-description')).fontSize),
|
||||
background: getComputedStyle(document.querySelector('.magic-confirmation-primary')).backgroundColor,
|
||||
color: getComputedStyle(document.querySelector('.magic-confirmation-primary')).color,
|
||||
})""")
|
||||
assert metrics["scrollWidth"] <= metrics["width"]
|
||||
assert metrics["textSize"] >= 16
|
||||
assert metrics["background"] == "rgb(8, 55, 107)" and metrics["color"] == "rgb(255, 255, 255)"
|
||||
for control in (self.continue_button, self.cancel_link):
|
||||
assert control.bounding_box()["height"] >= 44
|
||||
@@ -0,0 +1,40 @@
|
||||
from playwright.sync_api import expect
|
||||
|
||||
from .payments import PaymentsPage
|
||||
|
||||
|
||||
class PaymentLinkPage(PaymentsPage):
|
||||
def open_link(self, path):
|
||||
self.goto(path)
|
||||
expect(self.page.get_by_role('heading', name='جزئیات واریز', exact=True)).to_be_visible()
|
||||
|
||||
def copy_all(self):
|
||||
self.page.get_by_role('button', name='کپی کامل اطلاعات', exact=True).click()
|
||||
expect(self.page.get_by_text('کپی شد', exact=True).or_(
|
||||
self.page.get_by_role('heading', name='متن را انتخاب و کپی کنید'))).to_be_visible()
|
||||
if self.page.get_by_role('dialog').is_visible():
|
||||
self.page.get_by_role('button', name='بستن', exact=True).click()
|
||||
|
||||
def open_receipt_form(self, linked):
|
||||
if linked:
|
||||
self.page.get_by_role('link', name='ارسال فیش این واریز', exact=True).click()
|
||||
else:
|
||||
self.page.get_by_role('link', name='ارسال فیش واریز مستقل', exact=True).click()
|
||||
expect(self.page.get_by_role('heading', name='ارسال فیش واریزی', exact=True)).to_be_visible()
|
||||
|
||||
def show_required_errors(self):
|
||||
self.page.get_by_role('button', name='ثبت و ارسال فیش', exact=True).click()
|
||||
expect(self.page.locator('#receipt-errors')).to_be_visible()
|
||||
expect(self.page.locator('#id_paid_amount')).to_be_focused()
|
||||
|
||||
def submit_payment(self, png, account_id=None):
|
||||
if account_id is not None:
|
||||
self.page.locator('#id_destination_account').select_option(str(account_id))
|
||||
self.page.get_by_label('شناسه واریز که با آن پرداخت انجام دادهاید (اختیاری)', exact=True).fill('')
|
||||
expect(self.page.locator('#id_deposit_id')).not_to_have_attribute('required', '')
|
||||
self.page.locator('#id_paid_amount').fill('۱۲۳۴۵')
|
||||
expect(self.page.locator('#id_paid_amount')).to_have_value('۱۲٬۳۴۵')
|
||||
self.page.get_by_role('button', name='امروز', exact=True).click()
|
||||
self.page.locator('#id_receipt_image').set_input_files({'name': 'payment.png', 'mimeType': 'image/png', 'buffer': png})
|
||||
self.page.get_by_role('button', name='ثبت و ارسال فیش', exact=True).click()
|
||||
expect(self.page.locator('.flash')).to_contain_text('فیش ثبت شد و در انتظار بررسی است.')
|
||||
@@ -0,0 +1,33 @@
|
||||
from django.urls import reverse
|
||||
from playwright.sync_api import expect
|
||||
from .base import BasePage
|
||||
|
||||
|
||||
class PaymentsPage(BasePage):
|
||||
def select_customer(self, mobile):
|
||||
self.page.get_by_label('جستوجو و انتخاب مشتری', exact=False).fill(mobile)
|
||||
result = self.page.locator('.pay-customer-result').filter(has_text=mobile)
|
||||
result.get_by_role('button', name='انتخاب این مشتری', exact=True).click()
|
||||
expect(self.page.locator('[data-selected-customer]')).to_contain_text(mobile)
|
||||
|
||||
def open_hub(self):
|
||||
self.goto(reverse('payments:home'))
|
||||
expect(self.page.get_by_role('heading',name='چهارسو',exact=True)).to_be_visible()
|
||||
|
||||
def send_receipt(self, account_id, png, linked=False):
|
||||
self.goto(reverse('payments:receipt_new'))
|
||||
if not linked:
|
||||
self.page.get_by_label('واریز مستقل',exact=True).check()
|
||||
self.page.locator('#id_paid_amount').fill('۱۲۳۴۵')
|
||||
self.page.locator('#id_destination_account').select_option(str(account_id))
|
||||
self.page.get_by_role('button',name='امروز',exact=True).click()
|
||||
self.page.locator('#id_receipt_image').set_input_files({'name':'receipt.png','mimeType':'image/png','buffer':png})
|
||||
self.page.get_by_role('button',name='ثبت و ارسال فیش').click()
|
||||
expect(self.page.locator('.flash')).to_contain_text('فیش ثبت شد و در انتظار بررسی است.')
|
||||
|
||||
def approve(self, receipt_id, senior=False):
|
||||
self.goto(reverse('staff_payments:receipt_detail',args=[receipt_id]))
|
||||
if senior:
|
||||
self.page.locator('#decision-reason').fill('تطبیق پرداخت بررسی شد')
|
||||
self.page.get_by_role('button',name='تأیید نهایی ارشد' if senior else 'ثبت تأیید من',exact=True).click()
|
||||
expect(self.page.locator('.flash')).to_contain_text('تصمیم ثبت شد.')
|
||||
@@ -0,0 +1,26 @@
|
||||
from playwright.sync_api import expect
|
||||
|
||||
from .base import BasePage
|
||||
|
||||
|
||||
class TicketNoticesPage(BasePage):
|
||||
def open_customer_panel(self):
|
||||
if self.page.get_by_role('button', name='اطلاعات مشتری', exact=True).is_visible():
|
||||
self.page.get_by_role('button', name='اطلاعات مشتری', exact=True).click()
|
||||
expect(self.page.locator('#customer-info')).to_be_in_viewport()
|
||||
|
||||
def toggle_notices(self):
|
||||
self.page.locator('.ticket-notices > summary').click()
|
||||
|
||||
def open_notice(self, subject):
|
||||
self.page.get_by_role('link').filter(has=self.page.get_by_text(subject, exact=True)).click()
|
||||
|
||||
def open_all(self):
|
||||
self.page.get_by_role('link', name='بیشتر همه اعلامیههای این مشتری').click()
|
||||
|
||||
def expect_closed(self):
|
||||
expect(self.page.get_by_role('link', name='ایجاد اعلامیه واریز', exact=True)).to_be_hidden()
|
||||
|
||||
def expect_open(self):
|
||||
expect(self.page.get_by_role('link', name='ایجاد اعلامیه واریز', exact=True)).to_be_visible()
|
||||
expect(self.page.get_by_role('list', name='اعلامیههای اخیر مشتری').get_by_role('link')).to_have_count(3)
|
||||
Reference in new issue
Block a user