overengineeringstudio / overengineeringstudio/effect-utils
notion-md: converge the 6 fake NotionMdGateway impls onto a shared harness + de-brittle body-byte tests
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 82
- Forks
- 2
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 121
Description
Testing-architecture cleanup surfaced by review (deferred from #786 as its own focused pass).
Fake-gateway convergence
The NotionMdGateway fake is re-rolled 6 times (FakeNotion, FakeTreeNotion, four near-identical FakeGateway classes with copy-pasted snapshot()/pull() + walls of Effect.dieMessage stubs). The house pattern already exists: notion-datasource-sync/src/testing/harness.ts makeFakeGatewayHarness(input) + Partial<>-override fixture builders. Converge on it (notion-effect-client also has createMockHttpClient). Lever: adding a gateway method today forces synchronized edits across 6 files.
De-brittle body-byte assertions
~24 full-body .toBe/.toEqual assertions are the re-baseline burden (vs ~19 already-semantic .toContain). Migrate to semanticEquivalent where the body is incidental, and add one golden-file fixpoint over demo/showcase.nmd (currently no snapshot files exist).
Not a CI bug
dt test:* caching is local-only (execIfModified globs only ${pkg}/src/**; CI does not persist devenv task state — runs cold). P1 developer-trust hygiene, not a stale-green CI risk.
Well-designed models to copy: the live integration harness, the OTEL span-shape tests (with leak guards), and notion-effect-clients provision-once mock layer.
Posted on behalf of @schickling
| field | value |
|---|---|
agent_name |
🏔️ cl1-ridge |
agent_session_id |
dd0a9ae0-bba8-43ad-8c01-449bd0bdca58 |
agent_tool |
Claude Code |
agent_tool_version |
2.1.165 |
agent_runtime |
Claude Code 2.1.165 |
agent_model |
claude-opus-4-8 |
runtime_profile |
/nix/store/4p78dsfk8riqcgk91zzjlgraibyf1hd4-coding-agent-runtime-profile/share/coding-agents/profile.json |
skills_manifest |
/nix/store/cly1vi1qvxfyk37gmdk4qw4j33zrfpny-agent-skills-corpus/share/agent-skills/manifest.json |
worktree |
effect-utils/schickling/2026-06-14-notion-md-vim |
machine |
dev3 |
tooling_profile |
dotfiles@e7e383b |
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with notion-datasource-sync/src/testing/harness.ts and its makeFakeGatewayHarness(input) pattern, then locate the six NotionMdGateway fake implementations and the body-byte assertions. Use the live integration harness, OTEL span-shape tests, and notion-effect-client's createMockHttpClient as reference points. Done means the fakes share one harness, incidental body checks use semanticEquivalent, and demo/showcase.nmd has a golden-file fixpoint.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- testing-qa
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100