Clear upsert promise when ending externally (#71) #72
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🐛 Bug Fix: Fix upsert not working after external end() call
Description
This pull request fixes a bug where calling
upsert()after ending the previous upsert instance externally viaMyCallable.end()fails to create a new instance.The issue occurred because the internal
$upsertPromisevariable was not being cleared whenend()was called externally, causing subsequentupsert()calls to attempt updating a non-existent instance instead of creating a new one.Root Cause
When an upsert instance is created, it stores the promise in
$upsertPromise. This variable is used to determine whether to create a new instance or update an existing one.The problem:
call.end()→$upsertPromiseis cleared ✅MyCallable.end()→$upsertPromisewas not cleared ❌This caused the next
upsert()call to:$upsertPromisestill existsSolution
Modified the
end()method to clear$upsertPromisewhen:$upsertPromiseChanges
react-call/src/createCallable/index.tsx- Clear$upsertPromiseinend()methodtests/src/upsert.test.tsx- Test case to reproduce and verify the fixAll tests now pass: ✅ 5 passed (including the new test case)
Related Issues
Fixes #71
Checklist
Notes for Reviewers