issues/320/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 logging
from playwright.sync_api import sync_playwright, expect
from playwright._impl._page import Page
from utils.trace_cleaner import trace_cleaner
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
EMAIL = "Adebayovicktor0+test42262@gmail.com"
PASSWORD = ""
NEW_DOT_URL = "https://dev.new.expensify.com:8082"
OLD_DOT_URL = "http://localhost:9000/"
ONE_SECOND = 1000
TWO_SECONDS = 2000
THREE_SECONDS = 3000
FIVE_SECONDS = 5000
def sign_in_new_dot(page: Page, email: str, url: str=None):
"""
Sign in into the new Expensify dot.
"""
url = url if url else NEW_DOT_URL
page.goto(url)
page.get_by_test_id("username").fill(email)
page.wait_for_timeout(TWO_SECONDS)
page.get_by_role("button", name="Continue").click()
page.wait_for_timeout(FIVE_SECONDS)
otp = '123456'
page.get_by_test_id("validateCode").fill(otp)
page.wait_for_timeout(TWO_SECONDS)
page.get_by_text("Please enter the magic code").wait_for(state="hidden")
page.wait_for_timeout(THREE_SECONDS)
logging.info("Sign in complete.")
def test_popup():
with sync_playwright() as playwright:
browser = playwright.chromium.launch(headless=True,
proxy = {"server": "http://127.0.0.1:8080/"},
args=[
"--ignore-certificate-errors",
"--disable-web-security",
"--disable-features=IsolateOrigins,site-per-process"
]
)
context = browser.new_context()
context.tracing.start(screenshots=True, snapshots=True, sources=True)
page = context.new_page()
try:
sign_in_new_dot(page, EMAIL)
textbox = page.get_by_test_id("report-actions-view-wrapper").get_by_role("textbox")
textbox.clear()
textbox.fill("@")
expect(page.get_by_label("Notify everyone in this")).to_be_visible(timeout=100)
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")
page.close()
browser.close()