test: add comprehensive HomePage test suite and fix unreachable WebSocket branch#219
Merged
its-me-abhishek merged 1 commit intoCCExtractor:mainfrom Nov 25, 2025
Conversation
…cket branch
- Implement 25+ unit tests covering:
• Task fetching logic (success, error, loading)
• WebSocket behaviors (success, failure, malformed JSON, unknown job)
• Toast notifications for all job types
• Component rendering and prop passing
• Onboarding tour flow:
– first-time users
– already seen
– skip button behavior
– timeout cleanup
– multiple render guard
- Improve overall test coverage to ~90%+ (statements, branches, funcs)
- Fix unreachable WebSocket success-branch:
• Code previously checked `data.status === 'success'` twice
• The outer `if` made the inner `else if (data.status === 'success')` unreachable
• Refactored logic so job-based toast branches always execute under the main success block
- Fix SSR guard:
• Replaced direct `typeof window === 'undefined'` with an Istanbul-ignored guard
• Prevents false negatives in coverage reports
- Organize tests using nested `describe` blocks
- Clean up mocks, remove commented code, and standardize formatting
ShivaGupta-14
added a commit
to ShivaGupta-14/ccsync
that referenced
this pull request
Dec 25, 2025
…cket branch (CCExtractor#219) - Implement 25+ unit tests covering: • Task fetching logic (success, error, loading) • WebSocket behaviors (success, failure, malformed JSON, unknown job) • Toast notifications for all job types • Component rendering and prop passing • Onboarding tour flow: – first-time users – already seen – skip button behavior – timeout cleanup – multiple render guard - Improve overall test coverage to ~90%+ (statements, branches, funcs) - Fix unreachable WebSocket success-branch: • Code previously checked `data.status === 'success'` twice • The outer `if` made the inner `else if (data.status === 'success')` unreachable • Refactored logic so job-based toast branches always execute under the main success block - Fix SSR guard: • Replaced direct `typeof window === 'undefined'` with an Istanbul-ignored guard • Prevents false negatives in coverage reports - Organize tests using nested `describe` blocks - Clean up mocks, remove commented code, and standardize formatting
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
HomePage Test Coverage & Stability Improvements
Description
This PR significantly improves the reliability and observability of the
HomePageby expanding the Jest test suite, fixing unreachable logic, hardening WebSocket behavior, and resolving an SSR-related branch coverage issue.Added 30+ unit tests covering:
Improved overall test coverage to ~90%+ (statements, branches, and functions)
Fix unreachable WebSocket success-branch:
data.status === 'success'twiceelse if (data.status === 'success')unreachableFixed HomePage SSR bug:
typeof window === 'undefined'checks with an SSR-safe ignored helperAdded clearer test organization using nested
describeblocksCleaned up mocks and standardized formatting for better long-term maintainability
Fixes: #191
Checklist
npx prettier --write .(for formatting)gofmt -w .(for Go backend)npm test(for JS/TS testing)Additional Notes
Screenshots
Before:
After: