kymora-workflow-testkit

Test helpers for kymora-workflow. Published to downstream users for JVM, Scala.js, Scala.js WASM, and Scala Native. WASM tests run on Node.js 24+.

Why a separate testkit module

Helpers shipped here are real API — downstream users testing their own workflows need the same fakes we use internally. Keeping them as private test code would force every consumer to reinvent them.

What's here

Usage sketch

import io.eleven19.kymora.workflow.*
import io.eleven19.kymora.workflow.testkit.*
import kyo.*
import kyo.test.*

class MyEngineSpec extends WorkflowSpec:
  test("goal runs end-to-end") {
    for
      driver <- WorkflowTestDriver.init
      result <- driver.run(myGoal)
      events <- driver.events
    yield assert(result == expected)
  }

  // Raw kyo-test syntax is still available alongside `test(...)`:
  "no auto-timeout on raw `in`" in { ... }
  "explicit per-test timeout".timeout(10.seconds) in { ... }

Gotchas