Document rstest-bdd Wireframe server harness design - #401
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
No application code in the PR — skipped Code Health checks.
See analysis details in CodeScene
Quality Gate Profile: Pay Down Tech Debt
Install CodeScene MCP: safeguard and uplift AI-generated code. Catch issues early with our IDE extension and CLI tool.
Summary
rstest-bddv0.6.0-beta3 harness for mxd Wireframe server behavioural testswireframe_testingcomponents and the gaps that prevent reuse ofWireframePairDesign
The proposed
MxdWireframeHarnessinjects a cloneable scenario context into synchronous steps. A dedicated operating-system thread owns a current-thread Tokio runtime, the test database, the production Wireframe server, and a typed Hotline client. Steps send typed commands to that driver rather than entering the runtime themselves.This shape accounts for a v0.6.0-beta3 constraint: harness-backed asynchronous steps that yield
Pendingreceive only one poll. A continuously driven server thread therefore avoids nested runtime calls and lets real network and database futures complete.The design proposes a small
test-supportserver seam that reuses the production application factory, binds an existing listener, forces one worker, exposes readiness, and supports bounded shutdown.wireframe_testingassessmentThe design reuses
unused_listener()immediately and recommends its codec, fragment, and opt-in observability helpers where appropriate. It does not use the currentWireframePairbecause:It proposes an upstream server lifecycle primitive plus a generic client factory, allowing the existing pair API to remain as a compatibility wrapper.
Impact
This is a design-only change. It adds no runtime code and changes no server behaviour.
Validation
wireframe_testingv0.3.0 pair, listener, codec, fragment, and observability APIsrstest-bddv0.6.0-beta3 harness and macro behaviourNo code, formatting, lint, or test commands were run because this pull request contains documentation only and the connected environment does not provide a local repository checkout.