Add pytest suite with fixtures that mock releases API/manifest/bundle to cover:
check_for_update (stable/dev, manifest missing, dev disabled).
apply_update_version success/fail, hash mismatch, tar traversal blocked, stale lock recovery.
runner enqueue + state transitions (once runner refactor lands).
Add a minimal Playwright smoke that opens the Updates modal, runs a mocked check, toggles dev builds, exercises manual selection, and verifies log copy/download works.
Integrate into CI to catch regressions.
Acceptance
Tests run via pytest and pass in CI.
Playwright smoke runs headless and fails build on UI regression.
Coverage includes stale-lock recovery and manual picker flows.
Proposal
- Add pytest suite with fixtures that mock releases API/manifest/bundle to cover:
* check_for_update (stable/dev, manifest missing, dev disabled).
* apply_update_version success/fail, hash mismatch, tar traversal blocked, stale lock recovery.
* runner enqueue + state transitions (once runner refactor lands).
- Add a minimal Playwright smoke that opens the Updates modal, runs a mocked check, toggles dev builds, exercises manual selection, and verifies log copy/download works.
- Integrate into CI to catch regressions.
Acceptance
- Tests run via `pytest` and pass in CI.
- Playwright smoke runs headless and fails build on UI regression.
- Coverage includes stale-lock recovery and manual picker flows.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Proposal
Acceptance
pytestand pass in CI.