Skip to content

Coverage Report

Auto-generated

This page is regenerated on every push to main by the test-coverage-report.yml workflow. Last updated: 2026-07-19 19:41 UTC


Summary

Suite Coverage Tool
Frontend / Server (Vitest) :material-close-circle:{ .coverage-low } 30.6% @vitest/coverage-v8
API / Backend (pytest) :material-alert-circle:{ .coverage-mid } 63.7% pytest-cov (Cobertura)

Frontend & Server — Vitest

File Stmts Branches Funcs Lines
client/src/App.tsx 0.0% 0.0% 0.0% 0.0%
client/src/components/about-section.tsx 0.0% 0.0% 0.0% 0.0%
client/src/components/admin-modal.tsx 0.0% 0.0% 0.0% 0.0%
client/src/components/awards-section.tsx 100.0% 100.0% 100.0% 100.0%
client/src/components/certifications-section.tsx 78.9% 42.9% 100.0% 76.5%
client/src/components/contact-section.tsx 0.0% 0.0% 0.0% 0.0%
client/src/components/content-modal.tsx 0.0% 0.0% 0.0% 0.0%
client/src/components/content-preview-section.tsx 81.1% 65.0% 87.5% 90.6%
client/src/components/cv-download-dialog.tsx 40.5% 41.2% 55.5% 40.0%
client/src/components/experience-section.tsx 100.0% 50.0% 100.0% 100.0%
client/src/components/footer.tsx 100.0% 50.0% 100.0% 100.0%
client/src/components/hero-section.tsx 49.0% 37.9% 31.2% 53.5%
client/src/components/how-its-made-section.tsx 0.0% 0.0% 0.0% 0.0%
client/src/components/mode-toggle.tsx 0.0% 0.0% 0.0% 0.0%
client/src/components/navigation.tsx 51.6% 55.9% 28.6% 50.8%
client/src/components/projects-section.tsx 87.5% 66.7% 75.0% 87.5%
client/src/components/skills-section.tsx 0.0% 100.0% 0.0% 0.0%
client/src/components/theme-provider.tsx 0.0% 0.0% 0.0% 0.0%
client/src/contexts/feature-flags-context.tsx 94.4% 50.0% 88.9% 100.0%
client/src/contexts/preview-context.tsx 0.0% 0.0% 0.0% 0.0%
client/src/data/awards.ts 100.0% 100.0% 100.0% 100.0%
client/src/data/certifications.ts 100.0% 100.0% 100.0% 100.0%
client/src/data/experience.ts 100.0% 100.0% 100.0% 100.0%
client/src/data/projects.ts 100.0% 100.0% 100.0% 100.0%
client/src/data/skills.ts 100.0% 100.0% 100.0% 100.0%
client/src/hooks/use-mobile.tsx 0.0% 100.0% 0.0% 0.0%
client/src/hooks/use-toast.ts 32.1% 5.0% 16.7% 33.3%
client/src/hooks/useAboutSection.ts 0.0% 0.0% 0.0% 0.0%
client/src/hooks/useContactForm.ts 0.0% 0.0% 0.0% 0.0%
client/src/hooks/useContactSection.ts 0.0% 0.0% 0.0% 0.0%
client/src/hooks/useContentPosts.ts 35.0% 20.0% 42.9% 46.7%
client/src/hooks/useFooterSection.ts 0.0% 0.0% 0.0% 0.0%
client/src/hooks/useHeroSection.ts 72.7% 25.0% 66.7% 80.0%
client/src/hooks/useHowItsMadeSection.ts 0.0% 0.0% 0.0% 0.0%
client/src/hooks/usePortfolioContent.ts 86.7% 83.3% 85.7% 86.7%
client/src/hooks/useProjectPageCMS.ts 0.0% 0.0% 0.0% 0.0%
client/src/hooks/useProjects.ts 100.0% 100.0% 100.0% 100.0%
client/src/lib/cms-fetch.ts 83.3% 58.3% 100.0% 81.8%
client/src/lib/queryClient.ts 78.9% 68.8% 80.0% 83.3%
client/src/lib/utils.ts 100.0% 100.0% 100.0% 100.0%
client/src/main.tsx 0.0% 0.0% 100.0% 0.0%
client/src/pages/about.tsx 100.0% 100.0% 100.0% 100.0%
client/src/pages/certifications.tsx 0.0% 0.0% 0.0% 0.0%
client/src/pages/contact.tsx 100.0% 50.0% 100.0% 100.0%
client/src/pages/content-detail.tsx 0.0% 0.0% 0.0% 0.0%
client/src/pages/content.tsx 0.0% 0.0% 0.0% 0.0%
client/src/pages/experience.tsx 64.0% 37.5% 66.7% 60.9%
client/src/pages/home.tsx 61.5% 0.0% 42.9% 72.7%
client/src/pages/not-found.tsx 100.0% 100.0% 100.0% 100.0%
client/src/pages/project-page-v2.tsx 0.0% 0.0% 0.0% 0.0%
client/src/pages/projects.tsx 63.2% 44.1% 56.1% 66.0%

API — pytest

File Stmts Miss Coverage
__init__.py 0 0 100.0%
auth.py 70 58 17.1%
core/__init__.py 0 0 100.0%
core/config.py 27 0 100.0%
core/exceptions.py 18 2 88.9%
core/limiter.py 3 0 100.0%
core/logging.py 33 7 78.8%
core/metrics.py 5 0 100.0%
core/middleware.py 19 1 94.7%
core/openapi.py 18 11 38.9%
data/__init__.py 0 0 100.0%
data/seed.py 17 6 64.7%
db/__init__.py 0 0 100.0%
db/engine.py 40 26 35.0%
db/models.py 123 0 100.0%
feature_flags.py 66 45 31.8%
jobs/__init__.py 0 0 100.0%
jobs/sync_certifications.py 36 36 0.0%
main.py 103 18 82.5%
repositories/__init__.py 0 0 100.0%
repositories/awards.py 9 4 55.6%
repositories/certifications.py 10 4 60.0%
repositories/cv_metrics.py 16 7 56.2%
repositories/experience.py 27 8 70.4%
repositories/projects.py 44 11 75.0%
repositories/skills.py 10 1 90.0%
routers/__init__.py 0 0 100.0%
routers/admin.py 222 173 22.1%
routers/auth.py 27 19 29.6%
routers/awards.py 15 4 73.3%
routers/certifications.py 15 4 73.3%
routers/contact.py 38 6 84.2%
routers/cv.py 132 17 87.1%
routers/experience.py 27 2 92.6%
routers/feature_flags.py 31 13 58.1%
routers/health.py 9 0 100.0%
routers/metrics.py 11 3 72.7%
routers/projects.py 30 2 93.3%
routers/skills.py 15 1 93.3%
routers/sync.py 19 10 47.4%
routers/uigen.py 42 25 40.5%
schemas/__init__.py 1 0 100.0%
schemas/experience.py 28 0 100.0%
schemas/projects.py 63 0 100.0%
schemas/responses.py 138 9 93.5%
schemas/skills.py 21 0 100.0%
services/__init__.py 0 0 100.0%
services/chromium.py 15 3 80.0%
services/credentials_sync.py 147 112 23.8%
services/cv.py 38 1 97.4%
services/email.py 89 6 93.3%
services/uigen_tokens.py 35 35 0.0%
templates/__init__.py 0 0 100.0%

Regenerate locally

# Run both suites and regenerate this page
npm run test:coverage
python scripts/generate_coverage_report.py

Field Value
Unit source coverage/coverage-summary.json
API source test-results/coverage.xml
Refresh Every push to main
Workflow .github/workflows/test-coverage-report.yml