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>
956 B
956 B
BACKLOG — phase kuma (uptime-kuma create-a-monitor functional test)
Build backlog
DONE
- Phase state files created (STATUS-kuma.md, BACKLOG-kuma.md, REVIEW-kuma.md, JOURNAL-kuma.md)
- Approach decision: Playwright over python-socketio (recorded in DECISIONS.md)
- Inspect uptime-kuma 2.2.1 source for exact DOM selectors
- 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
!testmerun (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)