Skip to content

ci: run JVM/JS/WASM/iOS tests on PRs, add end-to-end draw tests - #133

Merged
akshay2211 merged 2 commits into
mainfrom
ci/multiplatform-draw-tests
Jul 28, 2026
Merged

ci: run JVM/JS/WASM/iOS tests on PRs, add end-to-end draw tests#133
akshay2211 merged 2 commits into
mainfrom
ci/multiplatform-draw-tests

Conversation

@akshay2211

Copy link
Copy Markdown
Owner

Previously CI only ran JVM tests and compile-checked WASM/iOS. The JS target was not exercised at all and WASM/iOS were never run. Now every published target runs the shared commonTest suite:

  • JVM, JS (browser), WASM (browser) on ubuntu
  • iOS on the simulator (macos runner), upgraded from compile-only

JS/WASM tests run under Karma against headless Chrome (setup-chrome + CHROME_BIN). Both :DrawBox and :drawbox-ui are covered.

Also adds two end-to-end tests driving DrawBoxController through a full pen gesture, so a green run proves a user can actually draw a stroke and undo it on each platform — not merely that the code compiles.

Summary

Type of change

  • Bug fix (non-breaking)
  • New feature (non-breaking, additive to the frozen 2.x surface)
  • Incubating API (opt-in via annotation)
  • Breaking change (would land in a future major)
  • Docs / build / CI only

Affected targets

  • Android
  • iOS
  • JVM Desktop
  • Web (WASM)
  • Web (Kotlin/JS)

Public API impact

  • No public API change
  • Additive only (new symbols, no signature changes)
  • Modifies a 2.x frozen surface — link to RFC or discussion:

Testing

  • Unit tests added / updated
  • Snapshot tests updated (Roborazzi baselines regenerated if applicable)
  • Manually verified on:

Checks

  • ./gradlew :DrawBox:spotlessCheck passes
  • ./gradlew :DrawBox:jvmTest passes
  • ./gradlew :DrawBox:dokkaGenerateHtml passes
  • CHANGELOG entry added under the correct release heading (if user-facing)
  • Migration notes added (if the JSON scene format or a frozen surface moved)

Screenshots / recording

Linked issues

Previously CI only ran JVM tests and compile-checked WASM/iOS. The JS
target was not exercised at all and WASM/iOS were never run. Now every
published target runs the shared commonTest suite:

- JVM, JS (browser), WASM (browser) on ubuntu
- iOS on the simulator (macos runner), upgraded from compile-only

JS/WASM tests run under Karma against headless Chrome (setup-chrome +
CHROME_BIN). Both :DrawBox and :drawbox-ui are covered.

Also adds two end-to-end tests driving DrawBoxController through a full
pen gesture, so a green run proves a user can actually draw a stroke and
undo it on each platform — not merely that the code compiles.
@akshay2211 akshay2211 self-assigned this Jul 27, 2026
@akshay2211 akshay2211 added the enhancement New feature or request label Jul 27, 2026
The JS/WASM Karma browser tests failed on the Linux CI runner with a
ZygoteHostImpl fatal ("ChromeHeadless cannot start"): Chrome's setuid
sandbox can't initialize in that environment. Add a karma.config.d
launcher for both modules that runs headless Chrome with --no-sandbox.
Appended after the plugin's default config, so the browsers override
wins. Harmless on local macOS runs (verified).
@akshay2211
akshay2211 merged commit daa7e49 into main Jul 28, 2026
3 checks passed
@akshay2211
akshay2211 deleted the ci/multiplatform-draw-tests branch July 28, 2026 09:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant