DOCS / INTERNALS
Testing
Both halves of the framework ship with suites that run in CI on every push — the reconciler and resolver in Bun, the shadow tree and painter as JUCE UnitTests.
TypeScript
cd vsreact/js && bun test
# reconciler host config, tw resolver, controls, animationThe host config tests render real React trees against a mock bridge and assert on the exact mutation ops — refactors that change the wire format fail loudly.
C++
cmake -S ci -B ci/build -DJUCE_SOURCE_DIR=path/to/JUCE -DCMAKE_BUILD_TYPE=Release
cmake --build ci/build --config Release
ctest --test-dir ci/build -C ReleaseCovers style parsing, Yoga layout application, shadow-tree mutations, hit-testing, and the ParameterBridge (using its synchronous test hooks — setEventSink and flushPendingEvents).
Continuous integration
.github/workflows/ci.yml builds the JS suite plus the native module on Windows (MSVC) and macOS (clang) for every push, against a fresh JUCE checkout. The example plugin builds as part of the native job, so API breaks surface immediately.