in issues/199/user_tool.py [0:0]
def test(setup_playwright):
page = setup_playwright
context = page.context
# Start tracing with screenshots, snapshots and sources
context.tracing.start(screenshots=True, snapshots=True, sources=True)
try:
email_user, name_user = generate_random_email(), "User A"
email_approver, name_approver = "t56826807+13@gmail.com", "Employee"
login_user(page, email_user)
complete_onboarding(page, name_user)
# Create new workspace
page.locator('button[aria-label="Workspaces"]').click()
(
page.get_by_test_id("WorkspaceSwitcherPage")
.get_by_role("button", name="New workspace")
.click()
)
invite_workspace_member(page, email_approver, name_approver)
# Enable Workflows
page.locator('div[aria-label="More features"]').click()
page.locator(
'button[aria-label="Configure how spend is approved and paid."]'
).click()
# Enable Approvals
page.locator('div[aria-label="Workflows"]').click()
approvals_button = page.locator(
'button[aria-label="Require additional approval before authorizing a payment."]'
)
if not approvals_button.is_checked():
approvals_button.click()
# Modify Approvals
page.locator('button[aria-label="Add approvals"]').click()
page.get_by_test_id("WorkspaceWorkflowsApprovalsEditPage").get_by_text(
"Approver", exact=True
).click()
page.get_by_test_id("WorkspaceWorkflowsApprovalsApproverPage").get_by_label(
name_approver
).click()
page.get_by_role("button", name="Save").click()
page.locator('div[data-tag="pressable"]', has_text="Additional Approver").click()
# Upgrade Account
page.locator("button", has_text="Upgrade").click()
page.locator("button", has_text="Got it, thanks").click()
# Grab the approver field
approver_field = (
page.get_by_test_id("WorkspaceWorkflowsApprovalsEditPage")
.get_by_text("Approver", exact=True)
.locator("..")
.first
)
assert name_approver in approver_field.inner_text(), (
"Approver field has been reset after upgrade!"
)
finally:
trace_path = "/app/expensify/user_tool/output_browser1.zip"
context.tracing.stop(path=trace_path)
trace_cleaner(trace_path)
try:
page.context.browser.close()
except Exception:
pass