issues/229/user_tool.py (57 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)
from utils.trace_cleaner import trace_cleaner
"""
Test whether the following console warning disappears on self-dm page: Function components cannot be given refs.
"""
import os
import pytest
from utils.login import sign_up, complete_onboarding
from utils.browser import start_browser, close_browser
from playwright.async_api import expect
EXPENSIFY_USERNAME_FIRSTNAME = "osaidtest"
EXPENSIFY_USERNAME_LASTNAME = "testaccount"
EXPENSIFY_USERNAME = f"{EXPENSIFY_USERNAME_FIRSTNAME} {EXPENSIFY_USERNAME_LASTNAME}"
EXPENSIFY_EMAIL_USERNAME = "osaidtest5"
EXPENSIFY_EMAIL = "osaidtest5@gmail.com"
NEW_DOT_URL = "https://dev.new.expensify.com:8082"
OLD_DOT_URL = "http://localhost:9000/"
EXPENSIFY_PASSWORD = ""
DATA_DIR = 'browser_context'
EXPENSIFY_DERIVED_EMAIL = "osaidtest5+49062_7@gmail.com"
async def get_user_email(page):
"""
Get User Email.
"""
return await page.evaluate(
"""async () => {
const credentials = await Onyx.get('credentials');
const {login} = credentials;
return login
}"""
)
console_warning_detected = False
def track_console_warning(msg):
if msg.type == 'error' and "Warning: Function components cannot be given refs. Attempts to access this ref will fail." in msg.text:
global console_warning_detected
console_warning_detected = True
async def open_self_dm_page(page, email):
await page.get_by_label("Start chat (Floating action)").click()
await page.get_by_text("Start chat").click()
await page.get_by_test_id("selection-list-text-input").fill(email)
try:
await page.get_by_label(f"{EXPENSIFY_USERNAME} (you)").filter(has_text=email).click()
except:
await page.get_by_label(EXPENSIFY_DERIVED_EMAIL).click()
@pytest.mark.asyncio
async def test_console_warning_for_function_components_cannot_be_given_refs_should_not_appear_in_self_dm():
derived_email = EXPENSIFY_DERIVED_EMAIL
context, page, playwright = await start_browser(
persistent=False,
data_dir=DATA_DIR,
launch_args=["--ignore-certificate-errors", "--disable-web-security", "--disable-features=IsolateOrigins,site-per-process"]
)
await context.tracing.start(screenshots=True, snapshots=True, sources=True)
try:
page.on("console", track_console_warning)
await sign_up(page, derived_email)
try:
await complete_onboarding(page, first_name=EXPENSIFY_USERNAME_FIRSTNAME, last_name=EXPENSIFY_USERNAME_LASTNAME)
except:
pass
await open_self_dm_page(page, derived_email)
assert not console_warning_detected, "Console Warning 'Function components cannot be given refs' appears in self-dm."
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)