-
-
Notifications
You must be signed in to change notification settings - Fork 90
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
fix: createManyAndReturn
doesn't work for polymorphic models
#1590
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
createManyAndReturn
function works correctly for polymorphic models. It covers the creation ofGoldProfile
andGoldItem
instances and verifies the expected results.packages/runtime/src/enhancements/proxy.ts (2)
38-38
: Interface updated correctly.The
createManyAndReturn
method has been added to thePrismaProxyHandler
interface with the specified signature.
127-127
: Method implementation is consistent.The
createManyAndReturn
method has been implemented in theDefaultPrismaProxyHandler
class 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
createManyAndReturn
method signature has been added to theDelegateProxyHandler
class.
375-409
: Thorough method implementation.The
createManyAndReturn
method 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
createManyAndReturn
method correctly verifies the creation of a singleratedVideo
instance and checks the returned array for expected properties.
157-169
: LGTM!The test case for
createManyAndReturn
method correctly verifies the creation of multipleratedVideo
instances and checks the returned array for expected properties and selected fields.
187-187
: LGTM!The test case for
createMany
method correctly verifies the creation of multipleuser
instances 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
args
andargs.data
are validated before proceeding with the method logic.
Line range hint
468-470
: Ensure safe cloning of arguments.The
args
should be safely cloned to avoid unintended side effects.
Line range hint
472-474
: Check for post-create validation.The
validateCreateInput
method 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