docs/slate-browser/framework-design.md
Specialist testing/proof doc. For current queue and roadmap truth, see master-roadmap.md.
Framework-direction doc only. Use current root commands and the proof-lane matrix for the shipped operator surface.
This doc turns the research in overview.md into a concrete framework recommendation.
The target is not “a test stack.”
The target is:
Do not choose Bun or Vitest as if one runner solves the whole problem.
That is the wrong question.
The right question is:
Purpose:
Recommended tool:
Why:
Do not use this lane for:
Purpose:
Recommended tool:
Why:
Why not Bun here:
Purpose:
Recommended tool:
Why:
DX rule:
openExamplefocusEditorassertEditorHtmlassertSlateSelectionassertDomSelectionPurpose:
Recommended tool:
Why:
Command shape:
test:ime:chromiumtest:ime:webkittest:ime:firefox when the harness/support is realKey principle:
Purpose:
Recommended tools:
Why:
agent-native-reviewer standard:
if users can do it, agents need a lane tooBut:
Purpose:
Recommended tools:
Why:
Use Bun when you need:
Best lanes:
Use Vitest when you need:
Best lanes:
Use Playwright when you need:
Best lanes:
The best framework is:
Not:
Speed is won by keeping the expensive lanes small and rare.
Rules:
Coverage is not one number.
Need all of:
If any one of these is missing, the framework is lying about coverage.
Applying the agent-native-reviewer lens:
Minimum future agent-native artifacts:
Recommended repo command families:
test:coretest:domtest:examplestest:ime:chromiumtest:perftest:agentRecommended implementation:
test:core -> Buntest:dom -> Vitest browsertest:examples -> Playwrighttest:ime:chromium -> Playwright + CDP helperstest:perf -> Bun benchmark scriptstest:agent -> dev-browser / agent-browser wrappersThe best testing framework for editor work is not a runner choice.
It is a lane design: