-
-
Notifications
You must be signed in to change notification settings - Fork 811
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
Improve Code Coverage in src/screens/UserPortal/Settings/Settings.tsx #3189
Improve Code Coverage in src/screens/UserPortal/Settings/Settings.tsx #3189
Conversation
WalkthroughThe pull request focuses on improving code coverage and test scenarios for the Changes
Assessment against linked issues
Possibly related issues
Possibly related PRs
Suggested reviewers
Poem
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 using PR comments)
Other keywords and placeholders
Documentation and Community
|
Our Pull Request Approval ProcessThanks for contributing! Testing Your CodeRemember, your PRs won't be reviewed until these criteria are met:
Our policies make our code better. ReviewersDo not assign reviewers. Our Queue Monitors will review your PR and assign them.
Reviewing Your CodeYour reviewer(s) will have the following roles:
CONTRIBUTING.mdRead our CONTRIBUTING.md file. Most importantly:
Other
|
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
🧹 Nitpick comments (3)
src/screens/UserPortal/Settings/Settings.spec.tsx (3)
127-185
: Consider improving mock data organization and type safety.While the mock data is comprehensive, consider these improvements:
- Move test data to a separate fixture file to improve maintainability
- Add TypeScript interfaces for the mock data structure
- Make the error message more specific about phone number requirements
Example structure:
// src/screens/UserPortal/Settings/__fixtures__/mockData.ts interface UserProfileMock { firstName: string; lastName: string; // ... other fields } export const updateUserMock: UserProfileMock = { firstName: 'John', // ... other fields };
524-559
: Enhance test coverage for successful profile update.While the test verifies basic functionality, consider these improvements:
- Test multiple field updates instead of just lastName
- Verify the exact payload sent to the mutation
- Add assertions for the UI state during the update (e.g., button disabled)
Example enhancement:
it('should update user profile successfully', async () => { const toastSuccessSpy = vi.spyOn(toast, 'success'); render(/* ... */); await wait(); // Update multiple fields const lastNameInput = screen.getByTestId('inputLastName'); const phoneInput = screen.getByTestId('inputPhoneNumber'); const saveButton = screen.getByTestId('updateUserBtn'); // Verify initial state expect(saveButton).not.toBeDisabled(); // Update fields await act(async () => { fireEvent.change(lastNameInput, { target: { value: 'randomUpdated' } }); fireEvent.change(phoneInput, { target: { value: '+1987654321' } }); }); // Submit and verify await act(async () => { expect(saveButton).toBeDisabled(); // Should be disabled during submission fireEvent.click(saveButton); }); await wait(); // Verify all updated fields expect(lastNameInput).toHaveValue('randomUpdated'); expect(phoneInput).toHaveValue('+1987654321'); expect(saveButton).not.toBeDisabled(); expect(toastSuccessSpy).toHaveBeenCalledWith('Profile updated Successfully'); });
561-598
: Improve error handling test assertions.The error handling test could be more robust:
- Verify the exact error message
- Use consistent wait times
- Add assertions for UI feedback during error state
Example enhancement:
it('should handle invalid phone number error correctly', async () => { render(/* ... */); await wait(); const lastNameInput = screen.getByTestId('inputLastName'); const phoneNumberInput = screen.getByTestId('inputPhoneNumber'); const saveButton = screen.getByTestId('updateUserBtn'); // Update fields await act(async () => { fireEvent.change(lastNameInput, { target: { value: 'Doe2' } }); fireEvent.change(phoneNumberInput, { target: { value: '4567890' } }); }); await wait(); // Submit and verify await act(async () => { expect(saveButton).not.toBeDisabled(); fireEvent.click(saveButton); }); await wait(); // Verify error handling expect(errorHandler).toHaveBeenCalledWith( expect.anything(), expect.objectContaining({ message: 'Please enter a valid phone number' }) ); expect(saveButton).not.toBeDisabled(); expect(phoneNumberInput).toHaveClass('error'); // Assuming error styling });
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
src/screens/UserPortal/Settings/Settings.spec.tsx
(3 hunks)src/screens/UserPortal/Settings/Settings.tsx
(0 hunks)
💤 Files with no reviewable changes (1)
- src/screens/UserPortal/Settings/Settings.tsx
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Test Application
🔇 Additional comments (1)
src/screens/UserPortal/Settings/Settings.spec.tsx (1)
15-28
: LGTM! Well-structured mock setup.The mock implementations for toast and errorHandler are clean, focused, and follow testing best practices.
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## develop-postgres #3189 +/- ##
=====================================================
+ Coverage 19.99% 89.78% +69.79%
=====================================================
Files 302 327 +25
Lines 7687 8491 +804
Branches 1677 1847 +170
=====================================================
+ Hits 1537 7624 +6087
+ Misses 6054 639 -5415
- Partials 96 228 +132 ☔ View full report in Codecov by Sentry. |
3d423b8
into
PalisadoesFoundation:develop-postgres
* prevented unnecessary page reload with complementary test * Update jest.config.js * Fixes #2986 - Multiple UI Updates (#3165) * UI fixes on organisation pages * Added TSDoc for Truncated Text * Added Debouncer * Update src/components/OrgListCard/OrgListCard.tsx Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Added code rabbit suggestions * Fixed test error --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * refactore src/screens/OrgList from jest to vitest (#3200) * Improved Code Coverage in src/components/Venues/VenueModal.tsx (#3203) * Improved Code Coverage in src/components/Venues/VenueModal.tsx * removed the ignore statements from VenueModal.tsx * Removed istanbul ignore lines. Code coverage remians 100% (#3207) * refactored src/screens/FundCampaignPledge from jest to vitest (#3208) * prettier formatting and disabled ts-specific rules for js in eslint (#3186) * Improve Code Coverage in src/screens/UserPortal/Settings/Settings.tsx (#3189) * Preventing Overflow of images in Advertisement and Venue Post modals (#3204) * improve code coverage of src/screens/EventManagement (#3149) * code coverage * jest global coverage decreased * global jest coverage * rename file problem solved * changes requested resolved * fix: update Chat section title to 'Chats' (#3216) * removed stale comment line * Revert "removed stale comment line" This reverts commit e0fa894. * removed stale comment line --------- Co-authored-by: Peter Harrison <[email protected]> Co-authored-by: Mehul Aggarwal <[email protected]> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Syed Ali Ul Hasan <[email protected]> Co-authored-by: harshk-89 <[email protected]> Co-authored-by: Amaan ali <[email protected]> Co-authored-by: Yugal Sadhwani <[email protected]> Co-authored-by: Pranav Nathe <[email protected]> Co-authored-by: prathmesh703 <[email protected]> Co-authored-by: Nivedita <[email protected]>
What kind of change does this PR introduce?
Improve Code Coverage
Issue Number:
Fixes #3043
Did you add tests for your changes?
Yes
Snapshots/Videos:
If relevant, did you update the documentation?
No
Summary
This PR improves code coverage in the src/screens/UserPortal/Settings/Settings.tsx
Does this PR introduce a breaking change?
No
Other information
Have you read the contributing guide?
Yes
Summary by CodeRabbit
Tests
Chores