Files
customerTicket/tests/e2e/pages/customer_new_ticket.py
T
2026-09-10 11:34:19 +03:30

32 lines
1.2 KiB
Python

import re
from playwright.sync_api import expect
from tests.e2e.pages.base import BasePage
class CustomerNewTicketPage(BasePage):
def __init__(self, page, live_server_url: str):
super().__init__(page, live_server_url)
self.unit=page.locator("[data-ticket-unit]")
self.category=page.locator("[data-ticket-category]")
def open(self):
self.goto("/tickets/new/")
expect(self.unit).to_be_visible()
def select_unit(self, unit_id: int, expected_category: str):
with self.page.expect_response(lambda response: "/tickets/new/options/" in response.url and response.ok):
self.unit.select_option(str(unit_id))
expect(self.category.locator("option", has_text=expected_category)).to_have_count(1)
def search_and_choose(self, query: str, category_name: str):
self.page.locator("[data-ticket-search]").fill(query)
result=self.page.get_by_role(
"button", name=re.compile(rf"^{re.escape(category_name)}")
)
expect(result).to_be_visible()
result.click()
option = self.category.get_by_role("option", name=category_name, exact=True)
expect(option).to_have_count(1)
expect(self.category).to_have_value(option.get_attribute("value"))