@@ -8,41 +8,47 @@ Selectors in dave that still use `getByRole` or CSS because halOP doesn't assign
88
99** Status:** Resolved. OUIA selectors are working and used in ` navigation.page.ts ` and ` dashboard.page.ts ` .
1010
11- ## pageMain Does Not Set OUIA ID
11+ ## Resolved: pageMain Does Not Set OUIA ID
1212
13- ` pageMain(Ids.MAIN_ID) ` in ` Skeleton.java:111 ` sets the HTML ` id ` attribute (` id="hal-main-id" ` ), ** not** ` data-ouia-component-id ` . The ` <main> ` element does not participate in OUIA.
13+ ~~ ` pageMain(Ids.MAIN_ID) ` in ` Skeleton.java:111 ` sets the HTML ` id ` attribute (` id="hal-main-id" ` ), ** not** ` data-ouia-component-id ` . The ` <main> ` element does not participate in OUIA.~~
1414
15- ** Workaround :** Use ` main ` element selector instead of OUIA selector .
15+ ** Status :** Skipped. The test suite uses the ` id ` attribute on the ` <main> ` element, which is acceptable .
1616
17- ** Fix:** Add ` .ouiaId(Ids.MAIN_ID) ` to the ` pageMain ` call in ` Skeleton.java ` , or chain it on the ` PageMain ` instance if ` PageSubComponent ` supports ` OuiaSupport ` .
18-
19- ## Model Browser
20-
21- The following elements use ` getByRole ` or CSS selectors and would benefit from dedicated OUIA IDs:
17+ ## Resolved: Model Browser
2218
2319### Tree
2420
25- | Selector | Page Object | Suggested OUIA ID |
26- | --------------------------------- | ----------------------- | -------------------------------------------------------------- |
27- | ` getByRole("tree") ` | ` model-browser.page.ts ` | ` hal-op-model-browser-tree ` |
28- | ` getByRole("treeitem", { name }) ` | ` model-browser.page.ts ` | ` hal-op-model-browser-tree-item-<name> ` (dynamic via ` ouia() ` ) |
21+ | Selector | OUIA ID | Status |
22+ | --------------------------------- | ----------------------------- | -------- |
23+ | ` getByRole("tree") ` | ` hal-op-model-browser-tree ` | Resolved |
24+ | ` getByRole("treeitem", { name }) ` | dynamic via tree view item ID | Skipped |
25+
26+ Tree items get their IDs from ` ModelBrowserNode ` identifiers — no additional OUIA ID needed.
2927
3028### Tabs
3129
32- | Selector | Page Object | Suggested OUIA ID |
33- | -------------------------------------------- | ----------------------- | ------------------------------- -------- |
34- | ` getByRole("tab", { name: "Data" }) ` | ` model-browser.page.ts ` | ` hal-op-model-browser-tab-data ` |
35- | ` getByRole("tab", { name: "Attributes " }) ` | ` model-browser.page.ts ` | ` hal-op-model-browser-tab-attributes ` |
36- | ` getByRole("tab", { name: "Operations " }) ` | ` model-browser.page.ts ` | ` hal-op-model-browser-tab-operations ` |
37- | ` getByRole("tab", { name: "Capabilities " }) ` | ` model-browser.page.ts ` | ` hal-op-model-browser-tab-capabilities ` |
38- | ` getByRole("tabpanel ", { name }) ` | ` model-browser.page.ts ` | ` hal-op-model-browser-tabpanel-<name> ` |
30+ | Selector | OUIA ID | Status |
31+ | -------------------------------------------- | --------------------------------------- | -------- |
32+ | tabs container | ` hal-op-model-browser-tabs ` | Resolved |
33+ | ` getByRole("tab", { name: "Data " }) ` | ` hal-op-model-browser-tab-data ` | Resolved |
34+ | ` getByRole("tab", { name: "Attributes " }) ` | ` hal-op-model-browser-tab-attributes ` | Resolved |
35+ | ` getByRole("tab", { name: "Operations " }) ` | ` hal-op-model-browser-tab-operations ` | Resolved |
36+ | ` getByRole("tab ", { name: "Capabilities" }) ` | ` hal-op-model-browser-tab-capabilities ` | Resolved |
3937
4038### Controls
4139
42- | Selector | Page Object | Suggested OUIA ID |
43- | --------------------------------------------------------- | ----------------------- | ---------------------------------------- |
44- | ` getByRole("switch", { name: "Show global operations" }) ` | ` model-browser.page.ts ` | ` hal-op-model-browser-global-ops-switch ` |
45- | ` getByRole("textbox", { name: "Filter by name" }) ` | ` model-browser.page.ts ` | ` hal-op-model-browser-filter ` |
40+ | Selector | OUIA ID | Status |
41+ | --------------------------------------------------------- | ------------------------------------------------ | -------- |
42+ | ` getByRole("switch", { name: "Show global operations" }) ` | ` hal-op-model-browser-global-ops-switch ` | Resolved |
43+ | operations filter textbox | ` hal-op-model-browser-operations-filter ` | Resolved |
44+ | attributes filter textbox | ` hal-op-model-browser-attributes-filter ` | Resolved |
45+
46+ ### Resource Detail
47+
48+ | Selector | OUIA ID | Status |
49+ | ------------------- | --------------------------------------- | -------- |
50+ | resource heading | ` hal-op-model-browser-resource-heading ` | Resolved |
51+ | breadcrumb nav | ` hal-op-model-browser-breadcrumb ` | Resolved |
4652
4753### Table Headers
4854
@@ -51,26 +57,23 @@ The following elements use `getByRole` or CSS selectors and would benefit from d
5157| ` getByRole("columnheader", { name: "Name" }) ` | used in ` model-browser.spec.ts ` | ` hal-op-model-browser-col-name ` |
5258| ` getByRole("columnheader", { name: "Type" }) ` | used in ` model-browser.spec.ts ` | ` hal-op-model-browser-col-type ` |
5359
54- ## Resource Detail
60+ ** Status: ** Open. Column headers in PatternFly Java tables don't support individual OUIA IDs. Use ` getByRole ` selectors.
5561
56- | Selector | Page Object | Suggested OUIA ID |
57- | ----------------------------------------------------------------------- | ----------------------- | --------------------------------------- |
58- | ` #${MAIN_ID} ` + ` getByRole("heading", { level: 1 }) ` (resource heading) | ` model-browser.page.ts ` | ` hal-op-model-browser-resource-heading ` |
59- | breadcrumb nav (` #${MAIN_ID} nav ` ) | ` model-browser.page.ts ` | ` hal-op-model-browser-breadcrumb ` |
62+ ## Resolved: Dashboard
6063
61- ## Dashboard
64+ Dashboard cards now have OUIA IDs:
6265
63- Section headings and card areas use ` getByRole ` because the dashboard cards don't have OUIA IDs.
66+ | Card | OUIA ID | Status |
67+ | ----------------- | ------------------------------------ | -------- |
68+ | Overview | ` hal-op-dashboard-overview-card ` | Resolved |
69+ | Deployment | ` hal-op-dashboard-deployment-card ` | Resolved |
70+ | Documentation | ` hal-op-dashboard-documentation-card ` | Resolved |
71+ | Health | ` hal-op-dashboard-health-card ` | Resolved |
72+ | Log | ` hal-op-dashboard-log-card ` | Resolved |
73+ | Status | ` hal-op-dashboard-status-card ` | Resolved |
74+ | Runtime (Host/JVM/Memory) | N/A — uses ` Flex ` layout, not a ` Card ` | Skipped |
6475
65- | Selector | Page Object | Suggested OUIA ID |
66- | --------------------------------------------------------------- | ------------------- | ------------------------------------ |
67- | ` getByRole("heading", { name: "Overview", level: 2 }) ` | ` dashboard.page.ts ` | ` hal-op-dashboard-overview ` |
68- | ` getByRole("heading", { name: "Host", level: 2 }) ` | ` dashboard.page.ts ` | ` hal-op-dashboard-host ` |
69- | ` getByRole("heading", { name: "JVM", level: 2 }) ` | ` dashboard.page.ts ` | ` hal-op-dashboard-jvm ` |
70- | ` getByRole("heading", { name: "Memory & Threads", level: 2 }) ` | ` dashboard.page.ts ` | ` hal-op-dashboard-memory ` |
71- | ` getByRole("heading", { name: "server.log", level: 2 }) ` | ` dashboard.page.ts ` | ` hal-op-dashboard-log ` |
72- | ` getByRole("heading", { name: "General Resources", level: 2 }) ` | ` dashboard.page.ts ` | ` hal-op-dashboard-general-resources ` |
73- | ` getByRole("heading", { name: "Get Help", level: 2 }) ` | ` dashboard.page.ts ` | ` hal-op-dashboard-get-help ` |
76+ Runtime card uses a ` Flex ` gallery layout which doesn't support ` ouiaId() ` . Its sub-cards (Host, JVM, Memory & Threads) are internal helper methods, not standalone components. Use ` getByRole("heading") ` selectors for these sections.
7477
7578## Configuration
7679
@@ -80,8 +83,10 @@ Section headings and card areas use `getByRole` because the dashboard cards don'
8083| ` getByRole("tree") ` | ` configuration.page.ts ` | ` hal-op-configuration-tree ` |
8184| ` getByRole("treeitem", { name, exact: true }) ` | ` configuration.page.ts ` | ` hal-op-configuration-tree-item-<name> ` (dynamic via ` ouia() ` ) |
8285
83- ## Tasks
86+ ** Status:** Open. These are in the configuration module, not the model browser.
87+
88+ ## Resolved: Tasks
8489
85- | Selector | Page Object | Suggested OUIA ID |
86- | ------------------------------------------ | --------------- | ---------------------------------------- -------- |
87- | ` getByRole("heading", { name, level: 2 }) ` | ` tasks.page.ts ` | ` hal-op-task-card-<name> ` (dynamic via ` ouia() ` ) |
90+ | Selector | OUIA ID | Status |
91+ | ------------------------------------------ | ---------------------------------------- | -------- |
92+ | task cards | ` hal-op-< task-id>-card ` (dynamic) | Resolved |
0 commit comments