Skip to content

Port prisma functional wave 2: mongo composites, relationMode matrices, issue regressions (229 accounted)#1042

Merged
SevInf merged 1 commit into
mainfrom
port-all-tests
Jul 27, 2026
Merged

Port prisma functional wave 2: mongo composites, relationMode matrices, issue regressions (229 accounted)#1042
SevInf merged 1 commit into
mainfrom
port-all-tests

Conversation

@SevInf

@SevInf SevInf commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Second porting wave for the port-all-tests project. +229 checklist boxes accounted (488 → 717); every box gated by an Opus reviewer before it was checked.

What landed

Ported & passing

  • mongo compositescomposites/list and composites/object (create / createMany / delete / deleteMany / findFirst / findMany / update / upsert) against withMongoPort.
  • relationMode foreignKeys matrices1-to-1, 1-to-n, m-to-n referential actions (Cascade / NoAction / Restrict / SetNull × @map variants) plus the 17255 same/mixed-action disconnect cases.
  • issue regressions — 5952 (decimal), 14954 (date), 21631 (batching-in-tx, Promise.all forms), 29174 (jsonb), 13089 (dollar-in-search, mongo).

Ported & failing (test.fails, faithful gap — one-to-one with failing.md)

  • 29267 Uint8Array-in-JSON serialization; required-composite null; implicit-default onUpdate (prisma-next NoAction vs Prisma Cascade).

Non-portable (recorded per-test under non-ported/functional/<suite>/)

  • relationLoadStrategy (no such query option), relationMode=prisma client-side emulation, implicit embedded mongo m2m, array-batch $transaction([...]), and mongo-ORM gaps (embedded-subfield select, composite where operators, read-side aggregate/count).

Verification

  • Full ports corpus: 68 files, 526 passed | 50 expected-fail, typecheck + lint clean.
  • failing.md matches the 50 test.fails 1:1; non-ported ledgers mirror functional/<suite>/; checklist boxes carry per-line dispositions.
  • The reviewer gate caught and corrected two real faithfulness defects before finalize: composites/list had dropped the upstream _id assertion, and three issue suites had substituted array-batch $transaction([...]) with the interactive-transaction facade (demoted to non-ported).

No production code changed — test-only, per the project spec.

🤖 Generated with Claude Code

@SevInf
SevInf requested a review from a team as a code owner July 23, 2026 15:30
@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 187 files, which is 87 over the limit of 100.

To get a review, narrow the scope:
• coderabbit review --committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro Plus

Run ID: 8d775c1b-9a33-43d2-8e2f-2d6469aa02fb

📥 Commits

Reviewing files that changed from the base of the PR and between 7a39ef4 and 02f298e.

⛔ Files ignored due to path filters (88)
  • projects/port-all-tests/briefs/implementer.md is excluded by !projects/**
  • projects/port-all-tests/checklists/prisma-functional-0-l.md is excluded by !projects/**
  • projects/port-all-tests/checklists/prisma-functional-issues.md is excluded by !projects/**
  • projects/port-all-tests/checklists/prisma-functional-m-z.md is excluded by !projects/**
  • test/integration/test/ports/prisma/functional/composites-list-create/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-list-create/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-list-createMany/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-list-createMany/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-list-delete/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-list-delete/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-list-deleteMany/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-list-deleteMany/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-list-findFirst/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-list-findFirst/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-list-findMany/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-list-findMany/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-list-update/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-list-update/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-list-upsert-create/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-list-upsert-create/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-object-createMany/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-object-createMany/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-object-delete/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-object-delete/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-object-deleteMany/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-object-deleteMany/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-object-findFirst/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-object-findFirst/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-object-findMany/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-object-findMany/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-object-upsert-create/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/composites-object-upsert-create/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/issues-13089-dollar-in-search/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/issues-13089-dollar-in-search/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/issues-14954-date-batch/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/issues-14954-date-batch/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/issues-21631-batching-in-transaction/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/issues-21631-batching-in-transaction/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/issues-29174-jsonb-parameter-regression/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/issues-29174-jsonb-parameter-regression/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/issues-29267-uint8array-in-json/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/issues-29267-uint8array-in-json/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/issues-5952-decimal-batch/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/issues-5952-decimal-batch/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-17255-mixed-actions/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-17255-mixed-actions/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-17255-same-actions/_fixture/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-17255-same-actions/_fixture/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/cascade-map/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/cascade-map/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/cascade-plain/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/cascade-plain/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/noaction-map/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/noaction-map/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/noaction-plain/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/noaction-plain/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/restrict-map/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/restrict-map/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/restrict-plain/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/restrict-plain/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/setnull-map/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/setnull-map/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/setnull-plain/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/setnull-plain/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/cascade-map/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/cascade-map/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/cascade-plain/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/cascade-plain/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/noaction-map/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/noaction-map/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/noaction-plain/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/noaction-plain/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/restrict-map/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/restrict-map/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/restrict-plain/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/restrict-plain/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/setnull-map/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/setnull-map/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/setnull-plain/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/setnull-plain/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/cascade-nomap/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/cascade-nomap/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/default-nomap/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/default-nomap/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/noaction-nomap/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/noaction-nomap/generated/contract.json is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/restrict-nomap/generated/contract.d.ts is excluded by !**/generated/**
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/restrict-nomap/generated/contract.json is excluded by !**/generated/**
📒 Files selected for processing (187)
  • test/integration/test/ports/prisma/failing.md
  • test/integration/test/ports/prisma/functional/composites-list-create/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/composites-list-create/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/composites-list-create/composites-list-create.test.ts
  • test/integration/test/ports/prisma/functional/composites-list-createMany/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/composites-list-createMany/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/composites-list-createMany/composites-list-createMany.test.ts
  • test/integration/test/ports/prisma/functional/composites-list-delete/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/composites-list-delete/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/composites-list-delete/composites-list-delete.test.ts
  • test/integration/test/ports/prisma/functional/composites-list-deleteMany/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/composites-list-deleteMany/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/composites-list-deleteMany/composites-list-deleteMany.test.ts
  • test/integration/test/ports/prisma/functional/composites-list-findFirst/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/composites-list-findFirst/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/composites-list-findFirst/composites-list-findFirst.test.ts
  • test/integration/test/ports/prisma/functional/composites-list-findMany/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/composites-list-findMany/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/composites-list-findMany/composites-list-findMany.test.ts
  • test/integration/test/ports/prisma/functional/composites-list-update/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/composites-list-update/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/composites-list-update/composites-list-update.test.ts
  • test/integration/test/ports/prisma/functional/composites-list-upsert-create/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/composites-list-upsert-create/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/composites-list-upsert-create/composites-list-upsert-create.test.ts
  • test/integration/test/ports/prisma/functional/composites-object-createMany/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/composites-object-createMany/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/composites-object-createMany/composites-object-createMany.test.ts
  • test/integration/test/ports/prisma/functional/composites-object-delete/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/composites-object-delete/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/composites-object-delete/composites-object-delete.test.ts
  • test/integration/test/ports/prisma/functional/composites-object-deleteMany/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/composites-object-deleteMany/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/composites-object-deleteMany/composites-object-deleteMany.test.ts
  • test/integration/test/ports/prisma/functional/composites-object-findFirst/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/composites-object-findFirst/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/composites-object-findFirst/composites-object-findFirst.test.ts
  • test/integration/test/ports/prisma/functional/composites-object-findMany/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/composites-object-findMany/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/composites-object-findMany/composites-object-findMany.test.ts
  • test/integration/test/ports/prisma/functional/composites-object-upsert-create/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/composites-object-upsert-create/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/composites-object-upsert-create/composites-object-upsert-create.test.ts
  • test/integration/test/ports/prisma/functional/issues-13089-dollar-in-search/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/issues-13089-dollar-in-search/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/issues-13089-dollar-in-search/issues-13089-dollar-in-search.test.ts
  • test/integration/test/ports/prisma/functional/issues-14954-date-batch/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/issues-14954-date-batch/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/issues-14954-date-batch/issues-14954-date-batch.test.ts
  • test/integration/test/ports/prisma/functional/issues-21631-batching-in-transaction/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/issues-21631-batching-in-transaction/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/issues-21631-batching-in-transaction/issues-21631-batching-in-transaction.test.ts
  • test/integration/test/ports/prisma/functional/issues-29174-jsonb-parameter-regression/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/issues-29174-jsonb-parameter-regression/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/issues-29174-jsonb-parameter-regression/issues-29174-jsonb-parameter-regression.test.ts
  • test/integration/test/ports/prisma/functional/issues-29267-uint8array-in-json/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/issues-29267-uint8array-in-json/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/issues-29267-uint8array-in-json/issues-29267-uint8array-in-json.test.ts
  • test/integration/test/ports/prisma/functional/issues-5952-decimal-batch/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/issues-5952-decimal-batch/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/issues-5952-decimal-batch/issues-5952-decimal-batch.test.ts
  • test/integration/test/ports/prisma/functional/relation-mode-17255-mixed-actions/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-17255-mixed-actions/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-17255-mixed-actions/relation-mode-17255-mixed-actions.test.ts
  • test/integration/test/ports/prisma/functional/relation-mode-17255-same-actions/_fixture/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-17255-same-actions/_fixture/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-17255-same-actions/relation-mode-17255-same-actions.test.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/cascade-map/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/cascade-map/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/cascade-map/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/cascade-map/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/cascade-plain/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/cascade-plain/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/cascade-plain/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/cascade-plain/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/noaction-map/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/noaction-map/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/noaction-map/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/noaction-map/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/noaction-plain/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/noaction-plain/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/noaction-plain/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/noaction-plain/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/restrict-map/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/restrict-map/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/restrict-map/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/restrict-map/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/restrict-plain/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/restrict-plain/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/restrict-plain/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/restrict-plain/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/setnull-map/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/setnull-map/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/setnull-map/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/setnull-map/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/setnull-plain/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/setnull-plain/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/setnull-plain/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/_fixture/setnull-plain/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-1/relation-mode-gh-1-to-1.test.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/cascade-map/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/cascade-map/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/cascade-map/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/cascade-map/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/cascade-plain/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/cascade-plain/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/cascade-plain/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/cascade-plain/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/noaction-map/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/noaction-map/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/noaction-map/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/noaction-map/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/noaction-plain/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/noaction-plain/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/noaction-plain/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/noaction-plain/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/restrict-map/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/restrict-map/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/restrict-map/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/restrict-map/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/restrict-plain/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/restrict-plain/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/restrict-plain/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/restrict-plain/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/setnull-map/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/setnull-map/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/setnull-map/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/setnull-map/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/setnull-plain/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/setnull-plain/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/setnull-plain/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/_fixture/setnull-plain/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-1-to-n/relation-mode-gh-1-to-n.test.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/cascade-map/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/cascade-map/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/cascade-nomap/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/cascade-nomap/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/cascade-nomap/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/cascade-nomap/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/default-map/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/default-map/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/default-nomap/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/default-nomap/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/default-nomap/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/default-nomap/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/noaction-map/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/noaction-map/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/noaction-nomap/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/noaction-nomap/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/noaction-nomap/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/noaction-nomap/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/restrict-map/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/restrict-map/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/restrict-nomap/contract.d.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/restrict-nomap/contract.json
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/restrict-nomap/contract.prisma
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_fixture/restrict-nomap/prisma-next.config.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/_shared.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/create.test.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/delete.test.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/emit-map.test.ts
  • test/integration/test/ports/prisma/functional/relation-mode-gh-m-to-n/update.test.ts
  • test/integration/test/ports/prisma/non-ported/functional/composites-list-aggregate/composites-list-aggregate.md
  • test/integration/test/ports/prisma/non-ported/functional/composites-list-count/composites-list-count.md
  • test/integration/test/ports/prisma/non-ported/functional/composites-list-findFirst/composites-list-findFirst.md
  • test/integration/test/ports/prisma/non-ported/functional/composites-list-findMany/composites-list-findMany.md
  • test/integration/test/ports/prisma/non-ported/functional/composites-list-update/composites-list-update.md
  • test/integration/test/ports/prisma/non-ported/functional/composites-object-aggregate/composites-object-aggregate.md
  • test/integration/test/ports/prisma/non-ported/functional/composites-object-count/composites-object-count.md
  • test/integration/test/ports/prisma/non-ported/functional/composites-object-findFirst/composites-object-findFirst.md
  • test/integration/test/ports/prisma/non-ported/functional/composites-object-findMany/composites-object-findMany.md
  • test/integration/test/ports/prisma/non-ported/functional/issues-11740-transaction-stored-query/issues-11740-transaction-stored-query.md
  • test/integration/test/ports/prisma/non-ported/functional/issues-12862-errors-are-obfuscated-by-interactive-transactions/issues-12862-errors-are-obfuscated-by-interactive-transactions.md
  • test/integration/test/ports/prisma/non-ported/functional/issues-14954-date-batch/issues-14954-date-batch.md
  • test/integration/test/ports/prisma/non-ported/functional/issues-18276-batch-order/issues-18276-batch-order.md
  • test/integration/test/ports/prisma/non-ported/functional/issues-20724/issues-20724.md
  • test/integration/test/ports/prisma/non-ported/functional/issues-21631-batching-in-transaction/issues-21631-batching-in-transaction.md
  • test/integration/test/ports/prisma/non-ported/functional/issues-5952-decimal-batch/issues-5952-decimal-batch.md
  • test/integration/test/ports/prisma/non-ported/functional/relation-load-strategy-unsupported/relation-load-strategy-unsupported.md
  • test/integration/test/ports/prisma/non-ported/functional/relation-load-strategy/relation-load-strategy.md
  • test/integration/test/ports/prisma/non-ported/functional/relation-mode-17255-mixed-actions/relation-mode-17255-mixed-actions.md
  • test/integration/test/ports/prisma/non-ported/functional/relation-mode-17255-same-actions/relation-mode-17255-same-actions.md
  • test/integration/test/ports/prisma/non-ported/functional/relation-mode-gh-1-to-1/relation-mode-gh-1-to-1.md
  • test/integration/test/ports/prisma/non-ported/functional/relation-mode-gh-1-to-n/relation-mode-gh-1-to-n.md
  • test/integration/test/ports/prisma/non-ported/functional/relation-mode-gh-m-to-n-mongodb/relation-mode-gh-m-to-n-mongodb.md
  • test/integration/test/ports/prisma/non-ported/functional/relation-mode-gh-m-to-n/relation-mode-gh-m-to-n.md
  • test/integration/test/ports/prisma/non-ported/functional/relation-mode-m-n-mongodb-at-map/relation-mode-m-n-mongodb-at-map.md

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch port-all-tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown

size-limit report 📦

Path Size
postgres / no-emit 168.37 KB (0%)
postgres / emit 149.19 KB (0%)
mongo / no-emit 100.72 KB (0%)
mongo / emit 90.4 KB (0%)
cf-worker / no-emit 193.82 KB (0%)
cf-worker / emit 172.61 KB (0%)

@pkg-pr-new

pkg-pr-new Bot commented Jul 23, 2026

Copy link
Copy Markdown

Open in StackBlitz

@prisma-next/extension-author-tools

npm i https://pkg.pr.new/@prisma-next/extension-author-tools@1042

@prisma-next/mongo-runtime

npm i https://pkg.pr.new/@prisma-next/mongo-runtime@1042

@prisma-next/family-mongo

npm i https://pkg.pr.new/@prisma-next/family-mongo@1042

@prisma-next/sql-runtime

npm i https://pkg.pr.new/@prisma-next/sql-runtime@1042

@prisma-next/family-sql

npm i https://pkg.pr.new/@prisma-next/family-sql@1042

@prisma-next/extension-arktype-json

npm i https://pkg.pr.new/@prisma-next/extension-arktype-json@1042

@prisma-next/middleware-cache

npm i https://pkg.pr.new/@prisma-next/middleware-cache@1042

@prisma-next/mongo

npm i https://pkg.pr.new/@prisma-next/mongo@1042

@prisma-next/extension-paradedb

npm i https://pkg.pr.new/@prisma-next/extension-paradedb@1042

@prisma-next/extension-pgvector

npm i https://pkg.pr.new/@prisma-next/extension-pgvector@1042

@prisma-next/extension-postgis

npm i https://pkg.pr.new/@prisma-next/extension-postgis@1042

@prisma-next/postgres

npm i https://pkg.pr.new/@prisma-next/postgres@1042

@prisma-next/sql-orm-client

npm i https://pkg.pr.new/@prisma-next/sql-orm-client@1042

@prisma-next/sqlite

npm i https://pkg.pr.new/@prisma-next/sqlite@1042

@prisma-next/extension-supabase

npm i https://pkg.pr.new/@prisma-next/extension-supabase@1042

@prisma-next/target-mongo

npm i https://pkg.pr.new/@prisma-next/target-mongo@1042

@prisma-next/adapter-mongo

npm i https://pkg.pr.new/@prisma-next/adapter-mongo@1042

@prisma-next/driver-mongo

npm i https://pkg.pr.new/@prisma-next/driver-mongo@1042

@prisma-next/contract

npm i https://pkg.pr.new/@prisma-next/contract@1042

@prisma-next/utils

npm i https://pkg.pr.new/@prisma-next/utils@1042

@prisma-next/config

npm i https://pkg.pr.new/@prisma-next/config@1042

@prisma-next/errors

npm i https://pkg.pr.new/@prisma-next/errors@1042

@prisma-next/framework-components

npm i https://pkg.pr.new/@prisma-next/framework-components@1042

@prisma-next/operations

npm i https://pkg.pr.new/@prisma-next/operations@1042

@prisma-next/ts-render

npm i https://pkg.pr.new/@prisma-next/ts-render@1042

@prisma-next/contract-authoring

npm i https://pkg.pr.new/@prisma-next/contract-authoring@1042

@prisma-next/ids

npm i https://pkg.pr.new/@prisma-next/ids@1042

@prisma-next/psl-parser

npm i https://pkg.pr.new/@prisma-next/psl-parser@1042

@prisma-next/psl-printer

npm i https://pkg.pr.new/@prisma-next/psl-printer@1042

@prisma-next/cli

npm i https://pkg.pr.new/@prisma-next/cli@1042

@prisma-next/cli-telemetry

npm i https://pkg.pr.new/@prisma-next/cli-telemetry@1042

@prisma-next/config-loader

npm i https://pkg.pr.new/@prisma-next/config-loader@1042

@prisma-next/emitter

npm i https://pkg.pr.new/@prisma-next/emitter@1042

@prisma-next/language-server

npm i https://pkg.pr.new/@prisma-next/language-server@1042

@prisma-next/migration-tools

npm i https://pkg.pr.new/@prisma-next/migration-tools@1042

prisma-next

npm i https://pkg.pr.new/prisma-next@1042

@prisma-next/vite-plugin-contract-emit

npm i https://pkg.pr.new/@prisma-next/vite-plugin-contract-emit@1042

@prisma-next/mongo-codec

npm i https://pkg.pr.new/@prisma-next/mongo-codec@1042

@prisma-next/mongo-contract

npm i https://pkg.pr.new/@prisma-next/mongo-contract@1042

@prisma-next/mongo-value

npm i https://pkg.pr.new/@prisma-next/mongo-value@1042

@prisma-next/mongo-contract-psl

npm i https://pkg.pr.new/@prisma-next/mongo-contract-psl@1042

@prisma-next/mongo-contract-ts

npm i https://pkg.pr.new/@prisma-next/mongo-contract-ts@1042

@prisma-next/mongo-emitter

npm i https://pkg.pr.new/@prisma-next/mongo-emitter@1042

@prisma-next/mongo-schema-ir

npm i https://pkg.pr.new/@prisma-next/mongo-schema-ir@1042

@prisma-next/mongo-query-ast

npm i https://pkg.pr.new/@prisma-next/mongo-query-ast@1042

@prisma-next/mongo-orm

npm i https://pkg.pr.new/@prisma-next/mongo-orm@1042

@prisma-next/mongo-query-builder

npm i https://pkg.pr.new/@prisma-next/mongo-query-builder@1042

@prisma-next/mongo-lowering

npm i https://pkg.pr.new/@prisma-next/mongo-lowering@1042

@prisma-next/mongo-wire

npm i https://pkg.pr.new/@prisma-next/mongo-wire@1042

@prisma-next/sql-contract

npm i https://pkg.pr.new/@prisma-next/sql-contract@1042

@prisma-next/sql-errors

npm i https://pkg.pr.new/@prisma-next/sql-errors@1042

@prisma-next/sql-operations

npm i https://pkg.pr.new/@prisma-next/sql-operations@1042

@prisma-next/sql-schema-ir

npm i https://pkg.pr.new/@prisma-next/sql-schema-ir@1042

@prisma-next/sql-contract-psl

npm i https://pkg.pr.new/@prisma-next/sql-contract-psl@1042

@prisma-next/sql-contract-ts

npm i https://pkg.pr.new/@prisma-next/sql-contract-ts@1042

@prisma-next/sql-contract-emitter

npm i https://pkg.pr.new/@prisma-next/sql-contract-emitter@1042

@prisma-next/sql-lane-query-builder

npm i https://pkg.pr.new/@prisma-next/sql-lane-query-builder@1042

@prisma-next/sql-relational-core

npm i https://pkg.pr.new/@prisma-next/sql-relational-core@1042

@prisma-next/sql-builder

npm i https://pkg.pr.new/@prisma-next/sql-builder@1042

@prisma-next/target-postgres

npm i https://pkg.pr.new/@prisma-next/target-postgres@1042

@prisma-next/target-sqlite

npm i https://pkg.pr.new/@prisma-next/target-sqlite@1042

@prisma-next/adapter-postgres

npm i https://pkg.pr.new/@prisma-next/adapter-postgres@1042

@prisma-next/adapter-sqlite

npm i https://pkg.pr.new/@prisma-next/adapter-sqlite@1042

@prisma-next/driver-postgres

npm i https://pkg.pr.new/@prisma-next/driver-postgres@1042

@prisma-next/driver-sqlite

npm i https://pkg.pr.new/@prisma-next/driver-sqlite@1042

commit: 0d1102e

@SevInf
SevInf force-pushed the port-all-tests branch 10 times, most recently from 542df44 to 0d1102e Compare July 27, 2026 11:01
…s, issue regressions (229 accounted)

Second porting wave for the port-all-tests project, +229 checklist boxes accounted (488 → 717).

Ported & passing:
- mongo composites/list + composites/object (withMongoPort): create/createMany/delete/deleteMany/findFirst/findMany/update/upsert
- relationMode foreignKeys referential-action matrices: 1-to-1, 1-to-n, m-to-n (Cascade/NoAction/Restrict/SetNull; @Map + nomap), plus 17255 same/mixed-action disconnect
- issue regressions: 5952 decimal, 14954 date, 21631 batching-in-tx (Promise.all forms), 29174 jsonb, 13089 dollar-in-search (mongo)

Ported & failing (test.fails, faithful gap):
- 29267 Uint8Array-in-JSON serialization; required-composite null; implicit default onUpdate (NoAction vs Prisma Cascade)
- relation-mode-gh-m-to-n @Map variants: prisma-next rejects the mapped join-table auto-index name (>54-char prefix limit, #1047); Prisma truncates/hashes. Tracked as it.fails that flips green when fixed.

Non-portable (recorded per-test in non-ported/):
- relationLoadStrategy, relationMode=prisma emulation, implicit embedded mongo m2m, array-batch $transaction([...]), embedded-subfield select / composite where operators / read-side aggregate+count in mongo ORM

Built against current main: fixtures emitted with the new indexes[].unique contract shape (#1047); count-only ORM terminals renamed to createAndCount/updateAndCount/deleteAndCount (#1044).

Corpus: 69 files, 476 passed | 52 expected-fail, typecheck + lint clean. failing.md matches the test.fails markers; non-ported ledgers mirror functional/<suite>/. All dispositions reviewer-gated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Serhii Tatarintsev <tatarintsev@prisma.io>
@SevInf
SevInf merged commit 4e51fef into main Jul 27, 2026
9 of 10 checks passed
@SevInf
SevInf deleted the port-all-tests branch July 27, 2026 13:14
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.

1 participant