✨ Quality: Fix synchronous error handling in AsyncBlock - #97
Conversation
- Wrap `promiseFn` call in a `try...catch` block to handle synchronous exceptions. - Add unit test to verify synchronous error handling and prevent regressions. - Ensure component correctly transitions to error state and calls `onError`. - Maintain synchronous initial call to avoid micro-task delays in tests.
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
💡 What: This change improves the robustness of the
AsyncBlockcomponent by ensuring it can handle cases where thepromiseFnprop throws an error synchronously instead of returning a rejected promise.🎯 Why: Synchronous errors in functions expected to return promises can cause components to crash if not explicitly caught. Standardizing this behavior ensures the component's error state is correctly triggered.
📊 Impact: Increases component stability and improves developer experience by providing a consistent error handling path for both synchronous and asynchronous failures.
✅ Verification: Added a new test case in
lib/components/AsyncBlock/index.test.tsxthat specifically throws a synchronous error and verifies that the component renders the error UI and invokes theonErrorcallback. All existing tests pass.PR created automatically by Jules for task 15361579710564944087 started by @galiprandi