Skip to content

Implement Yano testkits for JVM and npm non-JVM testing#22

Merged
satran004 merged 5 commits into
mainfrom
feat/testkit_enhancements
Jun 25, 2026
Merged

Implement Yano testkits for JVM and npm non-JVM testing#22
satran004 merged 5 commits into
mainfrom
feat/testkit_enhancements

Conversation

@satran004

Copy link
Copy Markdown
Member

Summary

Implements ADR-030 and ADR-031 testkit support.

ADR-030: JVM/JUnit testkit

  • Added testkit, testkit-ccl, and devnet-toolkit support for in-process Yano devnet integration tests.
  • Uses real RocksDB-backed devnet storage by default.
  • Added deterministic devnet lifecycle, temporary storage cleanup, faucet, wallet, time, snapshot, query, and assertion helpers.
  • Added JUnit extension support and real devnet tests covering funding, time advance, snapshot/restore, and epoch crossing.
  • Added CCL BackendService integration for embedded Yano-backed Java tests.
  • Added external app/Haskell node process helpers and upgraded Haskell cardano-node support to 11.0.1.
  • Hardened protocol-params handling for Blockfrost-compatible and cardano-node-compatible JSON shapes.

ADR-031: native npm testkit

  • Added @bloxbean/yano-testkit npm wrapper for JS/non-JVM tests.
  • Added platform package layout for native Yano binaries:
    • Linux x64
    • Linux arm64
    • macOS arm64
    • Windows x64
  • Added JS lifecycle API to start/stop Yano native devnet from tests.
  • Added temp RocksDB storage defaults, readiness polling, log capture, port allocation, cleanup, and failure diagnostics.
  • Added Vitest helper and TypeScript definitions.
  • Added npm README with local testing and version-sync instructions.
  • Added GitHub Actions for npm testkit validation and npm trusted publishing flow.
  • Updated native release workflow to include Windows binary packaging.

API cleanup

  • Renamed the pre-release public assembly handle from YanoNode to Yano.
  • Updated runtime, devnet-toolkit, testkit, app integration, tests, and ADR/docs accordingly.

Validation

Ran successfully:

  • ./gradlew build -PskipSigning=true
  • ./gradlew :runtime:test :devnet-toolkit:test :testkit:test :testkit-ccl:test :tx-services:test :app:compileTestJava -PskipSigning=true
  • cd npm && npm test
  • cd npm && npm run typecheck
  • cd npm && npm run check:versions
  • cd npm && npm run pack:dry

Add the ADR-030 JVM testkit helpers, CCL BackendService adapter, external app/Haskell process helpers, and app E2E migration. Document the native/npm non-JVM fixture path and update Haskell cardano-node compatibility to 11.0.1.
@satran004 satran004 merged commit 7dc016d into main Jun 25, 2026
@satran004 satran004 deleted the feat/testkit_enhancements branch June 25, 2026 17:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant