Skip to content

Commit 28a1364

Browse files
committed
Update OUIA gaps
1 parent af69bb3 commit 28a1364

1 file changed

Lines changed: 48 additions & 43 deletions

File tree

OUIA-GAPS.md

Lines changed: 48 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)