thandClaude Opus 4.7 22b553e931 tests: fill macro-clips coverage gaps (+35 tests)
Refactor + new tests triggered by an explicit coverage audit of the
macro-clips feature set.

- extracted blendButtonStates into src/lib/buttonBlend.ts so it can be
  tested without mounting CanvasStage; the component now delegates to
  it. Behaviour unchanged.
- store coverage: removeMarker / setMarkerTime / setMarkerColor on
  unknown ids are no-ops, addMarker accepts an initial color,
  removeScriptFrame / setScriptFrameActions / setScriptFrameTime on
  unknown ids are no-ops, removeButtonInstance keeps the clip,
  addButtonInstance defaults x/y to stage center,
  setButtonInstancePosition writes through, setButtonInstanceLabel('')
  clears, setButtonClipTransitions stores + deletes.
- button runtime: applyButtonStateChange is a no-op when the target
  equals the current state, honors the persisted disabled flag as the
  from-state, reset() clears transitions alongside state/disabled.
  store.actionRuntime warns on unknown button refs.
- blendButtonStates: matched layer lerps props (incl. fill color),
  unmatched from-layer fades out, unmatched to-layer fades in,
  u=0/u=1 boundary conditions, missing asset id resolves are skipped.
- DSL edge cases: empty source, comments-only, trailing blank lines,
  wrong state ref prefix, disable without arg, jump @ without name.
- tick firing robustness: multi-track frames fire in time order,
  actions within a frame fire in list order, scriptFramesInRange
  open-closed boundary is exact.

Macro-clips suites now total 76 tests across 11 groups; grand total
277 tests in the runner.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 22:00:58 +02:00
bak
2026-04-19 20:31:53 +02:00
2026-04-19 17:53:36 +02:00
2026-04-19 17:53:36 +02:00
bak
2026-04-20 00:29:12 +02:00
2026-04-19 17:53:36 +02:00
2026-04-19 17:53:36 +02:00
S
Description
No description provided
8.8 MiB
0 Stars 3 Watchers 0 Forks
Languages
TypeScript 60%
Vue 35.4%
JavaScript 3.4%
HTML 0.9%
CSS 0.2%
Other 0.1%