def test_search_selection_persists()

in issues/213/user_tool.py [0:0]


def test_search_selection_persists():
    with sync_playwright() as p:
        user_first_name = "Khan"
        user_last_name = "G"
        

        browser = p.chromium.launch(
            channel="chrome",
            headless=True,
            args=[
                "--ignore-certificate-errors",
                "--disable-web-security",
                "--disable-features=IsolateOrigins,site-per-process"
            ],
            proxy={"server": "http://localhost:8080"},
            slow_mo=500
        )


        context = browser.new_context()
        context.tracing.start(screenshots=True, snapshots=True)
        page = context.new_page()

        try:

            user_info = get_test_user_info(seed=331133, first_name=user_first_name, last_name=user_last_name)
            login_user(page, user_info, "https://dev.new.expensify.com:8082/")
            page.wait_for_timeout(6000)


            page.get_by_label("My settings").click()
            page.get_by_test_id("InitialSettingsPage").get_by_label("Workspaces").click()
            page.get_by_label("New workspace").first.click()
            page.locator('button[aria-label="Back"]').click()
            inbox_menu = page.locator('button[aria-label="Inbox"]')
            inbox_menu.click()
            page.wait_for_timeout(2000)


            workspace_number = get_workspace_number(page)
            submit_expense_in_workspace_chat(browser, page, user_info, workspace_number)


            search_expense = page.locator('button[aria-label="Search"]')
            expect(search_expense).to_be_visible()
            search_expense.click()
            page.wait_for_timeout(6000)
            checkbox = page.locator('div[role="checkbox"][data-tag="pressable"]')
            if checkbox.count() > 1:
                expect(checkbox.last).to_be_visible()
                checkbox.last.click()
            else:
                checkbox.click()

            page.wait_for_timeout(6000)
            inbox = page.locator('button[aria-label="Inbox"]')
            expect(inbox).to_be_visible()
            inbox.click()


            page.get_by_label("Expense Report #").nth(1).click()
            page.get_by_label("Delete expense").click()
            page.wait_for_timeout(1000)
            page.locator('button:has-text("Delete")').click()


            search_expense_ = page.locator('button[aria-label="Search"]')
            expect(search_expense_).to_be_visible()
            search_expense_.click()

            is_selected = page.get_by_text('1 selected')
            if is_selected.is_visible():
                assert False, 'Search selection is not resetted after deleting an expense.'
            else:
                assert True, 'Search selection is resetted after deleting an expense.'

            page.wait_for_timeout(2000)
        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")
            browser.close()