monad-developers / monad-developers/ultrafuzz

Split the monolithic runtime test suites into domain-owned shards

Open
#1,000 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
TypeScript
Stars
85
Forks
18
Avg merge
11h 10m
Merged PRs (30d)
194

Description

Context

The line-count ratchet introduced by #997 identifies the three largest test files as:

  • packages/runtime/test/runtime.test.ts: 21,376 measured lines (target: 1,000)
  • packages/runtime/test/artifact-gates.test.ts: 13,881 measured lines (target: 1,000)
  • packages/runtime/test/generated-workflow-verifier.test.ts: 9,212 measured lines (target: 1,000)

The files provide valuable integration coverage, but their size makes ownership, selective execution, review, and failure diagnosis expensive. The runtime file also has module fan-out 22 (target: 15).

Proposed work

  • Inventory test domains and shared fixture boundaries before moving cases.
  • Split by behavior/contract, retaining explicit integration shards for cross-domain scenarios.
  • Extract typed fixture builders without hiding important assertions in generic helpers.
  • Preserve Node/Bun selectors, timeouts, and release-validation lane coverage.

Acceptance criteria

  • No new shard exceeds 3,000 measured lines as an intermediate ceiling.
  • The original three files each shrink by at least 40% in the first milestone.
  • Node, Bun adapter, coverage, and release-validation test inventories remain equivalent.
  • Metric and fan-out baselines are lowered in the same PR.

Follow-up to #997.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inventorying domains and fixture boundaries across packages/runtime/test/runtime.test.ts, artifact-gates.test.ts, and generated-workflow-verifier.test.ts. Read the existing Node, Bun adapter, coverage, and release-validation selectors before planning shards. Done means no shard exceeds 3,000 measured lines, the three originals shrink by at least 40%, test inventories remain equivalent, and metric and fan-out baselines decrease.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
testing
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.