Skip to content

test: Playwright E2E suite + etch port rendering#39

Closed
avrabe wants to merge 2 commits intomainfrom
feat/etch-rendering-v2
Closed

test: Playwright E2E suite + etch port rendering#39
avrabe wants to merge 2 commits intomainfrom
feat/etch-rendering-v2

Conversation

@avrabe
Copy link
Copy Markdown
Contributor

@avrabe avrabe commented Mar 18, 2026

Summary

  • 53 Playwright E2E tests across 8 spec files covering all dashboard routes, filtering, sorting, pagination, print mode, URL state persistence, graph rendering, and STPA view
  • Etch port-aware rendering — port positioning, orthogonal edge routing, interactive HTML wrapper
  • CI integration — Playwright job with Chromium in ci.yml

Test plan

  • 53/53 Playwright tests pass
  • All Rust tests pass
  • CI workflow updated

🤖 Generated with Claude Code

Test and others added 2 commits March 17, 2026 21:01
8 spec files covering:
- routes.spec.ts: smoke test 21 dashboard routes (HTTP 200, valid HTML)
- navigation.spec.ts: direct URL, back/forward, reload button
- artifacts.spec.ts: filter/sort/pagination via URL params
- stpa.spec.ts: hierarchy, H-13 presence, filter bar, fold/unfold
- graph.spec.ts: SVG rendering, focus, node budget
- print-mode.spec.ts: ?print=1 strips nav/HTMX
- url-state.spec.ts: filter/sort/page state survives reload
- validation.spec.ts: severity filter, text search

CI integration: Playwright job in ci.yml with Chromium, artifact upload.

Verifies: FEAT-052
Refs: REQ-007, SC-15

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Major etch rendering upgrade with three capabilities:

Port-aware layout (RENDER-REQ-002):
- PortInfo, PortSide, PortDirection, PortType data model
- position_ports() with side-aware placement and auto-resolution
- Node height grows for port count, edge-to-port snapping
- SVG rendering: circles, direction triangles, type colors

Orthogonal edge routing (RENDER-REQ-001):
- ortho.rs: visibility-graph A* router with obstacle avoidance
- EdgeRouting::Orthogonal (default) vs CubicBezier (legacy)
- SVG polyline L commands for axis-aligned segments

Interactive HTML wrapper (RENDER-REQ-003, 005, 006):
- html.rs + embedded JS: pan, zoom, selection, group highlight
- Semantic zoom CSS classes, URL ?highlight= deep linking
- Zero external dependencies

Backward compatible: ports/source_port/target_port default to empty/None.

Trace: skip

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'Rivet Criterion Benchmarks'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.

Benchmark suite Current: 970c7ed Previous: 73f4055 Ratio
validate/100 44199 ns/iter (± 348) 35796 ns/iter (± 188) 1.23
validate/10000 7205631 ns/iter (± 763990) 5446388 ns/iter (± 407815) 1.32

This comment was automatically generated by workflow using github-action-benchmark.

@avrabe
Copy link
Copy Markdown
Contributor Author

avrabe commented Mar 18, 2026

Playwright tests and etch rendering already merged to main. Dashboard work in #40.

@avrabe avrabe closed this Mar 18, 2026
@avrabe avrabe deleted the feat/etch-rendering-v2 branch March 19, 2026 07:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant