issues/30045_642/user_tool.py (101 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 time
from playwright.sync_api import sync_playwright, expect
from playwright._impl._page import Page
from utils.trace_cleaner import trace_cleaner
NEWDOT_URL = "https://127.0.0.1:8082/"
OLDDOT_URL = "http://localhost:9000/"
EMAIL = "t1533148@gmail.com" # for example test+1234@gmail.com
PASSWORD = "" # it will be something like "sdib pxop ovyl uawy"
def verify_delete_confirmation_modal_back_out(page: Page):
page.get_by_label("Start chat (Floating action)").click()
page.get_by_label("Track expense").click()
try:
page.get_by_label("Don't show me this again").click()
page.get_by_role("button", name="Got it").click()
except:
pass
page.get_by_label("Distance").click()
page.wait_for_timeout(2000)
page.get_by_test_id("IOURequestStartPage").get_by_role("button", name="Start").click()
page.wait_for_timeout(2000)
page.get_by_test_id("IOURequestStepWaypoint").get_by_role("textbox").fill("Golden Gate Bridge Vista Point")
page.wait_for_timeout(2000)
page.get_by_text("Golden Gate Bridge Vista Point", exact=True).first.click()
page.wait_for_timeout(2000)
page.get_by_role("button", name="Stop").click()
page.wait_for_timeout(2000)
page.get_by_test_id("IOURequestStepWaypoint").get_by_role("textbox").fill("Telegraph Hill")
page.wait_for_timeout(2000)
page.get_by_text("Telegraph Hill", exact=True).first.click()
page.wait_for_timeout(2000)
page.locator('button[style="cursor: pointer;"]').wait_for()
page.wait_for_timeout(2000)
for _ in range(3):
try:
page.get_by_role("button", name="Next").nth(1).click()
page.wait_for_timeout(2000)
page.get_by_role("button", name="Track expense").wait_for(timeout=1000)
page.wait_for_timeout(2000)
break
except:
pass
page.get_by_role("button", name="Track expense").click()
page.wait_for_timeout(2000)
try:
page.get_by_label("Cash").locator("img").wait_for(timeout=120000)
except:
assert False, "Receipt was not able to load due to network issues"
page.get_by_label("Cash").locator("img").click()
page.get_by_label("View attachment").click()
page.get_by_label("More").click()
page.get_by_label("Download").wait_for()
if page.get_by_label("Delete receipt").is_visible():
page.get_by_label("Delete receipt").click()
page.get_by_role("button", name="Delete").wait_for()
page.locator("body").press("Escape")
expect(page.get_by_role("dialog").get_by_text("Receipt", exact=True)).to_have_count(1)
expect(page.get_by_role("button", name="Delete")).to_have_count(0)
def test_delete_confirmation_modal_back_out_in_receipt_page():
"""
Test to verify that the Delete confirmation modal in Receipt page backs out correctly
"""
with sync_playwright() as p:
browser = p.chromium.launch(
channel='chrome',
headless=True,
slow_mo=500,
proxy={"server": "http://127.0.0.1:8080/"},
args=[
"--ignore-certificate-errors",
"--disable-web-security",
"--disable-features=IsolateOrigins,site-per-process"
]
)
context_args = {}
context_args["geolocation"] = {"latitude": 37.7749, "longitude": 122.4194}
context_args["permissions"] = ["geolocation"]
context_args["ignore_https_errors"] = True
context = browser.new_context(**context_args)
context.tracing.start(
title="test_delete_confirmation_modal_back_out_in_receipt_page",
screenshots=True,
snapshots=True,
sources=True
)
page = context.new_page()
page.wait_for_timeout(1000)
try:
page.goto('https://127.0.0.1:8082/')
page.locator('input[type="email"]').fill(EMAIL)
page.locator('button[tabindex="0"]').click()
page.wait_for_timeout(5000)
otp = '123456'
page.get_by_test_id("validateCode").fill(otp)
verify_delete_confirmation_modal_back_out(page)
except Exception as e:
raise e
finally:
context.tracing.stop(path="/app/expensify/user_tool/output_browser1.zip")
trace_cleaner("/app/expensify/user_tool/output_browser1.zip")
context.close()
browser.close()