issues/263/user_tool.py (55 lines of code) (raw):
import sys, os
base_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
sys.path.insert(0, base_path)
import pytest
from utils.login import sign_up, complete_onboarding
from utils.browser import close_browser
from playwright.async_api import expect, async_playwright
from playwright._impl._page import Page
from utils.trace_cleaner import trace_cleaner
async def check_if_wrapped(element):
is_wrapped = await element.evaluate(
"""(element) => {
const lineHeight = parseFloat(getComputedStyle(element).lineHeight);
const lines = element.clientHeight / lineHeight;
return lines > 1;
}"""
)
return is_wrapped
@pytest.mark.asyncio
async def test_workspace_header():
derived_email = "testuserexpensify+25215188@gmail.com"
playwright = await async_playwright().start()
browser = await playwright.chromium.launch(
headless=True,
proxy={'server': 'http://127.0.0.1:8080'},
args=[
'--disable-web-security',
'--disable-features=IsolateOrigins,site-per-process'
]
)
context = await browser.new_context(
ignore_https_errors=True,
viewport={
"width": 375,
"height": 812
}
)
page = await context.new_page()
await context.tracing.start(screenshots=True, snapshots=True, sources=True)
try:
await sign_up(page, derived_email)
try:
await complete_onboarding(page)
except Exception:
pass
await expect(page.get_by_label("Inbox")).to_be_visible()
await page.mouse.click(0,0)
await page.locator('button[aria-label="My settings"]').click()
await page.locator('div[aria-label="Workspaces"]').click()
back_button_parent = page.locator("#backButton").locator("..")
workspaces_div = back_button_parent.locator("div", has_text="Workspaces").last
if await workspaces_div.count() == 0:
print("No 'Workspaces' div found.")
return None
is_wrapped = await check_if_wrapped(workspaces_div)
assert not is_wrapped, "Workspaces header is wrapped into multiple lines!"
finally:
await context.tracing.stop(path="/app/expensify/user_tool/output_browser1.zip")
trace_cleaner("/app/expensify/user_tool/output_browser1.zip")
await close_browser(context, page, playwright)