Skip to content

feat(config): e2e proof, public README, calibrated gates - #10

Merged
msalvatti merged 6 commits into
mainfrom
feat/phase-06-integration-docs-dogfood
Jul 16, 2026
Merged

feat(config): e2e proof, public README, calibrated gates#10
msalvatti merged 6 commits into
mainfrom
feat/phase-06-integration-docs-dogfood

Conversation

@msalvatti

Copy link
Copy Markdown
Member

Summary

Closes Phase 6 (integration-docs-dogfood): proves the shipped package end to end and finishes the public documentation. No public API changes; the frozen surface from Phases 0 to 5 is unchanged. This phase adds an e2e suite that boots a realistic NestJS fixture through the built artifact, the complete public README, the first-release changelog entry, recalibrated size budgets, and the full pre-publish gate chain.

What changed

  • e2e suite against the built package. test/e2e/ boots a fixture application (server, database, redis, log namespaces per the spec example integration) through the compiled dist/*.cjs artifacts, resolved via moduleNameMapper in jest.e2e.config.ts (never src/ aliases). Three specs, five tests: success boot with typed ConfigService reads and default resolution, aggregated-failure boot pinning the issue count and asserting no raw values leak into the report, and a forRootAsync composition of a process.env-shaped source with an injected fixture secrets provider. @nestjs/testing only, no network port binding, maxWorkers: '50%'.
  • Complete public README. Badges, features, installation with a peer-requirements table, quick start (snippets lifted verbatim from the compiled test/e2e/fixtures, each with a source reference comment), full API reference covering every exported symbol of both subpaths (defineEnv, BymaxConfigModule.forRoot/forRootAsync plus the options table, ConfigService get/getAll/has, BymaxConfigValidationError/ConfigIssue, ConfigErrorCode, the BYMAX_CONFIG/BYMAX_CONFIG_OPTIONS tokens, and the type utilities), the error-code catalog, the testing guide, design principles, and known limitations.
  • CHANGELOG 0.1.0 entry. Keep a Changelog format, listing the full shipped public surface.
  • Recalibrated size budgets. check-size.mjs budgets set to roughly 1.3x the measured brotli baseline (root 4.06 KiB to 5.25 KiB, testing 5.24 KiB to 7 KiB), inside the 1.2x to 1.5x tripwire band, with the baseline and date recorded in the script comment.
  • Full prepublishOnly gate. prepublishOnly now chains typecheck, lint, test:cov:all, build, size, dogfood. CI gained an e2e step after the build.

Verification

All commands green from a clean worktree:

  • pnpm prepublishOnly: typecheck, lint, test:cov:all (126 unit tests, 100% line/branch/function/statement), build, size (both subpaths PASS), dogfood (both subpaths resolve in ESM and CJS through the exports map, tarball contents clean).
  • pnpm build && pnpm test:e2e: 3 suites, 5 tests pass against the built artifact.
  • node scripts/dogfood-smoke-test.mjs: all assertions pass.
  • Size: root 4.06 KiB brotli (budget 5.25 KiB), testing 5.24 KiB brotli (budget 7 KiB).
  • Invariant greps print nothing: no em dashes and no phase/task references in README.md, CHANGELOG.md, src/, or .github/.

Follow-ups

  • Phase 7 (mutation-hardening-release): Stryker survivor analysis to the break-95 threshold and the v0.1.0 provenance publish.

Copilot AI review requested due to automatic review settings July 16, 2026 18:39

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR closes Phase 6 by adding an end-to-end (e2e) verification suite that boots a realistic NestJS fixture against the built dist/ artifacts, publishing a complete public README + initial changelog entry, and tightening release/CI gates (size + dogfood + e2e).

Changes:

  • Add e2e fixtures/specs plus a dedicated Jest config to run against compiled dist/*.cjs artifacts.
  • Expand public documentation (README) and add the initial 0.1.0 changelog entry.
  • Update release gates and CI to include dogfood verification and an e2e step after build.

Reviewed changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tsconfig.e2e.json TS config for compiling e2e tests.
test/e2e/fixtures/valid-source.ts Valid env-source fixture for success-path boot.
test/e2e/fixtures/secrets.provider.ts Injectable fixture secrets provider for async composition.
test/e2e/fixtures/secrets.module.ts Nest module wrapper to import/export the secrets provider.
test/e2e/fixtures/incomplete-source.ts Invalid env-source fixture for aggregated-failure boot.
test/e2e/fixtures/feature.provider.ts Fixture consumer demonstrating typed ConfigService access.
test/e2e/fixtures/env.schema.ts Zod schema fixture mirroring the documented integration shape.
test/e2e/config-boot-success.e2e-spec.ts Success-path e2e boot specs against built artifacts.
test/e2e/config-boot-failure.e2e-spec.ts Failure-path e2e specs asserting aggregated/value-free errors.
test/e2e/config-boot-async.e2e-spec.ts Async forRootAsync composition e2e spec.
scripts/check-size.mjs Recalibrate brotli size budgets and record calibration history.
README.md Complete public README: features, quick start, API reference, catalog, testing, etc.
package.json Add test:e2e script and extend prepublishOnly gate chain to include dogfood.
jest.e2e.config.ts New Jest config mapping package imports to dist/*.cjs for e2e runs.
docs/tasks/README.md Mark Phase 6 as complete in the tasks index and update totals.
docs/tasks/phase-06-integration-docs-dogfood.md Mark all Phase 6 tasks complete and append completion log.
docs/development_plan.md Update dashboard to reflect Phase 6 completion and overall progress.
CHANGELOG.md Add initial 0.1.0 section documenting the shipped surface.
.github/workflows/ci.yml Add e2e step after build/size in CI.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tsconfig.e2e.json
Comment thread test/e2e/config-boot-failure.e2e-spec.ts
Comment thread CHANGELOG.md Outdated
Copilot AI review requested due to automatic review settings July 16, 2026 18:47

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 19 out of 19 changed files in this pull request and generated no new comments.

@msalvatti
msalvatti merged commit b5d340e into main Jul 16, 2026
5 checks passed
@msalvatti
msalvatti deleted the feat/phase-06-integration-docs-dogfood branch July 16, 2026 18:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants