[codex] Add ProtoOS hardware settings E2E tests#417
Conversation
🔐 Codex Security Review
Review SummaryOverall Risk: NONE FindingsNo security, correctness, or reliability findings in the scoped diff. NotesThe PR scope is limited to:
No auth, backend, database, protobuf, plugin, command execution, discovery, pool configuration, or infrastructure behavior is changed. I reviewed Generated by Codex Security Review | |
There was a problem hiding this comment.
Pull request overview
Adds Playwright E2E coverage for the ProtoOS Hardware settings screen by introducing section-scoped selectors and a dedicated Hardware page object API, aligning checks with user-visible UI.
Changes:
- Added
data-testidanchors for Hardware screen sections (control board, hashboards, fans, PSUs). - Introduced a
HardwarePagepage object with section-scoped locators and UI-facing assertions. - Added a new Hardware settings Playwright spec validating default simulator inventory and fan table behavior.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| client/src/protoOS/features/settings/components/Hardware/Hardware.tsx | Adds section-level data-testid attributes to support stable E2E selectors. |
| client/e2eTests/protoOS/spec/hardware.spec.ts | New E2E spec covering Hardware settings sections, default inventory, and fan table visibility. |
| client/e2eTests/protoOS/pages/hardware.ts | Expands Hardware page object with section locators and validation helpers used by specs. |
| async validateNoFansConnectedCalloutHidden() { | ||
| await expect(this.fansSection().getByText("No fans connected")).toHaveCount(0); | ||
| await expect(this.fansSection().getByText("This miner is set to immersion cooling")).toHaveCount(0); | ||
| } |
🤖 What changed
Why
Validation