π± kiwa v0.5 β polyglot test toolchain Β· Coverage + Mutation gates Β· 8 component adapters #451
cardene777
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
π± kiwa v0.5 β polyglot test toolchain Β· Coverage + Mutation gates Β· 8 component adapters
A scattered test stack is the default. Contract tests live in Foundry, unit + API in Vitest, e2e in Playwright, components in Testing Library, a11y in axe-core, visual in pixelmatch, Python services in pytest. Every runner has its own conventions, fixtures, and gates β and no single source of truth ties them together.
kiwa v0.5 is the cut where I finally feel the toolchain solves that. One Layer 1 spec β every test layer your stack actually needs, across TypeScript, Python, and Solidity.
1. Six test surfaces, one spec
@kiwa-test/uiships 8 adapters (see Β§ 2)dApps and smart contracts are first-class β but so is everything else.
2.
@kiwa-test/uicovers 8 component surfaces from one packagesetupComponentEnvsetupVueComponentEnvsetupSvelteComponentEnvsetupSolidComponentEnvsetupLitComponentEnvsetupQwikComponentEnvsetupAngularComponentEnvsetupBrowserComponentEnvAll share the same
mode (render / interaction / snapshot) + stop()contract. Optional peer deps mean you only install what you actually use.3. Polyglot from day one
kiwa-test-py)@kiwa-test/specPython port + requests / httpx adapter/kiwa-forge+/kiwa-hardhatfrom the same Layer 1 specRust / Go on the roadmap. The point: spec once, generate test layers across the languages your stack actually uses.
4. Release-time gates that actually fire
scripts/check-coverage-gates.mjs+scripts/check-mutation-gates.mjsrun inside.github/workflows/release.ymland block publish if any package regresses below its threshold.Coverage gate
Lines / Statements / Functions β₯ 90 %, Branches β₯ 80 %, across all 11 packages.
Mutation gate β Mutation Score Indicator (MSI)
@kiwa-test/api@kiwa-test/a11y@kiwa-test/ui@kiwa-test/cli-test@kiwa-test/data@kiwa-test/spec@kiwa-test/core@kiwa-test/cli@kiwa-test/e2e@kiwa-test/observability@kiwa-test/visualPer-package thresholds are intentional β pure-logic packages enforce 90; thin wrappers around third-party libs hold at 80 to avoid getting trapped by equivalent mutants.
Try it
assets/kiwa-promo-en.mp4(see README inline)How can you help?
@kiwa-test/uiis purpose-built for new framework adapters (the SolidJS adapter took 1 PR and 100 LOC).@kiwa-test/specare on the roadmap β let's talk in this thread if you want to drive one.Thanks for reading π±
β @cardene777
Beta Was this translation helpful? Give feedback.
All reactions