Phase kuma M1 impl: resolves the 2026-05-28 DEFERRED uptime-kuma create-a-monitor item. Approach: Playwright (option b) — python-socketio not in cc-ci Nix env; Playwright handles Socket.IO transparently via the real browser. Selectors confirmed in 2.2.1 compiled bundle (data-cy setup wizard + data-testid monitor form/status badge). Test flow (test_monitor_wizard_and_probe): 1. Setup wizard: admin create via data-cy form → auto-login → /dashboard 2. Create self-probe monitor (https://{live_app}/) → wait ≤90s for "Up" badge 3. Heartbeat table row check: isFirstBeat=important, row has real datetime stamp 4. Negative: dead-port monitor (http://127.0.0.1:19999/dead) → wait ≤60s for "Down" All waits are bounded poll with page.wait_for_function/wait_for_url/wait_for_selector. Admin password: 64-char UUID hex, never printed/logged. Also: DECISIONS.md records Playwright choice; phase state files bootstrapped. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
25 lines
956 B
Markdown
25 lines
956 B
Markdown
# BACKLOG — phase `kuma` (uptime-kuma create-a-monitor functional test)
|
|
|
|
## Build backlog
|
|
|
|
### DONE
|
|
- [x] Phase state files created (STATUS-kuma.md, BACKLOG-kuma.md, REVIEW-kuma.md, JOURNAL-kuma.md)
|
|
- [x] Approach decision: Playwright over python-socketio (recorded in DECISIONS.md)
|
|
- [x] Inspect uptime-kuma 2.2.1 source for exact DOM selectors
|
|
- [x] Implement `tests/uptime-kuma/playwright/test_monitor_wizard.py`
|
|
|
|
### IN PROGRESS
|
|
- [ ] Open recipe-maintainers/uptime-kuma PR and trigger `!testme`
|
|
- [ ] Confirm drone run green (M1 acceptance)
|
|
- [ ] Claim M1 gate
|
|
|
|
### PENDING (after M1 Adversary PASS)
|
|
- [ ] Second `!testme` run (flake check — 2 consecutive green)
|
|
- [ ] Update PARITY.md (note the new playwright/ test)
|
|
- [ ] Close DEFERRED.md entry "2026-05-28 — uptime-kuma create-a-monitor"
|
|
- [ ] Claim M2 gate
|
|
- [ ] Write ## DONE after M2 Adversary PASS
|
|
|
|
## Adversary findings
|
|
(Adversary-owned — no items yet; populated as issues are found)
|