-
-
Notifications
You must be signed in to change notification settings - Fork 757
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
Refactored src/components/ProfileDropdown/ from Jest to Vitest #2922
Refactored src/components/ProfileDropdown/ from Jest to Vitest #2922
Conversation
WalkthroughThe pull request focuses on refactoring the test suite 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 (1)
src/components/ProfileDropdown/ProfileDropdown.spec.tsx (1)
75-75
: Duplicate afterEach blocks detected.
Both afterEach calls invokevi.clearAllMocks()
andlocalStorage.clear()
, which can be merged to avoid potential confusion or maintenance overhead. Consider consolidating them into a single afterEach block if there's no functional need for duplication.-afterEach(() => { - vi.clearAllMocks(); - localStorage.clear(); -}); -afterEach(() => { - vi.clearAllMocks(); - localStorage.clear(); -}); +afterEach(() => { + vi.clearAllMocks(); + localStorage.clear(); +});Also applies to: 79-79
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
src/components/ProfileDropdown/ProfileDropdown.spec.tsx
(4 hunks)
🧰 Additional context used
📓 Learnings (2)
📓 Common learnings
Learnt from: bitbard3
PR: PalisadoesFoundation/talawa-admin#2588
File: src/components/ChangeLanguageDropdown/ChangeLanguageDropdown.spec.tsx:145-155
Timestamp: 2024-12-02T04:20:11.745Z
Learning: In PRs focused solely on refactoring test cases from Jest to Vitest, avoid suggesting optimizations or changes outside the migration scope.
src/components/ProfileDropdown/ProfileDropdown.spec.tsx (1)
Learnt from: bitbard3
PR: PalisadoesFoundation/talawa-admin#2588
File: src/components/ChangeLanguageDropdown/ChangeLanguageDropdown.spec.tsx:145-155
Timestamp: 2024-12-02T04:20:11.745Z
Learning: In PRs focused solely on refactoring test cases from Jest to Vitest, avoid suggesting optimizations or changes outside the migration scope.
🔇 Additional comments (13)
src/components/ProfileDropdown/ProfileDropdown.spec.tsx (13)
2-2
: Looks good: Implementation aligns with Vitest imports.
This import from @testing-library/react
is essential for asynchronous operations and DOM querying in the new testing environment.
12-12
: Properly switched from Jest to Vitest.
Using vi
from vitest
is the recommended approach for mocking when refactoring test cases from Jest to Vitest.
15-15
: Local storage usage is consistent.
Retrieving setItem
directly from the custom hook is convenient and keeps test setup straightforward.
16-16
: Valid approach to mock navigation.
Defining mockNavigate
with vi.fn()
ensures we properly track route transitions.
18-25
: Correctly mocking react-router-dom
.
Spreading in the actual module and overriding useNavigate
is a standard pattern for controlling navigation in tests.
53-59
: Good mock for react-toastify.
Replacing the Jest mock with Vitest's vi.mock
approach is correct for ensuring consistent behavior across all toast calls.
145-147
: Clear test setup for user roles.
Ensuring SuperAdmin
is false and AdminFor
is empty sets up a clean baseline for member testing.
151-153
: i18n wrapping is correct.
Wrapping the component with the I18nextProvider
is essential for verifying localized strings in tests.
162-164
: Asynchronous click handling is correct.
Using act
around userEvent.click
ensures that all effects and state updates occur before assertions.
166-167
: Verifies navigation to /user/settings.
This test confirms that non-admin users are directed to the correct route.
170-214
: Error revoking refresh token is handled properly.
The test ensures the console error is logged, improving coverage for the negative path.
217-239
: Validates user navigation path again.
This double-check ensures no regressions in user flow when repeated with different localStorage states.
241-263
: Correct route verification for admins.
The test covers the scenario for admin users navigating to '/member/:userID'
.
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## develop-postgres #2922 +/- ##
=====================================================
+ Coverage 58.52% 88.00% +29.48%
=====================================================
Files 299 316 +17
Lines 7414 8265 +851
Branches 1621 1810 +189
=====================================================
+ Hits 4339 7274 +2935
+ Misses 2828 780 -2048
+ Partials 247 211 -36 ☔ View full report in Codecov by Sentry. |
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.
Thanks for adding the extra test cases
13f16b9
into
PalisadoesFoundation:develop-postgres
What kind of change does this PR introduce?
Refactoring & Testing
Issue Number:
Fixes #2819
Did you add tests for your changes?
Yes
Snapshots/Videos:
If relevant, did you update the documentation?
No
Summary
Migrated ProfileDropdown.test.tsx to ProfileDropdown.spec.tsx (i.e. from jest to vitest), and added new tests to ensure 100% coverage.
Does this PR introduce a breaking change?
No
Other information
N/A
Have you read the contributing guide?
Yes
Summary by CodeRabbit
ProfileDropdown
component with improved error handling and navigation checks.