-
-
Couldn't load subscription status.
- Fork 126
fix: createManyAndReturn doesn't work for polymorphic models
#1590
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughWalkthroughRecent updates to the Changes
Assessment against linked issues
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (5)
- packages/runtime/src/enhancements/delegate.ts (1 hunks)
- packages/runtime/src/enhancements/policy/handler.ts (1 hunks)
- packages/runtime/src/enhancements/proxy.ts (2 hunks)
- tests/integration/tests/enhancements/with-delegate/enhanced-client.test.ts (2 hunks)
- tests/regression/tests/issue-1576.test.ts (1 hunks)
Additional comments not posted (14)
tests/regression/tests/issue-1576.test.ts (1)
1-63: Well-structured regression test case.The test case is comprehensive and ensures that the
createManyAndReturnfunction works correctly for polymorphic models. It covers the creation ofGoldProfileandGoldIteminstances and verifies the expected results.packages/runtime/src/enhancements/proxy.ts (2)
38-38: Interface updated correctly.The
createManyAndReturnmethod has been added to thePrismaProxyHandlerinterface with the specified signature.
127-127: Method implementation is consistent.The
createManyAndReturnmethod has been implemented in theDefaultPrismaProxyHandlerclass using a deferred promise. The implementation is consistent with the existing methods in the class.packages/runtime/src/enhancements/delegate.ts (2)
374-374: Method signature added correctly.The
createManyAndReturnmethod signature has been added to theDelegateProxyHandlerclass.
375-409: Thorough method implementation.The
createManyAndReturnmethod implementation includes necessary validation checks and uses a transaction to handle the creation of multiple instances. The method ensures that the operation is performed correctly for polymorphic models.tests/integration/tests/enhancements/with-delegate/enhanced-client.test.ts (3)
132-145: LGTM!The test case for
createManyAndReturnmethod correctly verifies the creation of a singleratedVideoinstance and checks the returned array for expected properties.
157-169: LGTM!The test case for
createManyAndReturnmethod correctly verifies the creation of multipleratedVideoinstances and checks the returned array for expected properties and selected fields.
187-187: LGTM!The test case for
createManymethod correctly verifies the creation of multipleuserinstances with polymorphic relations and checks the returned result for the expected count.packages/runtime/src/enhancements/policy/handler.ts (6)
464-466: Validate arguments before proceeding.Ensure that the
argsandargs.dataare validated before proceeding with the method logic.
Line range hint
468-470: Ensure safe cloning of arguments.The
argsshould be safely cloned to avoid unintended side effects.
Line range hint
472-474: Check for post-create validation.The
validateCreateInputmethod is used to determine if post-create validation is needed.
Line range hint
476-479: Handle direct creation.If no post-create validation is needed, handle the direct creation of entities.
Line range hint
481-486: Handle creation with transaction.If post-create validation is needed, handle the creation within a transaction and perform post-create checks.
Line range hint
488-492: Handle read-back errors.Ensure that any errors during the read-back process are properly handled and thrown.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (1)
- tests/integration/tests/enhancements/with-delegate/enhanced-client.test.ts (1 hunks)
Files skipped from review as they are similar to previous changes (1)
- tests/integration/tests/enhancements/with-delegate/enhanced-client.test.ts
Fixes #1576