Snapshot of the working project as of 2026-10-23 (local 2d4d4fc), one commit with no earlier history: the tracked files were de-identified first (synthetic claim ids and patient data only; see Context.md section 7). Credentials, run logs, screenshots, claim reports and client workbooks are gitignored and not included. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
36 lines
1.5 KiB
Python
36 lines
1.5 KiB
Python
"""
|
|
The eCW application shell: left navigation panel and the route spinner.
|
|
|
|
Three facts from the live DOM shape every locator built on these, and all three
|
|
cost a debugging session to find:
|
|
|
|
* `#JellyBeanCountCntrl` renders **twice**, so `SEL_NAV_TOGGLE` matches two
|
|
elements and Playwright's strict mode errors out without `.first`.
|
|
* the toggle's handler `launchLeftPanel()` is a **toggle**, not an "open" —
|
|
clicking it on an already-open panel closes it. State first, click second.
|
|
* the panel's contents are injected by `getleftnavhtml()` on
|
|
`DOMContentLoaded`, so `SEL_MENU_BILLING` does not exist at the moment
|
|
login is confirmed. Wait for it; do not assume it.
|
|
"""
|
|
|
|
SEL_NAV_TOGGLE = "#jellybean-panelLink4"
|
|
|
|
# launchLeftPanel() flips the `visible` class on .response-nav-lp (#leftnavApp).
|
|
SEL_NAV_PANEL = "#leftnavApp"
|
|
SEL_NAV_OPEN = "#leftnavApp.visible"
|
|
|
|
SEL_MENU_BILLING = "#Billing_menu > a"
|
|
SEL_MENU_BILLING_OPEN = "li#Billing_menu.open"
|
|
|
|
# Click the LABEL span, not the anchor: the anchor also holds #favorite_16,
|
|
# whose own ng-click stars the menu item instead of navigating.
|
|
SEL_CLAIMS = "#CLAIMS_BILLING"
|
|
SEL_CLAIMS_LABEL = "#CLAIMS_BILLING span.padl10"
|
|
|
|
# What that item's ng-click openURL() actually does. Kept here because it is
|
|
# also the fallback route when the menu markup shifts.
|
|
CLAIMS_HASH = "#/mobiledoc/jsp/webemr/webpm/claimLookup.jsp"
|
|
|
|
# Angular's route spinner — hidden once the requested view has rendered.
|
|
SEL_ROUTE_LOADER = "#routeLoader"
|