import json def test_photos_shown_as_stream(base_url, page, seed_state): album_id = seed_state("phase4_state") page.goto(f"{base_url}/group?album_id={album_id}") assert page.locator(".stream-photo").count() == 2 def test_insert_divider_creates_group_boundary(base_url, page, seed_state, flask_app): album_id = seed_state("phase4_state") page.goto(f"{base_url}/group?album_id={album_id}") page.locator(".divider-zone").first.hover() page.locator(".insert-divider-btn").first.click() page.wait_for_timeout(300) assert page.locator(".group-block").count() == 2 def test_remove_divider_merges_groups(base_url, page, seed_state): album_id = seed_state("phase4_state") page.goto(f"{base_url}/group?album_id={album_id}") page.locator(".divider-zone").first.hover() page.locator(".insert-divider-btn").first.click() page.wait_for_timeout(200) page.locator(".remove-divider-btn").first.click() page.wait_for_timeout(200) assert page.locator(".group-block").count() == 1 def test_label_edit_persists(base_url, page, seed_state, flask_app): album_id = seed_state("phase4_state") page.goto(f"{base_url}/group?album_id={album_id}") page.locator(".divider-zone").first.hover() page.locator(".insert-divider-btn").first.click() page.wait_for_timeout(200) page.locator(".group-label").first.fill("Morning walk") page.locator(".group-label").first.press("Enter") page.wait_for_timeout(300) page.reload() assert "Morning walk" in page.locator(".group-label").first.input_value() def test_done_advances_to_write(base_url, page, seed_state): album_id = seed_state("phase4_state") page.goto(f"{base_url}/group?album_id={album_id}") page.locator("#done-btn").click() page.wait_for_url("**/write**")