in issues/135/user_tool.py [0:0]
def login_user(p: PlaywrightContextManager, first_name="Milan", last_name="T") -> tuple[Browser, Page]:
# Launch Chromium and open a new page in a mobile device view
device = p.devices["iPhone 13"]
browser = p.chromium.launch(
channel="chrome",
headless=False,
args=[
"--ignore-certificate-errors",
"--disable-web-security",
"--disable-features=IsolateOrigins,site-per-process"
],
proxy={"server": "http://localhost:8080"},
slow_mo=1000
)
context = browser.new_context(ignore_https_errors=True, **device)
# Start tracing with screenshots, snapshots, and sources enabled
context.tracing.start(screenshots=True, snapshots=True, sources=True)
page = context.new_page()
user_email = generate_email()
# Step 1: Open the Expensify URL
page.goto('https://dev.new.expensify.com:8082/')
# Step 2: Enter a generated email and click continue
page.locator('input[type="email"]').fill(user_email)
page.locator('button[tabindex="0"]').click()
page.wait_for_timeout(1000)
# Step 3: Click the join button if available otherwise skip
try:
page.locator('button[tabindex="0"]').click()
page.wait_for_timeout(1000)
except Exception:
pass
# Step 4: Ensure that the user reaches the dashboard by checking for visible text
expect(page.locator("text=What do you want to do today?")).to_be_visible()
# Step 5: Select 'Track and budget expenses' on the onboarding page and click Continue
page.locator("text='Track and budget expenses'").click()
page.wait_for_timeout(1000)
# Step 6: Enter first name last name, and continue
page.locator('input[name="fname"]').fill(first_name)
page.locator('input[name="lname"]').fill(last_name)
page.get_by_role("button", name="Continue").last.click()
page.wait_for_timeout(1000)
return browser, page