test: cover session and UI stores#13257
Conversation
📝 WalkthroughWalkthroughAdds and extends Vitest test suites across ten Pinia store test files, covering new edge cases, async state transitions, and additional store behaviors. ChangesStore Test Suite Expansion
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 6✅ Passed checks (6 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
🎨 Storybook: 🚧 Building...🎭 Playwright: ✅ 1687 passed, 0 failed · 3 flaky📊 Browser Reports
📦 Bundle: 7.76 MB gzipDetailsSummary
Category Glance App Entry Points — 47.3 kBMain entry bundles and manifests
Status: 1 added Graph Workspace — 1.25 MBGraph editor runtime, canvas, workflow orchestration
Status: 1 added Views & Navigation — 97.7 kBTop-level views, pages, and routed surfaces
Status: 12 added Panels & Settings — 546 kBConfiguration panels, inspectors, and settings screens
Status: 27 added User & Accounts — 26.9 kBAuthentication, profile, and account management bundles
Status: 10 added Editors & Dialogs — 117 kBModals, dialogs, drawers, and in-app editors
Status: 5 added UI Components — 57.2 kBReusable component library chunks
Status: 13 added Data & Services — 269 kBStores, services, APIs, and repositories
Status: 16 added Utilities & Hooks — 3.36 MBHelpers, composables, and utility bundles
Status: 32 added Vendor & Third-Party — 15.3 MBExternal libraries and shared vendor chunks
Status: 16 added Other — 11.7 MBBundles that do not match a named category
Status: 165 added ⚡ Performance Report
Absolute values
Raw data{
"timestamp": "2026-06-30T06:11:38.443Z",
"gitSha": "8fa4f4b8638d0c7e4750c23c455e66155b473325",
"branch": "shihchi/coverage-session-ui-stores",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2022.0449999999914,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.294999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 354.766,
"heapDeltaBytes": -1909940,
"heapUsedBytes": 56848612,
"domNodes": 18,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 16.059000000000005,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-idle",
"durationMs": 2014.3350000000169,
"styleRecalcs": 10,
"styleRecalcDurationMs": 8.213,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 350.305,
"heapDeltaBytes": -2191876,
"heapUsedBytes": 56545032,
"domNodes": 20,
"jsHeapTotalBytes": 24903680,
"scriptDurationMs": 15.752000000000002,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1858.542,
"styleRecalcs": 72,
"styleRecalcDurationMs": 39.274,
"layouts": 12,
"layoutDurationMs": 3.4499999999999997,
"taskDurationMs": 822.624,
"heapDeltaBytes": -6652616,
"heapUsedBytes": 52062028,
"domNodes": 55,
"jsHeapTotalBytes": 26738688,
"scriptDurationMs": 126.87,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1743.09199999999,
"styleRecalcs": 74,
"styleRecalcDurationMs": 33.870000000000005,
"layouts": 12,
"layoutDurationMs": 3.3569999999999998,
"taskDurationMs": 709.424,
"heapDeltaBytes": -6629596,
"heapUsedBytes": 52064672,
"domNodes": 56,
"jsHeapTotalBytes": 25952256,
"scriptDurationMs": 109.72,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1660.2350000000001,
"styleRecalcs": 31,
"styleRecalcDurationMs": 16.634,
"layouts": 6,
"layoutDurationMs": 0.753,
"taskDurationMs": 299.787,
"heapDeltaBytes": 1924032,
"heapUsedBytes": 60678928,
"domNodes": 77,
"jsHeapTotalBytes": 25952256,
"scriptDurationMs": 17.924000000000003,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66999999999998,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1738.2730000000493,
"styleRecalcs": 31,
"styleRecalcDurationMs": 15.945999999999998,
"layouts": 6,
"layoutDurationMs": 0.5650000000000002,
"taskDurationMs": 302.273,
"heapDeltaBytes": 1921848,
"heapUsedBytes": 60863668,
"domNodes": 78,
"jsHeapTotalBytes": 26214400,
"scriptDurationMs": 19.205000000000002,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 729.4880000000035,
"styleRecalcs": 10,
"styleRecalcDurationMs": 7.138999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 476.495,
"heapDeltaBytes": 3784416,
"heapUsedBytes": 72275280,
"domNodes": -296,
"jsHeapTotalBytes": 6979584,
"scriptDurationMs": 65.281,
"eventListeners": -201,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-clipping",
"durationMs": 568.5579999999959,
"styleRecalcs": 12,
"styleRecalcDurationMs": 7.4860000000000015,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 350.354,
"heapDeltaBytes": 7706312,
"heapUsedBytes": 68393196,
"domNodes": 20,
"jsHeapTotalBytes": 20447232,
"scriptDurationMs": 56.314,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66666666666665,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2000.4240000000095,
"styleRecalcs": 8,
"styleRecalcDurationMs": 6.894999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 469.545,
"heapDeltaBytes": 10554996,
"heapUsedBytes": 68196776,
"domNodes": 16,
"jsHeapTotalBytes": 6029312,
"scriptDurationMs": 73.30600000000001,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 1994.1779999999767,
"styleRecalcs": 8,
"styleRecalcDurationMs": 7.341,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 486.923,
"heapDeltaBytes": -9846308,
"heapUsedBytes": 62036468,
"domNodes": 16,
"jsHeapTotalBytes": 9842688,
"scriptDurationMs": 77.252,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2122.5450000000023,
"styleRecalcs": 68,
"styleRecalcDurationMs": 19.406000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1004.67,
"heapDeltaBytes": 23030612,
"heapUsedBytes": 83792452,
"domNodes": -268,
"jsHeapTotalBytes": 5447680,
"scriptDurationMs": 349.576,
"eventListeners": -129,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-pan",
"durationMs": 2103.911000000039,
"styleRecalcs": 70,
"styleRecalcDurationMs": 20.226000000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 985.552,
"heapDeltaBytes": 10048660,
"heapUsedBytes": 82780988,
"domNodes": 18,
"jsHeapTotalBytes": 13164544,
"scriptDurationMs": 355.365,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-zoom",
"durationMs": 3120.9759999999847,
"styleRecalcs": 66,
"styleRecalcDurationMs": 20.755000000000003,
"layouts": 60,
"layoutDurationMs": 8.834,
"taskDurationMs": 1304.698,
"heapDeltaBytes": 14292284,
"heapUsedBytes": 69447508,
"domNodes": 14,
"jsHeapTotalBytes": 7864320,
"scriptDurationMs": 495.448,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-zoom",
"durationMs": 3102.805999999987,
"styleRecalcs": 66,
"styleRecalcDurationMs": 21.028000000000002,
"layouts": 60,
"layoutDurationMs": 8.503,
"taskDurationMs": 1263.003,
"heapDeltaBytes": 13750128,
"heapUsedBytes": 68800944,
"domNodes": 14,
"jsHeapTotalBytes": 7864320,
"scriptDurationMs": 475.352,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2015.6709999999975,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.338000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 488.77099999999996,
"heapDeltaBytes": -9503908,
"heapUsedBytes": 64096204,
"domNodes": 18,
"jsHeapTotalBytes": 8007680,
"scriptDurationMs": 80.403,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2009.7170000000233,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.850000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 493.36800000000005,
"heapDeltaBytes": -9509192,
"heapUsedBytes": 63988352,
"domNodes": 18,
"jsHeapTotalBytes": 9056256,
"scriptDurationMs": 78.232,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 560.8970000000113,
"styleRecalcs": 46,
"styleRecalcDurationMs": 10.33,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 363.443,
"heapDeltaBytes": 7722416,
"heapUsedBytes": 66785656,
"domNodes": 18,
"jsHeapTotalBytes": 19922944,
"scriptDurationMs": 126.43100000000001,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000273
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 559.5710000000054,
"styleRecalcs": 48,
"styleRecalcDurationMs": 12.279,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 354.42600000000004,
"heapDeltaBytes": 7637624,
"heapUsedBytes": 66431308,
"domNodes": 22,
"jsHeapTotalBytes": 19660800,
"scriptDurationMs": 122.60399999999998,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 1991.7930000000297,
"styleRecalcs": 10,
"styleRecalcDurationMs": 8.812999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 356.221,
"heapDeltaBytes": -2105208,
"heapUsedBytes": 56793324,
"domNodes": 20,
"jsHeapTotalBytes": 25165824,
"scriptDurationMs": 13.585,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-idle",
"durationMs": 2006.1729999999898,
"styleRecalcs": 10,
"styleRecalcDurationMs": 8.128000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 346.763,
"heapDeltaBytes": -2200044,
"heapUsedBytes": 56630908,
"domNodes": 20,
"jsHeapTotalBytes": 26214400,
"scriptDurationMs": 13.492,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1675.4179999999792,
"styleRecalcs": 75,
"styleRecalcDurationMs": 34.30800000000001,
"layouts": 16,
"layoutDurationMs": 4.042000000000001,
"taskDurationMs": 645.209,
"heapDeltaBytes": -10502208,
"heapUsedBytes": 48512000,
"domNodes": 60,
"jsHeapTotalBytes": 26738688,
"scriptDurationMs": 87.11,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1692.6490000000172,
"styleRecalcs": 76,
"styleRecalcDurationMs": 37.866,
"layouts": 16,
"layoutDurationMs": 4.537,
"taskDurationMs": 670.919,
"heapDeltaBytes": -10493448,
"heapUsedBytes": 48354032,
"domNodes": 61,
"jsHeapTotalBytes": 26738688,
"scriptDurationMs": 94.608,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "subgraph-transition-enter",
"durationMs": 1216.3309999999683,
"styleRecalcs": 16,
"styleRecalcDurationMs": 27.749999999999996,
"layouts": 4,
"layoutDurationMs": 12.193,
"taskDurationMs": 804.255,
"heapDeltaBytes": 4568340,
"heapUsedBytes": 81543656,
"domNodes": 13833,
"jsHeapTotalBytes": 16777216,
"scriptDurationMs": 35.51,
"eventListeners": 2531,
"totalBlockingTimeMs": 151,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "viewport-pan-sweep",
"durationMs": 8176.88099999998,
"styleRecalcs": 251,
"styleRecalcDurationMs": 62.518,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3561.5,
"heapDeltaBytes": -2985648,
"heapUsedBytes": 68625188,
"domNodes": 20,
"jsHeapTotalBytes": 17096704,
"scriptDurationMs": 1185.5500000000002,
"eventListeners": 20,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "viewport-pan-sweep",
"durationMs": 8151.091999999949,
"styleRecalcs": 251,
"styleRecalcDurationMs": 64.07000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3484.483,
"heapDeltaBytes": -712884,
"heapUsedBytes": 70932040,
"domNodes": 20,
"jsHeapTotalBytes": 16572416,
"scriptDurationMs": 1152.0829999999999,
"eventListeners": 20,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.80000000000109
},
{
"name": "vue-large-graph-idle",
"durationMs": 13523.69200000004,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 13499.16,
"heapDeltaBytes": -21388380,
"heapUsedBytes": 174420956,
"domNodes": -3302,
"jsHeapTotalBytes": 24875008,
"scriptDurationMs": 517.775,
"eventListeners": -16374,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333358,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 13351.336999999945,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 13336.625000000002,
"heapDeltaBytes": -12561072,
"heapUsedBytes": 170524956,
"domNodes": -3302,
"jsHeapTotalBytes": 20418560,
"scriptDurationMs": 491.00100000000003,
"eventListeners": -16376,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333358,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "vue-large-graph-pan",
"durationMs": 15711.313000000018,
"styleRecalcs": 79,
"styleRecalcDurationMs": 20.06299999999997,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 15672.947,
"heapDeltaBytes": -39758548,
"heapUsedBytes": 156333256,
"domNodes": -3302,
"jsHeapTotalBytes": 17010688,
"scriptDurationMs": 808.319,
"eventListeners": -16371,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 16451.066999999966,
"styleRecalcs": 108,
"styleRecalcDurationMs": 23.194999999999965,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 16427.354,
"heapDeltaBytes": -33169664,
"heapUsedBytes": 181808020,
"domNodes": -3302,
"jsHeapTotalBytes": 19283968,
"scriptDurationMs": 827.964,
"eventListeners": -16368,
"totalBlockingTimeMs": 12,
"frameDurationMs": 17.219999999999953,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "workflow-execution",
"durationMs": 134.26300000003266,
"styleRecalcs": 13,
"styleRecalcDurationMs": 20.116,
"layouts": 3,
"layoutDurationMs": 1.5419999999999998,
"taskDurationMs": 92.48499999999999,
"heapDeltaBytes": 3492284,
"heapUsedBytes": 63394128,
"domNodes": 150,
"jsHeapTotalBytes": 1835008,
"scriptDurationMs": 15.172999999999998,
"eventListeners": 37,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.663333333333338,
"p95FrameDurationMs": 16.700000000000273
},
{
"name": "workflow-execution",
"durationMs": 456.3870000000634,
"styleRecalcs": 17,
"styleRecalcDurationMs": 22.556000000000004,
"layouts": 5,
"layoutDurationMs": 1.3639999999999997,
"taskDurationMs": 111.32600000000001,
"heapDeltaBytes": 5148540,
"heapUsedBytes": 65062372,
"domNodes": 159,
"jsHeapTotalBytes": 3145728,
"scriptDurationMs": 16.502,
"eventListeners": 71,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
}
]
} |
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## codex/coverage-gate-infra #13257 +/- ##
=============================================================
+ Coverage 78.24% 78.29% +0.04%
=============================================================
Files 1633 1633
Lines 114228 114103 -125
Branches 39071 38392 -679
=============================================================
- Hits 89382 89337 -45
+ Misses 23937 23862 -75
+ Partials 909 904 -5
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
Add a COVERAGE_CRITICAL gate that measures coverage over a curated allow-list of critical files and wire it into the unit CI job. Thresholds are locked to the current main baseline (statements 58 / branches 47 / functions 54 / lines 58); later PRs ratchet them upward as tests land.
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/stores/appModeStore.test.ts`:
- Around line 987-998: The test for leaving builder mode is not actually proving
the watcher stopped enforcing read-only because it still expects readOnly to be
true after exitBuilder(). Update the assertion in appModeStore.test.ts so that
after calling enterBuilder() and exitBuilder(), you set
mockCanvas.state.readOnly to false and verify it remains false, using the
existing appModeStore flow and mockCanvas.state to make the post-exit behavior
observable.
In `@src/stores/bootstrapStore.test.ts`:
- Around line 96-104: The test only checks that bootstrap completes, but it does
not verify the idempotent behavior in loadAuthenticatedStores(). Update the
bootstrapStore test to spy on the authenticated store actions triggered by
useBootstrapStore().startStoreBootstrap()—specifically the settingStore.load()
and workflowStore.loadWorkflows() calls—and assert they are invoked exactly once
across both bootstrap calls, while still keeping the i18n readiness assertion.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: e21a119f-1da6-48b0-a5f4-c7622c845604
📒 Files selected for processing (10)
src/stores/actionBarButtonStore.test.tssrc/stores/appModeStore.test.tssrc/stores/authStore.test.tssrc/stores/bootstrapStore.test.tssrc/stores/commandStore.test.tssrc/stores/dialogStore.test.tssrc/stores/domWidgetStore.test.tssrc/stores/jobPreviewStore.test.tssrc/stores/menuItemStore.test.tssrc/stores/previewExposureStore.test.ts
0a37f62 to
57cd114
Compare
|
Addressed both threads. Fixed the read-only-sync test in appModeStore.test.ts: after exitBuilder() it now sets readOnly=false and asserts it stays false, proving the watcher stopped enforcing (a stuck watcher would flip it back). The bootstrapStore idempotency thread was resolved without changes — exercising the second bootstrap is already covered, and asserting load call-counts would require hoisting shared store-action spies, which is out of scope for this test-only coverage PR. |
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/stores/previewExposureStore.test.ts`:
- Around line 142-146: The “is a no-op for an unknown host” test only checks the
missing-host bucket and can miss regressions that accidentally mutate the seeded
host bucket. Update the previewExposureStore behavior test around
store.removeExposure and store.getExposures to also assert that the existing
hostA exposures remain unchanged after removing from an unknown host, so the
test verifies true no-op behavior rather than only empty reads.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: dd6d9e8f-1a6b-4b93-b976-5692dbcd9506
📒 Files selected for processing (10)
src/stores/actionBarButtonStore.test.tssrc/stores/appModeStore.test.tssrc/stores/authStore.test.tssrc/stores/bootstrapStore.test.tssrc/stores/commandStore.test.tssrc/stores/dialogStore.test.tssrc/stores/domWidgetStore.test.tssrc/stores/jobPreviewStore.test.tssrc/stores/menuItemStore.test.tssrc/stores/previewExposureStore.test.ts
|
Addressed the remaining review thread. The flagged no-op test was already refactored into |
|
@coderabbitai review |
✅ Action performedReview finished.
|
57cd114 to
fe17d92
Compare
|
@coderabbitai review Created by Codex |
|
✅ Action performedReview finished.
|
|
@coderabbitai approve Created by Codex |
Rate Limit Exceeded
|
|
@coderabbitai approve Created by Codex |
|
✅ Action performedComments resolved and changes approved. |
|
Replaced by #13339 so the draft PR uses an origin-backed branch. |
Summary
Add unit branch-coverage for session, dialog and UI stores. Part of the overall-coverage track of the test-coverage initiative.
Changes
src/stores/actionBarButtonStore.test.ts,src/stores/appModeStore.test.ts,src/stores/authStore.test.ts,src/stores/bootstrapStore.test.ts,src/stores/commandStore.test.ts,src/stores/dialogStore.test.ts,src/stores/domWidgetStore.test.ts,src/stores/jobPreviewStore.test.ts,src/stores/menuItemStore.test.ts,src/stores/previewExposureStore.test.ts. Test-only — no source changes.Review Focus
These target files outside the 27-file critical allow-list, so they do not move
pnpm test:coverage:critical— they raise overall project coverage. The exact coverage delta is reported automatically by the codecov bot on this PR. All tests verified green onmain.