Jest coverage summary

Coverage HTML Report

Generated Oct 23, 2026, 9:57:15 AM

96.81% Lines
96.81% Statements
93.21% Functions
90.24% Branches

Needs attention

src/entry-server.jsx 0.00% lines
src/utils/env.js 0.00% lines
src/main.jsx 56.89% lines

Coverage Details

71 files tracked 55 at 100% line coverage 3 below 80% line coverage Grouped by module, worst files first
Public scripts 2 files 95.24% lines 74.36% branches
File LinesStatementsFunctionsBranches
public/js/certificates.js
95.18% 711/747
95.18% 711/747
94.73% 18/19
72.97% 27/37
public/js/gtag-init.js
100.00% 10/10
100.00% 10/10
100.00% 1/1
100.00% 2/2
Components 21 files 97.35% lines 89.54% branches
File LinesStatementsFunctionsBranches
src/components/CookieConsent.jsx
85.56% 160/187
85.56% 160/187
81.81% 9/11
79.41% 27/34
src/components/Navbar.jsx
89.79% 440/490
89.79% 440/490
79.16% 19/24
88.34% 91/103
src/components/ContactForm.jsx
96.38% 213/221
96.38% 213/221
100.00% 3/3
87.50% 14/16
src/components/Hero.jsx
97.39% 262/269
97.39% 262/269
87.50% 7/8
78.00% 39/50
src/components/Experience.jsx
98.72% 155/157
98.72% 155/157
80.00% 4/5
90.90% 10/11
src/components/LiveTestRunner.jsx
99.56% 457/459
99.56% 457/459
100.00% 10/10
94.24% 131/139
src/components/Articles.jsx
100.00% 506/506
100.00% 506/506
100.00% 12/12
93.49% 158/169
src/components/CertificatesModal.jsx
100.00% 8/8
100.00% 8/8
100.00% 1/1
100.00% 1/1
src/components/Contact.jsx
100.00% 46/46
100.00% 46/46
100.00% 1/1
100.00% 1/1
src/components/ContactModal.jsx
100.00% 57/57
100.00% 57/57
100.00% 3/3
100.00% 11/11
src/components/ErrorBoundary.jsx
100.00% 145/145
100.00% 145/145
100.00% 9/9
100.00% 22/22
src/components/Footer.jsx
100.00% 175/175
100.00% 175/175
100.00% 3/3
100.00% 5/5
src/components/Frameworks.jsx
100.00% 146/146
100.00% 146/146
80.00% 4/5
95.65% 22/23
src/components/HomeSectionHeader.jsx
100.00% 25/25
100.00% 25/25
100.00% 1/1
100.00% 1/1
src/components/Loading.jsx
100.00% 32/32
100.00% 32/32
100.00% 0/0
100.00% 0/0
src/components/PageHeader.jsx
100.00% 21/21
100.00% 21/21
100.00% 0/0
100.00% 0/0
src/components/Reveal.jsx
100.00% 12/12
100.00% 12/12
100.00% 1/1
100.00% 1/1
src/components/Shipped.jsx
100.00% 158/158
100.00% 158/158
100.00% 5/5
90.90% 20/22
src/components/SideProjects.jsx
100.00% 108/108
100.00% 108/108
100.00% 5/5
88.88% 16/18
src/components/Stack.jsx
100.00% 60/60
100.00% 60/60
100.00% 1/1
100.00% 3/3
src/components/TestResults.jsx
100.00% 339/339
100.00% 339/339
90.90% 10/11
76.47% 52/68
Article components 2 files 100.00% lines 74.07% branches
File LinesStatementsFunctionsBranches
src/components/articles/ArticleCard.jsx
100.00% 107/107
100.00% 107/107
100.00% 2/2
73.07% 19/26
src/components/articles/MoreArticlesCard.jsx
100.00% 35/35
100.00% 35/35
100.00% 1/1
100.00% 1/1
src/components/blog 4 files 93.72% lines 87.67% branches
File LinesStatementsFunctionsBranches
src/components/blog/BlogPost.jsx
88.60% 311/351
88.60% 311/351
50.00% 1/2
78.43% 40/51
src/components/blog/BlogIndex.jsx
99.05% 210/212
99.05% 210/212
80.00% 4/5
85.10% 40/47
src/components/blog/blogDate.js
100.00% 6/6
100.00% 6/6
100.00% 1/1
100.00% 2/2
src/components/blog/blogIcons.jsx
100.00% 100/100
100.00% 100/100
100.00% 2/2
100.00% 46/46
Framework components 5 files 100.00% lines 78.57% branches
File LinesStatementsFunctionsBranches
src/components/frameworks/AdvancedTesting.jsx
100.00% 157/157
100.00% 157/157
100.00% 1/1
100.00% 5/5
src/components/frameworks/ComingSoonHero.jsx
100.00% 76/76
100.00% 76/76
100.00% 1/1
100.00% 1/1
src/components/frameworks/FrameworkCard.jsx
100.00% 100/100
100.00% 100/100
100.00% 1/1
57.14% 4/7
src/components/frameworks/FrameworkHero.jsx
100.00% 66/66
100.00% 66/66
100.00% 1/1
100.00% 1/1
src/components/frameworks/Frameworks.data.js
100.00% 131/131
100.00% 131/131
100.00% 0/0
100.00% 0/0
Hooks 8 files 96.98% lines 91.76% branches
File LinesStatementsFunctionsBranches
src/components/hooks/useTheme.jsx
91.30% 84/92
91.30% 84/92
87.50% 7/8
81.08% 30/37
src/components/hooks/index.js
100.00% 4/4
100.00% 4/4
100.00% 0/0
100.00% 0/0
src/components/hooks/useCountUp.js
100.00% 29/29
100.00% 29/29
100.00% 3/3
100.00% 12/12
src/components/hooks/useFetch.jsx
100.00% 28/28
100.00% 28/28
100.00% 2/2
100.00% 6/6
src/components/hooks/useFocusTrap.jsx
100.00% 48/48
100.00% 48/48
100.00% 2/2
100.00% 11/11
src/components/hooks/useInView.js
100.00% 33/33
100.00% 33/33
100.00% 2/2
100.00% 11/11
src/components/hooks/useKeyPress.jsx
100.00% 17/17
100.00% 17/17
100.00% 2/2
100.00% 5/5
src/components/hooks/useModal.jsx
100.00% 14/14
100.00% 14/14
100.00% 3/3
100.00% 3/3
Side project components 3 files 100.00% lines 89.36% branches
File LinesStatementsFunctionsBranches
src/components/sideprojects/ProjectShowcase.jsx
100.00% 205/205
100.00% 205/205
100.00% 10/10
89.47% 17/19
src/components/sideprojects/ScreenshotGallery.jsx
100.00% 234/234
100.00% 234/234
100.00% 9/9
89.28% 25/28
src/components/sideprojects/SideProjects.data.js
100.00% 121/121
100.00% 121/121
100.00% 0/0
100.00% 0/0
src/components/stack 1 file 100.00% lines 100.00% branches
File LinesStatementsFunctionsBranches
src/components/stack/stackData.jsx
100.00% 235/235
100.00% 235/235
100.00% 0/0
100.00% 1/1
src/components/test-results 14 files 99.77% lines 95.23% branches
File LinesStatementsFunctionsBranches
src/components/test-results/A11yScan.jsx
98.34% 119/121
98.34% 119/121
100.00% 2/2
80.95% 17/21
src/components/test-results/useCiResults.js
98.92% 92/93
98.92% 92/93
100.00% 6/6
88.00% 44/50
src/components/test-results/CiMetrics.jsx
100.00% 346/346
100.00% 346/346
100.00% 9/9
97.87% 92/94
src/components/test-results/CodeSample.jsx
100.00% 19/19
100.00% 19/19
100.00% 1/1
100.00% 3/3
src/components/test-results/CoverageMap.jsx
100.00% 147/147
100.00% 147/147
100.00% 5/5
98.03% 50/51
src/components/test-results/MutationScore.jsx
100.00% 136/136
100.00% 136/136
100.00% 4/4
81.81% 18/22
src/components/test-results/Ring.jsx
100.00% 15/15
100.00% 15/15
100.00% 1/1
100.00% 2/2
src/components/test-results/SectionRail.jsx
100.00% 48/48
100.00% 48/48
100.00% 2/2
100.00% 16/16
src/components/test-results/TrendHistory.jsx
100.00% 209/209
100.00% 209/209
100.00% 13/13
95.94% 71/74
src/components/test-results/historyStats.js
100.00% 35/35
100.00% 35/35
100.00% 5/5
100.00% 45/45
src/components/test-results/prismManual.js
100.00% 4/4
100.00% 4/4
100.00% 0/0
100.00% 0/0
src/components/test-results/runStatus.js
100.00% 14/14
100.00% 14/14
100.00% 2/2
100.00% 24/24
src/components/test-results/testExamples.js
100.00% 113/113
100.00% 113/113
100.00% 0/0
100.00% 0/0
src/components/test-results/useCountUp.js
100.00% 32/32
100.00% 32/32
100.00% 3/3
100.00% 17/17
Data modules 3 files 100.00% lines 50.00% branches
File LinesStatementsFunctionsBranches
src/data/articles.js
100.00% 123/123
100.00% 123/123
100.00% 0/0
100.00% 0/0
src/data/certificates.js
100.00% 316/316
100.00% 316/316
100.00% 0/0
100.00% 0/0
src/data/portrait.js
100.00% 9/9
100.00% 9/9
100.00% 1/1
50.00% 1/2
Internationalization 3 files 100.00% lines 82.14% branches
File LinesStatementsFunctionsBranches
src/i18n/LanguageRoutingContext.js
100.00% 6/6
100.00% 6/6
100.00% 1/1
100.00% 2/2
src/i18n/index.js
100.00% 60/60
100.00% 60/60
100.00% 2/2
62.50% 5/8
src/i18n/routing.js
100.00% 23/23
100.00% 23/23
100.00% 4/4
88.88% 16/18
App shell 3 files 72.87% lines 80.77% branches
File LinesStatementsFunctionsBranches
src/entry-server.jsx
0.00% 0/17
0.00% 0/17
0.00% 0/1
0.00% 0/1
src/main.jsx
56.89% 66/116
56.89% 66/116
33.33% 1/3
55.55% 5/9
src/App.jsx
100.00% 114/114
100.00% 114/114
100.00% 1/1
100.00% 16/16
Utilities 2 files 89.29% lines 94.44% branches
File LinesStatementsFunctionsBranches
src/utils/env.js
0.00% 0/42
0.00% 0/42
0.00% 0/1
0.00% 0/1
src/utils/inBrowserTestRunner.js
99.20% 375/378
99.20% 375/378
100.00% 16/16
95.32% 102/107