v0.2 walk-through UI: guided flow, data view, overview, modes, overrides, typed phrase; retry confirmation; visual pass
Some checks failed
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 2s
Work Records / validate (push) Has been cancelled

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: sonnet
Assistant-Process: 295952@bnt-lap001
Assistant-Session: e93f64ad-516c-46eb-9666-aad8d300c477
This commit is contained in:
tegwick 2026-09-29 14:42:09 +02:00
parent f8ce4717a8
commit f070999aa2
12 changed files with 1285 additions and 53 deletions

View file

@ -87,7 +87,7 @@ def test_create_project_from_template_and_view_it(psrv):
assert ">planned<" in body and ">rehearsal<" in body
assert "target:north-light" in body # provenance of the fog weather
assert "Still needed" in body and "name='a_host'" in body # hello needs a host
assert "cannot be run in this UI yet" in body # the v0.2 member
assert "waiting for rtut.example-hello" in body # the v0.2 member waits for its predecessor
def test_needed_attributes_can_be_filled_in_and_are_validated(psrv):
@ -114,8 +114,8 @@ def test_start_a_run_from_a_project_uses_its_attributes_and_links_back(psrv):
_, _, body = req(psrv, "GET", "/project/harbour")
assert ">applying<" in body and "latest run" in body
st, loc2, _ = req(psrv, "POST", "/project/harbour/run", {"_t": t, "pack": "rtut.showcase-lighthouse-v2", "operator": "bernd"})
assert st == 303 # the engine accepts it; the UI just cannot walk v0.2 runs yet
assert "cannot walk v0.2 runs yet" in req(psrv, "GET", loc2.split("#")[0])[2]
assert st == 303 # a v0.2 member can be started too, in either mode
assert "Guided flow" in req(psrv, "GET", loc2.split("#")[0])[2]
def test_attribute_table_shows_state_source_modified_and_problems(psrv):
@ -172,27 +172,10 @@ def test_bad_project_id_and_duplicate_are_refused(psrv):
assert st == 400 and "environment" in body
def test_v02_run_shows_a_guard_instead_of_crashing(psrv):
def test_v02_run_is_walkable_in_the_ui(psrv):
reg = psrv.app.registry()
pack = reg.packs["rtut.showcase-lighthouse-v2"]
r = run2.create(pack, "bernd", {"logdir": "/tmp/rtut-ui-v2"})
i = psrv.app.pack_index("rtut.showcase-lighthouse-v2")
st, _, body = req(psrv, "GET", f"/run/{i}/{r.data['run_id']}")
assert st == 200 and "cannot walk v0.2 runs yet" in body
def test_front_page_lists_projects_by_their_own_name_and_shows_the_template_as_origin(psrv):
make_project(psrv)
_, _, body = req(psrv, "GET", "/")
projects = body.split("<h2>Project templates</h2>")[0]
assert "Harbour watch" in projects and "Our own harbour, two lights." in projects
assert "from template <a href='/template/lighthouse-watch'>lighthouse-watch</a>" in projects
assert "The night watch is played through" not in projects and "A watch at a lighthouse" not in projects
assert "A watch at a lighthouse" in body.split("<h2>Project templates</h2>")[1] # the template keeps its own listing
def test_creating_a_project_needs_a_name(psrv):
t = psrv.app.token
st, _, body = req(psrv, "POST", "/template/lighthouse-watch/new", {"_t": t, "project_id": "nameless", "environment": "rehearsal", "title": "x"})
assert st == 400 and "name" in body
assert not (psrv.repo / "projects/nameless").exists()
assert st == 200 and "Guided flow" in body and "Keep in mind" in body