NiiVue Coverage Report

Generated: 2026-10-03T16:40:26.382Z

Coverage by package

Overall line coverage: 60.9% (−24.8) vs main

PackageStatementsBranchesFunctionsLines
Shared core (packages/niivue-react)62.6%55.7%60%63.3%
apps/pwa29.8%30%52.9%31.1%
apps/jupyter20.6%23.7%17.9%20.7%
apps/streamlit85.7%78.1%83%85.7%
apps/vscode50.7%49.4%57.7%50.3%
apps/desktop-tauri80.6%59.1%81%82.8%

Per-file coverage

FileStatements
apps/desktop-tauri/src/components/DesktopApp.tsx44% (8/18)
apps/desktop-tauri/src/components/DesktopHomeScreen.tsx89% (16/18)
apps/desktop-tauri/src/recent-files.ts100% (18/18)
apps/desktop-tauri/src/tauri-bridge.ts100% (8/8)
apps/jupyter/src/citation.ts100% (2/2)
apps/jupyter/src/index.ts0% (0/35)
apps/jupyter/src/save-file.ts100% (24/24)
apps/jupyter/src/url-utils.ts100% (32/32)
apps/jupyter/src/viewer.ts0% (0/189)
apps/pwa/src/components/HomeScreen.tsx100% (2/2)
apps/pwa/src/Pwa.tsx0% (0/23)
apps/pwa/src/settings.ts0% (0/4)
apps/streamlit/niivue_component/frontend/src/components/StyledViewer.tsx0% (0/3)
apps/streamlit/niivue_component/frontend/src/components/UnstyledCanvas.tsx0% (0/3)
apps/streamlit/niivue_component/frontend/src/hooks/useStreamlitNiivue.ts89% (150/168)
apps/streamlit/niivue_component/frontend/src/loadEvents.ts100% (35/35)
apps/streamlit/niivue_component/frontend/src/main.tsx0% (0/3)
apps/streamlit/niivue_component/frontend/src/StreamlitViewer.tsx0% (0/8)
apps/streamlit/niivue_component/frontend/src/types.ts100% (1/1)
apps/streamlit/niivue_component/frontend/src/utils.ts95% (35/37)
apps/vscode/src/citation.ts100% (2/2)
apps/vscode/src/dispose.ts100% (15/15)
apps/vscode/src/document.ts0% (0/7)
apps/vscode/src/editorProvider.ts47% (120/254)
apps/vscode/src/extension.ts0% (0/25)
apps/vscode/src/HoverProvider.ts100% (23/23)
apps/vscode/src/html.ts100% (11/11)
packages/niivue-react/src/assets/niivue-logo.ts100% (1/1)
packages/niivue-react/src/backend.ts88% (7/8)
packages/niivue-react/src/citation.ts100% (4/4)
packages/niivue-react/src/components/AboutDialog.tsx100% (12/12)
packages/niivue-react/src/components/App.tsx0% (0/4)
packages/niivue-react/src/components/AppProps.ts67% (4/6)
packages/niivue-react/src/components/CiteDialog.tsx100% (29/29)
packages/niivue-react/src/components/Container.tsx84% (43/51)
packages/niivue-react/src/components/HeaderBox.tsx30% (9/30)
packages/niivue-react/src/components/HomeSection.tsx0% (0/2)
packages/niivue-react/src/components/ImageDrop.tsx0% (0/40)
packages/niivue-react/src/components/Menu.tsx60% (212/353)
packages/niivue-react/src/components/MenuBar.tsx52% (44/85)
packages/niivue-react/src/components/MenuElements.tsx80% (63/79)
packages/niivue-react/src/components/Nav4D.tsx1% (1/107)
packages/niivue-react/src/components/NiiVueCanvas.tsx24% (63/259)
packages/niivue-react/src/components/SaveHint.tsx100% (15/15)
packages/niivue-react/src/components/ScalingBox.tsx6% (5/81)
packages/niivue-react/src/components/StatusBar.tsx85% (11/13)
packages/niivue-react/src/components/Volume.tsx42% (73/173)
packages/niivue-react/src/constants/index.ts0% (0/5)
packages/niivue-react/src/constants/keyboardShortcuts.ts95% (21/22)
packages/niivue-react/src/dicom.ts95% (20/21)
packages/niivue-react/src/document.ts94% (45/48)
packages/niivue-react/src/events.ts50% (108/216)
packages/niivue-react/src/hooks/index.ts0% (0/22)
packages/niivue-react/src/hooks/useImmediateSignalEffect.ts100% (7/7)
packages/niivue-react/src/hooks/useKeyboardShortcuts.ts100% (97/97)
packages/niivue-react/src/index.tsN/A (0/0)
packages/niivue-react/src/layout.ts94% (33/35)
packages/niivue-react/src/nifti.ts89% (84/94)
packages/niivue-react/src/npy.ts91% (146/160)
packages/niivue-react/src/nvd-json.ts100% (47/47)
packages/niivue-react/src/png.ts100% (47/47)
packages/niivue-react/src/readyState.ts100% (12/12)
packages/niivue-react/src/screenshot.ts99% (105/106)
packages/niivue-react/src/settings.ts100% (2/2)
packages/niivue-react/src/utility.ts97% (224/232)
packages/niivue-react/src/viewer-client.ts100% (35/35)
apps/pwa/src/components/HomeScreen.tsx100% (1/1)
apps/pwa/src/main.tsx86% (6/7)
apps/pwa/src/Pwa.tsx38% (3/8)
apps/pwa/src/settings.ts100% (2/2)
localhost-4000/assets/index-CotF7xYB.cssN/A (0/0)
packages/niivue-react/src/assets/niivue-logo.ts100% (1/1)
packages/niivue-react/src/backend.ts86% (6/7)
packages/niivue-react/src/citation.ts100% (1/1)
packages/niivue-react/src/components/AboutDialog.tsx100% (5/5)
packages/niivue-react/src/components/AppProps.ts100% (4/4)
packages/niivue-react/src/components/CiteDialog.tsx38% (5/13)
packages/niivue-react/src/components/Container.tsx73% (19/26)
packages/niivue-react/src/components/HeaderBox.tsx44% (4/9)
packages/niivue-react/src/components/HomeSection.tsx100% (1/1)
packages/niivue-react/src/components/ImageDrop.tsx71% (15/21)
packages/niivue-react/src/components/Menu.tsx46% (60/131)
packages/niivue-react/src/components/MenuBar.tsx65% (24/37)
packages/niivue-react/src/components/MenuElements.tsx78% (25/32)
packages/niivue-react/src/components/Nav4D.tsx90% (43/48)
packages/niivue-react/src/components/NiiVueCanvas.tsx63% (95/150)
packages/niivue-react/src/components/SaveHint.tsx86% (6/7)
packages/niivue-react/src/components/ScalingBox.tsx9% (4/46)
packages/niivue-react/src/components/StatusBar.tsx100% (4/4)
packages/niivue-react/src/components/Volume.tsx68% (49/72)
packages/niivue-react/src/constants/keyboardShortcuts.ts100% (8/8)
packages/niivue-react/src/dicom.ts92% (12/13)
packages/niivue-react/src/document.ts72% (26/36)
packages/niivue-react/src/events.ts67% (97/145)
packages/niivue-react/src/hooks/useImmediateSignalEffect.ts100% (5/5)
packages/niivue-react/src/hooks/useKeyboardShortcuts.ts88% (7/8)
packages/niivue-react/src/layout.ts100% (13/13)
packages/niivue-react/src/nifti.ts66% (53/80)
packages/niivue-react/src/npy.ts4% (4/107)
packages/niivue-react/src/nvd-json.ts86% (24/28)
packages/niivue-react/src/png.ts91% (30/33)
packages/niivue-react/src/readyState.ts80% (4/5)
packages/niivue-react/src/screenshot.ts83% (53/64)
packages/niivue-react/src/settings.ts100% (1/1)
packages/niivue-react/src/utility.ts58% (100/172)
packages/niivue-react/src/viewer-client.ts61% (14/23)