-
Notifications
You must be signed in to change notification settings - Fork 3
fix: restore data visualization test coverage (#296) #347
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
Conversation
Implement Phase 3 of test isolation - restore coverage for chart and data visualization components with bulletproof testing patterns. ## Changes - Added activity-chart tests (5 passing) - Added contribution-graph tests (7 passing) - Added stats-dashboard tests (7 passing) - Added leaderboard tests (9 passing) ## Test Strategy - Pure function tests only (no async/await) - No DOM dependencies or complex mocking - Focus on data transformations and business logic - All tests complete in under 1 second (777ms total) Closes #296 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
✅ Deploy Preview for contributor-info ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
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.
cubic analysis
No issues found across 4 files. Review in cubic
✅ Bundle Size AnalysisAll chunks within limits See the workflow summary for detailed bundle sizes. |
🚀 Deployed on https://6895c594f4cbc921fb98b431--designcont.netlify.app |
🚀 Performance Report📊 Lighthouse Audit✅ Lighthouse tests completed for: 📦 Bundle AnalysisPerformance budget checks completed. See workflow summary for details. 🎯 Core Web Vitals Targets
📈 Next Steps
|
## [2.0.0](v1.11.0...v2.0.0) (2025-08-12) ### ⚠ BREAKING CHANGES * critical production deployment and security issues (#259) ### 🚀 Features * Add comprehensive analytics dashboard to /admin and consolidate admin features ([#412](#412)) ([8958bed](8958bed)), closes [#409](#409) * add comprehensive bundle analysis tools and reports ([#365](#365)) ([9ad8556](9ad8556)) * Add comprehensive integration tests for progressive data loading ([#335](#335)) ([cd51631](cd51631)) * Add comprehensive test coverage for progressive data loading hooks ([#318](#318)) ([fad75cb](fad75cb)), closes [#285](#285) * Add dynamic XML sitemap generation with priority scores ([#313](#313)) ([dadeb37](dadeb37)), closes [#277](#277) * add FAQ sections to project pages ([#331](#331)) ([181ae84](181ae84)), closes [#270](#270) [#5747](https://github.com/bdougie/contributor.info/issues/5747) [#5747](https://github.com/bdougie/contributor.info/issues/5747) [#5747](https://github.com/bdougie/contributor.info/issues/5747) * Add GitHub Actions similarity service ([#344](#344)) ([1949583](1949583)), closes [#342](#342) * add more liberal webhook handling for issues and PRs ([3bc787e](3bc787e)) * Add organization page with top repositories ([#307](#307)) ([dde8696](dde8696)) * Add similarity comments to PR opened events ([#308](#308)) ([8002426](8002426)), closes [#262](#262) * add uPlot base wrapper component (Chart Migration Step 1) ([#378](#378)) ([904c8a5](904c8a5)), closes [#359](#359) [#370](#370) * automated tracked repository updates, database docs, and chart improvements ([#380](#380)) ([8b3f0eb](8b3f0eb)), closes [#371](#371) * complete Phase 5 test suite validation and cleanup ([#298](#298)) ([#348](#348)) ([af6f168](af6f168)) * configure AI crawler access with robots.txt and llms.txt ([#280](#280)) ([fca7763](fca7763)), closes [#268](#268) * Core Web Vitals monitoring and validation (Phase 3) ([#310](#310)) ([806bf7d](806bf7d)), closes [#283](#283) [#266](#266) [#283](#283) [#283](#283) * create bulletproof tests without mocks for UI components ([#345](#345)) ([ee0d2ef](ee0d2ef)) * enhance treemap with language-based PR visualization and interactive navigation ([#384](#384)) ([973dc2b](973dc2b)), closes [#372](#372) * implement Chart Migration Step 2 - Core Chart Components ([#379](#379)) ([1c6c211](1c6c211)), closes [#371](#371) * implement comprehensive error boundaries for data loading failures ([#320](#320)) ([d3a95bb](d3a95bb)), closes [#318](#318) [#286](#286) * implement content freshness signals for improved LLM citations ([#389](#389)) ([65e6276](65e6276)), closes [#273](#273) [#273](#273) * implement Core Web Vitals optimizations ([#284](#284)) ([9c6e5e2](9c6e5e2)) * Implement Core Web Vitals performance optimizations ([#309](#309)) ([27b93bc](27b93bc)), closes [#266](#266) [#235](#235) * implement data loading optimizations phase 2 ([#282](#282)) ([#290](#290)) ([becb7ec](becb7ec)) * implement embeddable widgets and citation system ([#324](#324)) ([671af82](671af82)), closes [#322](#322) [#322](#322) * implement mobile breadcrumb navigation with sticky positioning ([#322](#322)) ([009b0b8](009b0b8)), closes [#319](#319) * implement offline mode support ([#366](#366)) ([913b1ff](913b1ff)), closes [#300](#300) [#356](#356) * implement Phase 4 integration tests for complex features ([#346](#346)) ([10c3b1c](10c3b1c)), closes [#297](#297) * implement request deduplication for concurrent data fetches ([#325](#325)) ([f34aea9](f34aea9)), closes [#287](#287) * implement retry logic with exponential backoff for failed requests ([#334](#334)) ([8420740](8420740)), closes [#288](#288) * implement semantic HTML structure for better LLM comprehension ([#315](#315)) ([9a066be](9a066be)), closes [#269](#269) * implement WebP image optimization with fallbacks ([#323](#323)) ([4395740](4395740)) * improve light mode contrast and make insights sidebar black ([#410](#410)) ([5e184c6](5e184c6)), closes [#F8F9](https://github.com/bdougie/contributor.info/issues/F8F9) [#F8F9](https://github.com/bdougie/contributor.info/issues/F8F9) [#F1F3F5](https://github.com/bdougie/contributor.info/issues/F1F3F5) * LLM citation tracking system & web vitals fix ([#332](#332)) ([31617da](31617da)), closes [#328](#328) [#275](#275) * migrate distribution charts to uPlot ([#373](#373)) ([#382](#382)) ([4118a61](4118a61)) * migrate GitHub webhook handler from Netlify to Fly.io ([#424](#424)) ([c535034](c535034)), closes [#423](#423) [#411](#411) * migrate social cards from Netlify to Fly.io ([#423](#423)) ([ce1b3aa](ce1b3aa)), closes [#402](#402) * optimize 404 page for user retention ([#317](#317)) ([a6812c5](a6812c5)), closes [#278](#278) ### 🐛 Bug Fixes * Add claude security review & gemini ([#341](#341)) ([a319a69](a319a69)) * Add comprehensive schema.org markup for contributor.info ([#306](#306)) ([9a755a4](9a755a4)), closes [#267](#267) * add proper MIME types and cache headers for JavaScript modules ([236516a](236516a)) * add repository_id column to comments table ([#425](#425)) ([12f6e61](12f6e61)) * allow claude npm install ([d62f471](d62f471)) * claude.yml ([#369](#369)) ([ed17886](ed17886)) * Core Web Vitals optimizations and CLS fixes ([#285](#285)) ([#319](#319)) ([081aa3b](081aa3b)) * correct JavaScript MIME types and add performance optimizations ([#415](#415)) ([cc55b6c](cc55b6c)) * critical production deployment and security issues ([#259](#259)) ([b280736](b280736)) * disable service worker to resolve stale cache issues ([3ec3574](3ec3574)) * enable manual major/minor/patch releases in workflow ([#426](#426)) ([e849f10](e849f10)) * enable skipped test for repository confidence zero stars/forks edge case ([#364](#364)) ([6a25908](6a25908)), closes [#338](#338) * improve Request Priority button visibility in light mode ([#343](#343)) ([82ba0bb](82ba0bb)) * improve UI responsiveness by removing breadcrumb line and fixing layout ([#305](#305)) ([98191ea](98191ea)) * only handle 'labeled' events, not 'unlabeled' ([e2a2a8e](e2a2a8e)) * release.yml to publish changelog ([e082c87](e082c87)) * remove SECURITY DEFINER from database views for RLS compliance ([#260](#260)) ([5d316e9](5d316e9)) * remove unused vite packages causing Netlify build failures ([#413](#413)) ([c7a3a3a](c7a3a3a)), closes [#388](#388) * remove vite-bundle-analyzer to resolve Netlify build failure ([#385](#385)) ([583175d](583175d)), closes [#365](#365) [#365](#365) * repository tracking with local Inngest development ([#407](#407)) ([#420](#420)) ([f7ac446](f7ac446)) * resolve 406 error and implement comprehensive repository sync ([#261](#261)) ([3bc860a](3bc860a)) * resolve 406 errors when tracking new repositories ([#377](#377)) ([81ed7be](81ed7be)), closes [#375](#375) [#375](#375) * resolve chunk loading issues from PR [#319](#319) ([aa8c495](aa8c495)) * resolve performance regression and re-enable tree shaking ([#349](#349)) ([#353](#353)) ([33d933c](33d933c)), closes [#333](#333) * resolve React initialization errors by consolidating vendor bundle ([#354](#354)) ([fe066f0](fe066f0)) * resolve test hanging by excluding mock-dependent tests ([#294](#294)) ([befef78](befef78)), closes [#293](#293) [#299](#299) [#299](#299) [#299](#299) [#299](#299) [#299](#299) [#299](#299) [#299](#299) * restore data visualization test coverage ([#296](#296)) ([#347](#347)) ([8c362fe](8c362fe)) * revert broken manual release trigger from PR [#426](#426) ([#427](#427)) ([a9eaac9](a9eaac9)) * standardize error handling patterns across Inngest functions ([#422](#422)) ([5e075f6](5e075f6)), closes [#226](#226) * Update claude.yml ([b496461](b496461)) * update skeleton loaders to match actual design ([#327](#327)) ([d0cd962](d0cd962)) * webhook handler not posting comments - comprehensive fix ([0da8c3e](0da8c3e)) * webhook should use repository info from payload, not database ([#312](#312)) ([024d388](024d388)), closes [#310](#310) * widget xss vulnerability ([#329](#329)) ([9e12054](9e12054)), closes [#322](#322) [#322](#322) ### ⚡ Performance Improvements * add HTTP/2 Server Push and font optimization for Core Web Vitals ([#417](#417)) ([1182ff4](1182ff4)) * improve FCP and LCP % through mild code splitting ([#416](#416)) ([12ab333](12ab333)), closes [#20202](https://github.com/bdougie/contributor.info/issues/20202) ### ♻️ Code Refactoring * Replace automatic discovery with explicit user-controlled tracking ([#405](#405)) ([187a7fd](187a7fd)), closes [#403](#403) [#403](#403) [#404](#404) * Update sitemap workflow for deprecated ping endpoints ([#316](#316)) ([c43456d](c43456d)) ### 📚 Documentation * add icon library audit document ([#368](#368)) ([af9f53d](af9f53d)), closes [#358](#358) [#358](#358) * add safe FCP/LCP optimization strategies ([#414](#414)) ([fb89e6c](fb89e6c)) * clean up user documentation and improve accessibility ([#233](#233)) ([0b271d4](0b271d4)), closes [#407](#407) [#407](#407) ### 🔧 Maintenance * update tracked repositories list [skip ci] ([0cba7d6](0cba7d6))
🎉 This PR is included in version 2.0.0 🎉 |
Implement Phase 3 of test isolation - restore coverage for chart and data visualization components with bulletproof testing patterns. ## Changes - Added activity-chart tests (5 passing) - Added contribution-graph tests (7 passing) - Added stats-dashboard tests (7 passing) - Added leaderboard tests (9 passing) ## Test Strategy - Pure function tests only (no async/await) - No DOM dependencies or complex mocking - Focus on data transformations and business logic - All tests complete in under 1 second (777ms total) Closes #296 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]>
## [2.0.0](v1.11.0...v2.0.0) (2025-08-12) ### ⚠ BREAKING CHANGES * critical production deployment and security issues (#259) ### 🚀 Features * Add comprehensive analytics dashboard to /admin and consolidate admin features ([#412](#412)) ([8958bed](8958bed)), closes [#409](#409) * add comprehensive bundle analysis tools and reports ([#365](#365)) ([9ad8556](9ad8556)) * Add comprehensive integration tests for progressive data loading ([#335](#335)) ([cd51631](cd51631)) * Add comprehensive test coverage for progressive data loading hooks ([#318](#318)) ([fad75cb](fad75cb)), closes [#285](#285) * Add dynamic XML sitemap generation with priority scores ([#313](#313)) ([dadeb37](dadeb37)), closes [#277](#277) * add FAQ sections to project pages ([#331](#331)) ([181ae84](181ae84)), closes [#270](#270) [#5747](https://github.com/bdougie/contributor.info/issues/5747) [#5747](https://github.com/bdougie/contributor.info/issues/5747) [#5747](https://github.com/bdougie/contributor.info/issues/5747) * Add GitHub Actions similarity service ([#344](#344)) ([1949583](1949583)), closes [#342](#342) * add more liberal webhook handling for issues and PRs ([3bc787e](3bc787e)) * Add organization page with top repositories ([#307](#307)) ([dde8696](dde8696)) * Add similarity comments to PR opened events ([#308](#308)) ([8002426](8002426)), closes [#262](#262) * add uPlot base wrapper component (Chart Migration Step 1) ([#378](#378)) ([904c8a5](904c8a5)), closes [#359](#359) [#370](#370) * automated tracked repository updates, database docs, and chart improvements ([#380](#380)) ([8b3f0eb](8b3f0eb)), closes [#371](#371) * complete Phase 5 test suite validation and cleanup ([#298](#298)) ([#348](#348)) ([af6f168](af6f168)) * configure AI crawler access with robots.txt and llms.txt ([#280](#280)) ([fca7763](fca7763)), closes [#268](#268) * Core Web Vitals monitoring and validation (Phase 3) ([#310](#310)) ([806bf7d](806bf7d)), closes [#283](#283) [#266](#266) [#283](#283) [#283](#283) * create bulletproof tests without mocks for UI components ([#345](#345)) ([ee0d2ef](ee0d2ef)) * enhance treemap with language-based PR visualization and interactive navigation ([#384](#384)) ([973dc2b](973dc2b)), closes [#372](#372) * implement Chart Migration Step 2 - Core Chart Components ([#379](#379)) ([1c6c211](1c6c211)), closes [#371](#371) * implement comprehensive error boundaries for data loading failures ([#320](#320)) ([d3a95bb](d3a95bb)), closes [#318](#318) [#286](#286) * implement content freshness signals for improved LLM citations ([#389](#389)) ([65e6276](65e6276)), closes [#273](#273) [#273](#273) * implement Core Web Vitals optimizations ([#284](#284)) ([9c6e5e2](9c6e5e2)) * Implement Core Web Vitals performance optimizations ([#309](#309)) ([27b93bc](27b93bc)), closes [#266](#266) [#235](#235) * implement data loading optimizations phase 2 ([#282](#282)) ([#290](#290)) ([becb7ec](becb7ec)) * implement embeddable widgets and citation system ([#324](#324)) ([671af82](671af82)), closes [#322](#322) [#322](#322) * implement mobile breadcrumb navigation with sticky positioning ([#322](#322)) ([009b0b8](009b0b8)), closes [#319](#319) * implement offline mode support ([#366](#366)) ([913b1ff](913b1ff)), closes [#300](#300) [#356](#356) * implement Phase 4 integration tests for complex features ([#346](#346)) ([10c3b1c](10c3b1c)), closes [#297](#297) * implement request deduplication for concurrent data fetches ([#325](#325)) ([f34aea9](f34aea9)), closes [#287](#287) * implement retry logic with exponential backoff for failed requests ([#334](#334)) ([8420740](8420740)), closes [#288](#288) * implement semantic HTML structure for better LLM comprehension ([#315](#315)) ([9a066be](9a066be)), closes [#269](#269) * implement WebP image optimization with fallbacks ([#323](#323)) ([4395740](4395740)) * improve light mode contrast and make insights sidebar black ([#410](#410)) ([5e184c6](5e184c6)), closes [#F8F9](https://github.com/bdougie/contributor.info/issues/F8F9) [#F8F9](https://github.com/bdougie/contributor.info/issues/F8F9) [#F1F3F5](https://github.com/bdougie/contributor.info/issues/F1F3F5) * LLM citation tracking system & web vitals fix ([#332](#332)) ([31617da](31617da)), closes [#328](#328) [#275](#275) * migrate distribution charts to uPlot ([#373](#373)) ([#382](#382)) ([4118a61](4118a61)) * migrate GitHub webhook handler from Netlify to Fly.io ([#424](#424)) ([c535034](c535034)), closes [#423](#423) [#411](#411) * migrate social cards from Netlify to Fly.io ([#423](#423)) ([ce1b3aa](ce1b3aa)), closes [#402](#402) * optimize 404 page for user retention ([#317](#317)) ([a6812c5](a6812c5)), closes [#278](#278) ### 🐛 Bug Fixes * Add claude security review & gemini ([#341](#341)) ([a319a69](a319a69)) * Add comprehensive schema.org markup for contributor.info ([#306](#306)) ([9a755a4](9a755a4)), closes [#267](#267) * add proper MIME types and cache headers for JavaScript modules ([236516a](236516a)) * add repository_id column to comments table ([#425](#425)) ([12f6e61](12f6e61)) * allow claude npm install ([d62f471](d62f471)) * claude.yml ([#369](#369)) ([ed17886](ed17886)) * Core Web Vitals optimizations and CLS fixes ([#285](#285)) ([#319](#319)) ([081aa3b](081aa3b)) * correct JavaScript MIME types and add performance optimizations ([#415](#415)) ([cc55b6c](cc55b6c)) * critical production deployment and security issues ([#259](#259)) ([b280736](b280736)) * disable service worker to resolve stale cache issues ([3ec3574](3ec3574)) * enable manual major/minor/patch releases in workflow ([#426](#426)) ([e849f10](e849f10)) * enable skipped test for repository confidence zero stars/forks edge case ([#364](#364)) ([6a25908](6a25908)), closes [#338](#338) * improve Request Priority button visibility in light mode ([#343](#343)) ([82ba0bb](82ba0bb)) * improve UI responsiveness by removing breadcrumb line and fixing layout ([#305](#305)) ([98191ea](98191ea)) * only handle 'labeled' events, not 'unlabeled' ([e2a2a8e](e2a2a8e)) * release.yml to publish changelog ([e082c87](e082c87)) * remove SECURITY DEFINER from database views for RLS compliance ([#260](#260)) ([5d316e9](5d316e9)) * remove unused vite packages causing Netlify build failures ([#413](#413)) ([c7a3a3a](c7a3a3a)), closes [#388](#388) * remove vite-bundle-analyzer to resolve Netlify build failure ([#385](#385)) ([583175d](583175d)), closes [#365](#365) [#365](#365) * repository tracking with local Inngest development ([#407](#407)) ([#420](#420)) ([f7ac446](f7ac446)) * resolve 406 error and implement comprehensive repository sync ([#261](#261)) ([3bc860a](3bc860a)) * resolve 406 errors when tracking new repositories ([#377](#377)) ([81ed7be](81ed7be)), closes [#375](#375) [#375](#375) * resolve chunk loading issues from PR [#319](#319) ([aa8c495](aa8c495)) * resolve performance regression and re-enable tree shaking ([#349](#349)) ([#353](#353)) ([33d933c](33d933c)), closes [#333](#333) * resolve React initialization errors by consolidating vendor bundle ([#354](#354)) ([fe066f0](fe066f0)) * resolve test hanging by excluding mock-dependent tests ([#294](#294)) ([befef78](befef78)), closes [#293](#293) [#299](#299) [#299](#299) [#299](#299) [#299](#299) [#299](#299) [#299](#299) [#299](#299) * restore data visualization test coverage ([#296](#296)) ([#347](#347)) ([8c362fe](8c362fe)) * revert broken manual release trigger from PR [#426](#426) ([#427](#427)) ([a9eaac9](a9eaac9)) * standardize error handling patterns across Inngest functions ([#422](#422)) ([5e075f6](5e075f6)), closes [#226](#226) * Update claude.yml ([b496461](b496461)) * update skeleton loaders to match actual design ([#327](#327)) ([d0cd962](d0cd962)) * webhook handler not posting comments - comprehensive fix ([0da8c3e](0da8c3e)) * webhook should use repository info from payload, not database ([#312](#312)) ([024d388](024d388)), closes [#310](#310) * widget xss vulnerability ([#329](#329)) ([9e12054](9e12054)), closes [#322](#322) [#322](#322) ### ⚡ Performance Improvements * add HTTP/2 Server Push and font optimization for Core Web Vitals ([#417](#417)) ([1182ff4](1182ff4)) * improve FCP and LCP % through mild code splitting ([#416](#416)) ([12ab333](12ab333)), closes [#20202](https://github.com/bdougie/contributor.info/issues/20202) ### ♻️ Code Refactoring * Replace automatic discovery with explicit user-controlled tracking ([#405](#405)) ([187a7fd](187a7fd)), closes [#403](#403) [#403](#403) [#404](#404) * Update sitemap workflow for deprecated ping endpoints ([#316](#316)) ([c43456d](c43456d)) ### 📚 Documentation * add icon library audit document ([#368](#368)) ([af9f53d](af9f53d)), closes [#358](#358) [#358](#358) * add safe FCP/LCP optimization strategies ([#414](#414)) ([fb89e6c](fb89e6c)) * clean up user documentation and improve accessibility ([#233](#233)) ([0b271d4](0b271d4)), closes [#407](#407) [#407](#407) ### 🔧 Maintenance * update tracked repositories list [skip ci] ([0cba7d6](0cba7d6))
Implement Phase 3 of test isolation - restore coverage for chart and data visualization components with bulletproof testing patterns.
Changes
Test Strategy
Closes #296
🤖 Generated with Claude Code