fix UI UX

This commit is contained in:
javad committed 2026-10-06 12:08:16 +03:30
1 parent 1cbbbbd0dc
commit d99e47ecce
11 files changed
+333 -32

No files matched your search

+38
View File
@@ -0,0 +1,38 @@
from playwright.sync_api import expect
from .base import BasePage
class CustomerProfilePage(BasePage):
def open(self):
self.goto('/profile/')
expect(self.page.get_by_role('heading', name='پروفایل من', exact=True)).to_be_visible()
def edit_details(self):
self.page.get_by_label('نام:', exact=True).fill('مریم')
self.page.get_by_label('نام خانوادگی:', exact=True).fill('رضایی')
self.page.get_by_label('نوع مشتری:', exact=True).select_option('PERSON')
expect(self.page.locator('#profile-province-options option')).not_to_have_count(0)
self.page.get_by_label('استان:', exact=True).fill('تهران')
expect(self.page.get_by_label('شهر:', exact=True)).to_be_enabled()
self.page.get_by_label('شهر:', exact=True).fill('تهران')
def assert_validation_and_save(self):
self.page.get_by_label('رمز عبور جدید:', exact=True).fill('short')
self.page.get_by_role('button', name='ذخیره تغییرات', exact=True).click()
expect(self.page.get_by_label('رمز عبور جدید:', exact=True)).to_be_focused()
assert self.page.get_by_label('رمز عبور جدید:', exact=True).evaluate('(input) => input.validity.tooShort')
self.page.get_by_label('رمز عبور جدید:', exact=True).fill('')
self.page.get_by_label('شهر:', exact=True).fill('رشت')
self.page.get_by_label('شهر:', exact=True).press('Tab')
self.page.get_by_role('button', name='ذخیره تغییرات', exact=True).click()
expect(self.page.get_by_role('alert')).to_contain_text('اطلاعات مشخص‌شده را بررسی')
expect(self.page.get_by_label('نام:', exact=True)).to_have_value('مریم')
expect(self.page.get_by_label('شهر:', exact=True)).to_have_attribute('aria-invalid', 'true')
expect(self.page.locator('#profile-city-options option[value="تهران"]')).to_have_count(1)
self.page.get_by_label('شهر:', exact=True).fill('تهران')
self.page.get_by_label('شهر:', exact=True).press('Tab')
self.page.get_by_role('button', name='ذخیره تغییرات', exact=True).click()
expect(self.page.locator('.flash')).to_contain_text('پروفایل شما ذخیره شد.')
expect(self.page.get_by_label('نام:', exact=True)).to_have_value('مریم')
expect(self.page.get_by_label('شهر:', exact=True)).to_have_value('تهران')
+39
View File
@@ -0,0 +1,39 @@
from django.urls import reverse
from playwright.sync_api import expect
from .base import BasePage
class CustomerTicketsPage(BasePage):
def assert_dock(self, active):
dock = self.page.get_by_role('navigation', name='دسترسی سریع مشتری')
expect(dock.get_by_role('link')).to_have_count(3)
for name in ('خدمات', 'درخواست‌ها', 'پروفایل'):
expect(dock.get_by_role('link', name=name, exact=True)).to_be_visible()
expect(dock.locator('[aria-current]')).to_have_text(active)
for link in dock.get_by_role('link').all():
box = link.bounding_box()
assert box['width'] >= 44 and box['height'] >= 44
def follow_dock(self, name, destination):
self.page.get_by_role('navigation', name='دسترسی سریع مشتری').get_by_role(
'link', name=name, exact=True
).click()
expect(self.page).to_have_url(self.url(reverse(destination)))
def assert_history(self, subject=None):
expect(self.page.get_by_role('heading', name='درخواست‌های من', exact=True)).to_be_visible()
if subject:
card = self.page.locator('.tickets-list-card').filter(has_text=subject)
expect(card.get_by_role('heading', name=subject, exact=True)).to_be_visible()
expect(card).to_contain_text('مشاهده و پیگیری')
else:
expect(self.page.get_by_role('heading', name='هنوز درخواستی ثبت نشده')).to_be_visible()
expect(self.page.get_by_role('link', name='ثبت اولین درخواست')).to_be_visible()
assert self.page.evaluate('document.documentElement.scrollWidth <= document.documentElement.clientWidth + 1')
def start_request(self):
self.page.get_by_role('link', name='ثبت درخواست جدید', exact=True).click()
expect(self.page).to_have_url(self.url(reverse('tickets:new')))
expect(self.page.locator('.ticket-wizard-page')).to_be_visible()