feat(visualization): add Phase 6.11 testing and documentation pass - #39
Conversation
- Grow the web test suite from 725 to 813 tests: foundation (module catalog, useChartSize), genome (region/viewport/tracks/useGenomeBrowser/ api boundaries), scientific (downsample, statistics, advancedApi, selection/stale-error lifecycle), chart primitives, and workspace (loading, error, panel-independence) coverage - Fix panViewport producing a start below base 1 when a window wider than the contig pans right - Reconcile docs with the shipped platform (README, roadmap, architecture, module docs, module catalog) and add docs/visualization/testing.md - Suppress hydration warnings for browser-extension-injected body attributes - Give Gene/Transcript and Protein workspace panels full grid width
|
ⓘ Qodo reviews are paused because your trial has ended. Ask your workspace admin to add credits to resume reviews. Manage billing |
Reviewer's GuidePhase 6.11 performs a stabilization and documentation pass over the GenomeAI visualization platform by expanding deterministic test coverage across downsampling, genome browser, scientific charts, workspace, and API adapters, fixing a pan-viewport clamping bug, adding tests for previously untested visualization modules and chart primitives, and reconciling the visualization docs/roadmap and demo catalog with the shipped Phase 6.2–6.11 platform. Sequence diagram for debounced Genome Browser track loading with abortsequenceDiagram
participant GenomeBrowserComponent
participant useGenomeBrowser
participant useGenomeTrack
participant TrackLoader as loader
participant AbortController
GenomeBrowserComponent->>useGenomeBrowser: useGenomeBrowser({ initialViewport, debounceMs })
useGenomeBrowser-->>GenomeBrowserComponent: { viewport, debouncedViewport, zoomIn }
GenomeBrowserComponent->>useGenomeTrack: useGenomeTrack(definition, debouncedViewport)
useGenomeTrack->>TrackLoader: loader(interval, signal)
activate TrackLoader
GenomeBrowserComponent->>useGenomeBrowser: zoomIn()
GenomeBrowserComponent->>useGenomeBrowser: zoomIn()
GenomeBrowserComponent->>useGenomeBrowser: zoomIn()
useGenomeBrowser->>useGenomeTrack: debouncedViewport (after debounceMs)
useGenomeTrack->>AbortController: abort()
deactivate TrackLoader
useGenomeTrack->>TrackLoader: loader(newInterval, newSignal)
activate TrackLoader
TrackLoader-->>useGenomeTrack: []
deactivate TrackLoader
useGenomeTrack-->>GenomeBrowserComponent: status = "empty"
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Important Review available on request
Reviews should be triggered manually for repositories with fewer than 10 stars. Select Trigger review above or comment ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Hey - I've left some high level feedback:
- There are multiple ad-hoc
jsonResponse/rawFetchhelpers and globalfetchoverrides in different test files; consider centralizing these into a shared test utility to reduce duplication and make teardown behavior consistent. - For tests that patch globals like
ResizeObserverorfetch, double-check that every file restores the original inafterEach(as done inadvancedApi.test.tsanduseChartSize.test.tsx) to avoid subtle cross-test coupling.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- There are multiple ad-hoc `jsonResponse`/`rawFetch` helpers and global `fetch` overrides in different test files; consider centralizing these into a shared test utility to reduce duplication and make teardown behavior consistent.
- For tests that patch globals like `ResizeObserver` or `fetch`, double-check that every file restores the original in `afterEach` (as done in `advancedApi.test.ts` and `useChartSize.test.tsx`) to avoid subtle cross-test coupling.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
Summary
Completes Phase 6.11 — Visualization Testing & Documentation.
This PR performs the stabilization pass for the GenomeAI visualization platform by expanding regression coverage, validating visualization data contracts, auditing accessibility, and aligning the visualization documentation with the implemented system.
What changed
Testing
Genome Browser
Validated:
Research Workspace
Validated:
Performance
Added regression coverage for the Phase 6.10 performance mechanisms, including:
Performance tests use deterministic assertions rather than unstable timing thresholds.
Accessibility
Reviewed and improved:
Documentation
Updated visualization documentation to accurately reflect the implemented architecture and current capabilities.
Documentation covers:
Updated the Phase 6 visualization roadmap to reflect the current implementation status.
Scope
This PR is a stabilization and documentation milestone.
It does not introduce a new visualization architecture or begin Phase 6.12.
No:
were introduced.
Existing visualization components, data contracts, performance mechanisms, and architecture remain the foundation.
Validation
The following validation was completed:
make setupmake lintmake typecheckmake testpnpm turbo buildVerified visualization routes include:
//visualization/visualization/workspacePhase
Phase 6.11 — Visualization Testing & Documentation
Next
After this PR is merged, the next milestone is:
Phase 6.12 — Molecular Structure Viewer
Phase 6.12 will be handled separately and will introduce the planned molecular 3D visualization capability.
Summary by Sourcery
Stabilize the Phase 6 visualization platform with expanded regression coverage, API and viewport edge-case handling, and aligned testing and documentation.
Bug Fixes:
Enhancements:
Documentation:
Tests: