Skip to content

[codex] Add ProtoOS hardware settings E2E tests#417

Open
edgars-avotins wants to merge 2 commits into
mainfrom
codex/protoos-hardware-settings-e2e
Open

[codex] Add ProtoOS hardware settings E2E tests#417
edgars-avotins wants to merge 2 commits into
mainfrom
codex/protoos-hardware-settings-e2e

Conversation

@edgars-avotins

Copy link
Copy Markdown
Contributor

🤖 What changed

  • added a ProtoOS hardware settings spec
  • expanded the hardware page object with direct UI assertions for the Hardware screen
  • added section-level test ids to the Hardware page to scope those assertions cleanly

Why

  • cover the Hardware settings screen with e2e checks
  • keep the scenarios aligned with human verification instead of mirroring product internals
  • verify the default fake-rig inventory and fan-table behavior in the current local environment

Validation

  • eslint src/protoOS/features/settings/components/Hardware/Hardware.tsx e2eTests/protoOS/pages/hardware.ts e2eTests/protoOS/spec/hardware.spec.ts
  • playwright test e2eTests/protoOS/spec/hardware.spec.ts --project=desktop --config=e2eTests/protoOS/playwright.config.ts

@github-actions github-actions Bot added javascript Pull requests that update javascript code client labels Jun 10, 2026
@github-actions

github-actions Bot commented Jun 10, 2026

Copy link
Copy Markdown

🔐 Codex Security Review

Note: This is an automated security-focused code review generated by Codex.
It should be used as a supplementary check alongside human review.
False positives are possible - use your judgment.

Scope summary

  • Reviewed pull request diff only (debca7231013099f2925554efbad3661d6dadda5...d5b0fc157c0684530b1d2ff2a92fdea88d1ee781, exact PR three-dot diff)
  • Model: gpt-5.5

💡 Click "edited" above to see previous reviews for this PR.


Review Summary

Overall Risk: NONE

Findings

No security, correctness, or reliability findings in the scoped diff.

Notes

The PR scope is limited to:

  • Adding ProtoOS Hardware page Playwright coverage.
  • Adding data-testid attributes to existing Hardware UI sections.

No auth, backend, database, protobuf, plugin, command execution, discovery, pool configuration, or infrastructure behavior is changed. I reviewed .git/codex-review.diff as the authoritative scope and did not identify any high-impact issue to flag.


Generated by Codex Security Review |
Triggered by: @edgars-avotins |
Review workflow run

@edgars-avotins edgars-avotins marked this pull request as ready for review June 10, 2026 07:58
@edgars-avotins edgars-avotins requested a review from a team as a code owner June 10, 2026 07:58
Copilot AI review requested due to automatic review settings June 10, 2026 07:58

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-testid anchors for Hardware screen sections (control board, hashboards, fans, PSUs).
  • Introduced a HardwarePage page 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.

Comment on lines +49 to +52
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);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

client javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants