Repository navigation
docs(adr): ADR-064 test layers follow the hexagon, repository contract tests per port - #711
seanspeaks wants to merge 1 commit into
Conversation
…t tests per port Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013b2UUFaQ5Lk6TFPqzRr1j7
There was a problem hiding this comment.
If your organization's extra usage balance is empty, an organization admin can add extra usage credits at claude.ai/admin-settings/usage. If its monthly spend limit was reached, an admin can raise it on the same page. If neither applies, contact Anthropic support.
Once extra usage is available, someone with write access to this repository can comment @claude review on this pull request to trigger a review.
✅ Deploy Preview for friggframework-org ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|



Summary
Proposes ADR-064: Frigg's tests follow the same layers as the hexagonal architecture.
test:dbCI job, with the encryption extension exercised.Why
Core's jest setup used to start an in-memory MongoDB for every run. Almost nothing used it, and when it failed on Ubuntu 24.04 (OpenSSL 1.1) the whole core suite stopped running. Today's adapter tests mock Prisma, so they can't catch behaviour that differs between databases. #710 removes the global database and adds the
*.db.test.js/test:dbpath. This ADR sets the target the 14 repository ports migrate to.Migration order
credential, integration, module (entities), user and token first, because encryption and tenancy live there. Then the remaining nine ports. A tracking issue follows.
Test plan
adrs.jsonentry.🤖 Generated with Claude Code
Note
Low Risk
Documentation-only ADR and index updates; no runtime or test code changes in this PR.
Overview
Adds ADR-064 (Proposed), which defines how Frigg core tests should align with hexagonal boundaries: use cases on in-memory fakes, handlers on mocked use cases, and one shared contract suite per repository port run against MongoDB/PostgreSQL (and DocumentDB via Mongo in CI) as
*.db.test.js/npm run test:db, including encryption checks and no global DB in unitglobalSetup. It documents motivation (CI outage from globalMongoMemoryServer, Prisma mocks missing cross-DB bugs), generalizes existing parity/encryption suites, lists a 14-port migration order, and ties the target to #710.The ADR register is updated in
docs/architecture-decisions/README.mdandwebsite/roadmap/data/adrs.json(count 32, new entry for 064).Reviewed by Cursor Bugbot for commit f8b6445. Bugbot is set up for automated code reviews on this repo. Configure here.
📦 Published PR as canary version:
2.0.0--canary.711.f8b6445.0✨ Test out this PR locally via:
npm install @friggframework/admin-scripts@2.0.0--canary.711.f8b6445.0 npm install @friggframework/core@2.0.0--canary.711.f8b6445.0 npm install @friggframework/devtools@2.0.0--canary.711.f8b6445.0 npm install @friggframework/eslint-config@2.0.0--canary.711.f8b6445.0 npm install @friggframework/prettier-config@2.0.0--canary.711.f8b6445.0 npm install @friggframework/schemas@2.0.0--canary.711.f8b6445.0 npm install @friggframework/serverless-plugin@2.0.0--canary.711.f8b6445.0 npm install @friggframework/test@2.0.0--canary.711.f8b6445.0 npm install @friggframework/ui@2.0.0--canary.711.f8b6445.0 # or yarn add @friggframework/admin-scripts@2.0.0--canary.711.f8b6445.0 yarn add @friggframework/core@2.0.0--canary.711.f8b6445.0 yarn add @friggframework/devtools@2.0.0--canary.711.f8b6445.0 yarn add @friggframework/eslint-config@2.0.0--canary.711.f8b6445.0 yarn add @friggframework/prettier-config@2.0.0--canary.711.f8b6445.0 yarn add @friggframework/schemas@2.0.0--canary.711.f8b6445.0 yarn add @friggframework/serverless-plugin@2.0.0--canary.711.f8b6445.0 yarn add @friggframework/test@2.0.0--canary.711.f8b6445.0 yarn add @friggframework/ui@2.0.0--canary.711.f8b6445.0