Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

bdougie
Copy link
Owner

@bdougie bdougie commented Aug 8, 2025

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

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]>
Copy link

netlify bot commented Aug 8, 2025

Deploy Preview for contributor-info ready!

Name Link
🔨 Latest commit 156a053
🔍 Latest deploy log https://app.netlify.com/projects/contributor-info/deploys/6895c53fd5bebf0008510517
😎 Deploy Preview https://deploy-preview-347--contributor-info.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 59 (🔴 down 11 from production)
Accessibility: 100 (no change from production)
Best Practices: 92 (no change from production)
SEO: 100 (no change from production)
PWA: 90 (no change from production)
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions github-actions bot added frontend components Changes to React components testing Changes to tests and testing infrastructure labels Aug 8, 2025
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a 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

Copy link
Contributor

github-actions bot commented Aug 8, 2025

✅ Bundle Size Analysis

All chunks within limits

See the workflow summary for detailed bundle sizes.

Copy link
Contributor

github-actions bot commented Aug 8, 2025

@github-actions github-actions bot temporarily deployed to pull request August 8, 2025 09:38 Inactive
Copy link
Contributor

github-actions bot commented Aug 8, 2025

🚀 Performance Report

📊 Lighthouse Audit

✅ Lighthouse tests completed for:

📦 Bundle Analysis

Performance budget checks completed. See workflow summary for details.

🎯 Core Web Vitals Targets

  • LCP: < 2.5s (Largest Contentful Paint)
  • INP: < 200ms (Interaction to Next Paint)
  • CLS: < 0.1 (Cumulative Layout Shift)
  • FCP: < 1.8s (First Contentful Paint)

📈 Next Steps

  • Review the Lighthouse reports in the workflow artifacts
  • Check the workflow summary for detailed metrics
  • Address any performance warnings or errors

View Full Workflow Results

@bdougie bdougie merged commit 8c362fe into main Aug 8, 2025
36 checks passed
@bdougie bdougie deleted the fix/issue-296-data-visualization-tests branch August 8, 2025 09:40
github-actions bot pushed a commit that referenced this pull request Aug 12, 2025
## [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))
Copy link
Contributor

🎉 This PR is included in version 2.0.0 🎉

bdougie added a commit that referenced this pull request Sep 8, 2025
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]>
bdougie pushed a commit that referenced this pull request Sep 8, 2025
## [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))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
components Changes to React components frontend released testing Changes to tests and testing infrastructure
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Phase 3: Data Visualization Test Isolation
1 participant