overengineeringstudio / overengineeringstudio/effect-utils

notion-md: converge the 6 fake NotionMdGateway impls onto a shared harness + de-brittle body-byte tests

Open
#790 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

origin:agent type:chore
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

  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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.