def test()

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