Jest coverage summary

Coverage HTML Report

Generated Nov 7, 2026, 3:51:33 PM

97.09% Lines
97.09% Statements
94.44% Functions
90.44% Branches

Needs attention

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

Coverage Details

76 files tracked 60 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 22 files 97.50% lines 89.44% branches
File LinesStatementsFunctionsBranches
src/components/CookieConsent.jsx
88.15% 201/228
88.15% 201/228
85.71% 12/14
86.00% 43/50
src/components/Navbar.jsx
90.58% 481/531
90.58% 481/531
80.76% 21/26
90.17% 101/112
src/components/ContactForm.jsx
96.15% 200/208
96.15% 200/208
100.00% 3/3
77.77% 14/18
src/components/Hero.jsx
97.50% 273/280
97.50% 273/280
87.50% 7/8
81.35% 48/59
src/components/Experience.jsx
98.81% 167/169
98.81% 167/169
80.00% 4/5
91.66% 11/12
src/components/LiveTestRunner.jsx
99.58% 481/483
99.58% 481/483
100.00% 10/10
94.40% 135/143
src/components/Articles.jsx
100.00% 490/490
100.00% 490/490
100.00% 14/14
91.87% 147/160
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% 58/58
100.00% 58/58
100.00% 3/3
100.00% 11/11
src/components/ErrorBoundary.jsx
100.00% 99/99
100.00% 99/99
100.00% 8/8
100.00% 21/21
src/components/Footer.jsx
100.00% 187/187
100.00% 187/187
100.00% 4/4
100.00% 6/6
src/components/Frameworks.jsx
100.00% 207/207
100.00% 207/207
80.00% 4/5
96.15% 25/26
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/NotFound.jsx
100.00% 45/45
100.00% 45/45
100.00% 1/1
100.00% 5/5
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% 205/205
100.00% 205/205
100.00% 7/7
81.25% 26/32
src/components/SideProjects.jsx
100.00% 111/111
100.00% 111/111
100.00% 5/5
94.44% 17/18
src/components/Stack.jsx
100.00% 62/62
100.00% 62/62
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 80.00% branches
File LinesStatementsFunctionsBranches
src/components/articles/ArticleCard.jsx
100.00% 151/151
100.00% 151/151
100.00% 3/3
79.41% 27/34
src/components/articles/MoreArticlesCard.jsx
100.00% 37/37
100.00% 37/37
100.00% 1/1
100.00% 1/1
src/components/blog 5 files 96.12% lines 90.91% branches
File LinesStatementsFunctionsBranches
src/components/blog/BlogPost.jsx
92.61% 326/352
92.61% 326/352
100.00% 3/3
85.07% 57/67
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% 51/51
src/components/blog/postBodies.js
100.00% 51/51
100.00% 51/51
100.00% 5/5
100.00% 20/20
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 97.06% lines 92.05% branches
File LinesStatementsFunctionsBranches
src/components/hooks/useTheme.jsx
91.30% 84/92
91.30% 84/92
100.00% 8/8
81.57% 31/38
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% 32/32
100.00% 32/32
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% 52/52
100.00% 52/52
100.00% 2/2
100.00% 13/13
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 90.38% branches
File LinesStatementsFunctionsBranches
src/components/sideprojects/ProjectShowcase.jsx
100.00% 243/243
100.00% 243/243
100.00% 11/11
91.30% 21/23
src/components/sideprojects/ScreenshotGallery.jsx
100.00% 238/238
100.00% 238/238
100.00% 9/9
89.65% 26/29
src/components/sideprojects/SideProjects.data.js
100.00% 220/220
100.00% 220/220
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% 150/150
100.00% 150/150
100.00% 0/0
100.00% 1/1
src/components/test-results 14 files 99.78% lines 95.20% 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% 152/152
100.00% 152/152
100.00% 5/5
98.03% 50/51
src/components/test-results/MutationScore.jsx
100.00% 141/141
100.00% 141/141
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% 230/230
100.00% 230/230
100.00% 13/13
96.00% 72/75
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% 23/23
100.00% 23/23
100.00% 2/2
100.00% 14/14
Data modules 3 files 100.00% lines 50.00% branches
File LinesStatementsFunctionsBranches
src/data/articles.js
100.00% 195/195
100.00% 195/195
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% 16/16
100.00% 16/16
100.00% 2/2
50.00% 2/4
Internationalization 3 files 100.00% lines 83.33% 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% 67/67
100.00% 67/67
100.00% 2/2
62.50% 5/8
src/i18n/routing.js
100.00% 23/23
100.00% 23/23
100.00% 4/4
90.00% 18/20
App shell 3 files 74.20% lines 78.79% branches
File LinesStatementsFunctionsBranches
src/entry-server.jsx
0.00% 0/19
0.00% 0/19
0.00% 0/1
0.00% 0/1
src/main.jsx
54.62% 65/119
54.62% 65/119
33.33% 1/3
55.55% 5/9
src/App.jsx
100.00% 145/145
100.00% 145/145
100.00% 1/1
91.30% 21/23
Utilities 5 files 91.12% lines 93.66% 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.24% 392/395
99.24% 392/395
100.00% 16/16
93.16% 109/117
src/utils/documentHead.js
100.00% 53/53
100.00% 53/53
100.00% 4/4
100.00% 16/16
src/utils/motion.js
100.00% 6/6
100.00% 6/6
100.00% 2/2
100.00% 5/5
src/utils/scrollLock.js
100.00% 11/11
100.00% 11/11
100.00% 2/2
100.00% 3/3