Files
intotheeast-com/services/travel-memories/tests/test_phase2.py
T
m038 a6a2b31c43 feat: Phase 2 triage with keyboard shortcuts J/S/X
Implement /triage GET/POST routes in triage.py blueprint; render
phase2.html with day-grouped photo grid, Alpine.js keyboard tagging
(J=journal, S=story, X/Space=skip), and done-button gated on all-tagged.
Remove stub from albums.py; register triage.bp in __init__.py.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 16:26:53 +02:00

41 lines
1.4 KiB
Python

import json
def test_photos_render_in_day_groups(base_url, page, seed_state):
album_id = seed_state("phase2_state")
page.goto(f"{base_url}/triage?album_id={album_id}")
assert page.locator(".day-group").count() >= 1
assert page.locator(".photo-card").count() == 3
def test_keyboard_j_tags_journal(base_url, page, seed_state):
album_id = seed_state("phase2_state")
page.goto(f"{base_url}/triage?album_id={album_id}")
page.locator(".photo-card").first.click()
page.keyboard.press("j")
page.wait_for_timeout(300)
card = page.locator(".photo-card").first
assert "border-success" in card.get_attribute("class")
def test_keyboard_s_tags_story(base_url, page, seed_state):
album_id = seed_state("phase2_state")
page.goto(f"{base_url}/triage?album_id={album_id}")
page.locator(".photo-card").first.click()
page.keyboard.press("s")
page.wait_for_timeout(300)
assert "border-info" in page.locator(".photo-card").first.get_attribute("class")
def test_done_button_disabled_until_all_tagged(base_url, page, seed_state):
album_id = seed_state("phase2_state")
page.goto(f"{base_url}/triage?album_id={album_id}")
assert page.locator("#done-btn").is_disabled()
def test_done_advances_to_curate(base_url, page, seed_state):
album_id = seed_state("phase3_state") # all tagged
page.goto(f"{base_url}/triage?album_id={album_id}")
page.locator("#done-btn").click()
page.wait_for_url("**/curate**")