M2 A2: Minimal smoke verification (selection/focus)
目的:M2のA1で固定した「Selection / Focus Contract」が、最低限の入力ケースで壊れていないことを機械的に確認する。
どこを検証するか(最小)
ブラウザ無しで、Selection / Focus Contract の入口が最低限壊れていないことだけを確認する。
- QuickCheck issue(uuid無し、path有り)から uuid を解決できる
- 解決した uuid に対して selection がセットされ、focus が呼ばれる
- kind/path の推論が動く(/points|/lines|/aux)
- Preview pick(単一 / ctrl|cmd toggle)で selection が期待通り更新される
- Outliner(単一 / shift range)で selection が期待通り更新される
- 未適用dirtyガードが deny を返した場合、selection が変わらない
実行方法
npm --prefix apps/modeler run smoke
# (direct) node apps/modeler/ssot/scripts/smoke/minimal-selection.mjs
成功時:exit code 0 + “SMOKE OK” を出す。失敗時:例外 or exit code 1。
注意
- これはUIのDOM操作やiframe越しのpostMessageまでは見ない(M2のA2は“契約の核”だけを守る)。
- M2のA2が安定したら、A3でブラウザE2E(Playwright等)を検討する。