Self-healing agent (supervisor, recovery, login fixes, operator mail) and Portal sage redesign
Snapshot of D:\Ecw Process a11c9ff (2026-10-30). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
fafa5285eb
commit
d500f750da
26 files changed
+1704
-357
No files matched your search
+31
-3
@@ -283,6 +283,33 @@ def the_dashboard_lists_todays_top_fail_and_review_reasons():
|
||||
assert "No Fail or Review today" in html
|
||||
|
||||
|
||||
@case
|
||||
def the_dashboard_lists_todays_runs_newest_first():
|
||||
"""Operator, 2026-10-30 (the approved mockup): a Runs today card —
|
||||
each run's start, its mode and its claims by result, from the same
|
||||
rows the reasons card reads, so no second query."""
|
||||
today = datetime.combine(date.today(), datetime.min.time())
|
||||
first, second = today + timedelta(hours=16, minutes=39), \
|
||||
today + timedelta(hours=17, minutes=18)
|
||||
rows = ([_row("9000001", "Pass", 1, first),
|
||||
_row("9000002", "Fail", 2, first)]
|
||||
+ [_row(f"900001{i}", "Pass", i, second) for i in range(3)])
|
||||
client, repo = _client(FakeRepo(days=[_day(date.today(), 5, 2, 4, 1, 0)],
|
||||
rows=rows))
|
||||
html = client.get("/").text
|
||||
box = html.split('id="runs-today"', 1)[1].split("</section>", 1)[0]
|
||||
assert box.index("5:18 PM") < box.index("4:39 PM"), box
|
||||
assert "<b>3</b> claims" in box and "<b>2</b> claims" in box, box
|
||||
assert repo.calls == [("days",), ("day_results", date.today())], \
|
||||
repo.calls
|
||||
|
||||
|
||||
@case
|
||||
def the_dashboard_greets_the_signed_in_user():
|
||||
html = _client()[0].get("/").text
|
||||
assert re.search(r"Good (morning|afternoon|evening), ", html), html[:400]
|
||||
|
||||
|
||||
@case
|
||||
def every_page_has_the_footer_and_marks_where_you_are():
|
||||
client, _ = _client()
|
||||
@@ -440,14 +467,15 @@ def find_a_claim_with_no_number_shows_the_box_only():
|
||||
# ── every page ───────────────────────────────────────────────────────────────
|
||||
|
||||
@case
|
||||
def every_page_has_the_navy_header_breadcrumb_and_mode():
|
||||
def every_page_has_the_side_menu_breadcrumb_and_mode():
|
||||
client, _ = _client()
|
||||
for path in _PAGES:
|
||||
html = client.get(path).text
|
||||
assert '<header class="top">' in html, path
|
||||
# Sage side menu since 2026-10-30 (the approved mockup).
|
||||
assert '<aside class="side">' in html, path
|
||||
assert 'class="pill VERIFY"' in html, path
|
||||
assert '<nav class="crumbs">' in html, path
|
||||
assert "--navy: #12355b" in html, path
|
||||
assert "--navy: #2e3f36" in html, path
|
||||
html = client.get("/day/2026-10-16").text
|
||||
assert '<a href="/days">Claim status</a>' in html
|
||||
assert '<span class="here">Fri, 16 Oct 2026</span>' in html
|
||||
|
||||
Reference in new issue
Block a user