test: clear local storage before each test - #15053
Conversation
🎭 Playwright: ✅ 1804 passed, 0 failed · 1 flaky📊 Browser Reports
🎨 Storybook: ✅ Built — View Storybook📦 Bundle Size
⚡ Performance Report
Absolute values
Raw data{
"timestamp": "2026-08-11T22:31:56.319Z",
"gitSha": "756a330ab3616e7c0f7d9e603bfd308124a8e636",
"branch": "test/global-vitest-local-storage-cleanup",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2061.128999999994,
"styleRecalcs": 9,
"styleRecalcDurationMs": 8.581,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 524.723,
"heapDeltaBytes": -18724384,
"heapUsedBytes": 45599740,
"domNodes": 6,
"jsHeapTotalBytes": 22781952,
"scriptDurationMs": 16.636,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-idle",
"durationMs": 2045.39699999998,
"styleRecalcs": 10,
"styleRecalcDurationMs": 7.759,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 474.743,
"heapDeltaBytes": 5869680,
"heapUsedBytes": 70635712,
"domNodes": 20,
"jsHeapTotalBytes": 24379392,
"scriptDurationMs": 15.831999999999999,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1922.5110000000143,
"styleRecalcs": 75,
"styleRecalcDurationMs": 48.034000000000006,
"layouts": 12,
"layoutDurationMs": 11.84,
"taskDurationMs": 954.1290000000001,
"heapDeltaBytes": -14222772,
"heapUsedBytes": 50195968,
"domNodes": -282,
"jsHeapTotalBytes": 24616960,
"scriptDurationMs": 123.736,
"eventListeners": -153,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1791.0360000000196,
"styleRecalcs": 76,
"styleRecalcDurationMs": 35.55500000000001,
"layouts": 12,
"layoutDurationMs": 3.718,
"taskDurationMs": 857.391,
"heapDeltaBytes": -17921680,
"heapUsedBytes": 46517224,
"domNodes": -283,
"jsHeapTotalBytes": 23830528,
"scriptDurationMs": 111.215,
"eventListeners": -183,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1738.027000000045,
"styleRecalcs": 31,
"styleRecalcDurationMs": 16.091,
"layouts": 6,
"layoutDurationMs": 0.6199999999999999,
"taskDurationMs": 383.60499999999996,
"heapDeltaBytes": 8774472,
"heapUsedBytes": 73150460,
"domNodes": 77,
"jsHeapTotalBytes": 24379392,
"scriptDurationMs": 18.642000000000003,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1737.940999999978,
"styleRecalcs": 32,
"styleRecalcDurationMs": 16.467,
"layouts": 6,
"layoutDurationMs": 0.737,
"taskDurationMs": 374.556,
"heapDeltaBytes": 8644828,
"heapUsedBytes": 73159764,
"domNodes": 79,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 18.723,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "dom-widget-clipping",
"durationMs": 628.2180000000039,
"styleRecalcs": 11,
"styleRecalcDurationMs": 7.304999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 416.28,
"heapDeltaBytes": -11155908,
"heapUsedBytes": 53131180,
"domNodes": 18,
"jsHeapTotalBytes": 25690112,
"scriptDurationMs": 63.267999999999994,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-clipping",
"durationMs": 595.8799999999655,
"styleRecalcs": 12,
"styleRecalcDurationMs": 7.771999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 374.711,
"heapDeltaBytes": -11213648,
"heapUsedBytes": 53252824,
"domNodes": 20,
"jsHeapTotalBytes": 25165824,
"scriptDurationMs": 56.283,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2030.5930000000103,
"styleRecalcs": 9,
"styleRecalcDurationMs": 6.675000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 687.8220000000001,
"heapDeltaBytes": -16354032,
"heapUsedBytes": 65563920,
"domNodes": -282,
"jsHeapTotalBytes": 8597504,
"scriptDurationMs": 94.486,
"eventListeners": -149,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2025.5119999999351,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.515999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 672.274,
"heapDeltaBytes": 6734708,
"heapUsedBytes": 67246812,
"domNodes": -281,
"jsHeapTotalBytes": 4034560,
"scriptDurationMs": 91.99300000000001,
"eventListeners": -149,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-pan",
"durationMs": 2158.5640000000126,
"styleRecalcs": 70,
"styleRecalcDurationMs": 15.420000000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1225.123,
"heapDeltaBytes": 2042996,
"heapUsedBytes": 62479984,
"domNodes": -281,
"jsHeapTotalBytes": 3964928,
"scriptDurationMs": 399.545,
"eventListeners": -147,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-pan",
"durationMs": 2137.2900000000072,
"styleRecalcs": 68,
"styleRecalcDurationMs": 13.627000000000004,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1212.8719999999998,
"heapDeltaBytes": 4594804,
"heapUsedBytes": 65425372,
"domNodes": -285,
"jsHeapTotalBytes": 3964928,
"scriptDurationMs": 399.011,
"eventListeners": -149,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3229.026000000033,
"styleRecalcs": 65,
"styleRecalcDurationMs": 14.698999999999996,
"layouts": 60,
"layoutDurationMs": 7.873,
"taskDurationMs": 1495.5500000000002,
"heapDeltaBytes": -1650712,
"heapUsedBytes": 61208044,
"domNodes": -289,
"jsHeapTotalBytes": 6656000,
"scriptDurationMs": 519.361,
"eventListeners": -153,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3180.2750000000515,
"styleRecalcs": 64,
"styleRecalcDurationMs": 14.313000000000002,
"layouts": 60,
"layoutDurationMs": 7.942999999999999,
"taskDurationMs": 1481.3550000000002,
"heapDeltaBytes": -3594136,
"heapUsedBytes": 59328820,
"domNodes": -291,
"jsHeapTotalBytes": 6656000,
"scriptDurationMs": 509.917,
"eventListeners": -153,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2036.4289999999983,
"styleRecalcs": 8,
"styleRecalcDurationMs": 6.473,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 673.8899999999999,
"heapDeltaBytes": 6847880,
"heapUsedBytes": 67465044,
"domNodes": -283,
"jsHeapTotalBytes": 3510272,
"scriptDurationMs": 93.18499999999999,
"eventListeners": -149,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2035.229999999956,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.087999999999997,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 678.741,
"heapDeltaBytes": 6838308,
"heapUsedBytes": 67569316,
"domNodes": -284,
"jsHeapTotalBytes": 3248128,
"scriptDurationMs": 94.89799999999998,
"eventListeners": -147,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 573.5099999999989,
"styleRecalcs": 46,
"styleRecalcDurationMs": 9.307999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 396.458,
"heapDeltaBytes": -11039696,
"heapUsedBytes": 53582624,
"domNodes": 18,
"jsHeapTotalBytes": 26214400,
"scriptDurationMs": 122.37699999999998,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 568.9750000000231,
"styleRecalcs": 48,
"styleRecalcDurationMs": 10.866000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 396.54,
"heapDeltaBytes": -10749748,
"heapUsedBytes": 53786344,
"domNodes": 22,
"jsHeapTotalBytes": 25952256,
"scriptDurationMs": 120.51200000000001,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-idle",
"durationMs": 2019.8669999999765,
"styleRecalcs": 9,
"styleRecalcDurationMs": 6.088000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 520.0429999999999,
"heapDeltaBytes": 5935736,
"heapUsedBytes": 70387480,
"domNodes": 18,
"jsHeapTotalBytes": 24641536,
"scriptDurationMs": 13.883999999999999,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "subgraph-idle",
"durationMs": 2027.5500000000193,
"styleRecalcs": 11,
"styleRecalcDurationMs": 8.518,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 511.14400000000006,
"heapDeltaBytes": -17375588,
"heapUsedBytes": 47077280,
"domNodes": -280,
"jsHeapTotalBytes": 23044096,
"scriptDurationMs": 13.572,
"eventListeners": -153,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1713.6069999999677,
"styleRecalcs": 75,
"styleRecalcDurationMs": 34.337,
"layouts": 16,
"layoutDurationMs": 4.2299999999999995,
"taskDurationMs": 779.832,
"heapDeltaBytes": -16667952,
"heapUsedBytes": 48021104,
"domNodes": -280,
"jsHeapTotalBytes": 23044096,
"scriptDurationMs": 82.58500000000001,
"eventListeners": -153,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1712.5250000000278,
"styleRecalcs": 74,
"styleRecalcDurationMs": 33.503,
"layouts": 16,
"layoutDurationMs": 3.962,
"taskDurationMs": 773.51,
"heapDeltaBytes": -15693264,
"heapUsedBytes": 48928524,
"domNodes": -281,
"jsHeapTotalBytes": 21471232,
"scriptDurationMs": 85.787,
"eventListeners": -153,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66999999999998,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-transition-enter",
"durationMs": 1384.568999999999,
"styleRecalcs": 17,
"styleRecalcDurationMs": 28.384,
"layouts": 13,
"layoutDurationMs": 11.113999999999999,
"taskDurationMs": 921.3360000000001,
"heapDeltaBytes": 31068396,
"heapUsedBytes": 99451984,
"domNodes": 13673,
"jsHeapTotalBytes": 15466496,
"scriptDurationMs": 33.904,
"eventListeners": 2375,
"totalBlockingTimeMs": 119,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8214.646000000015,
"styleRecalcs": 250,
"styleRecalcDurationMs": 40.391999999999996,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4261.169,
"heapDeltaBytes": 12042500,
"heapUsedBytes": 71493044,
"domNodes": -280,
"jsHeapTotalBytes": 5799936,
"scriptDurationMs": 1281.615,
"eventListeners": -133,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8201.404999999908,
"styleRecalcs": 249,
"styleRecalcDurationMs": 39.782,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4220.5779999999995,
"heapDeltaBytes": 11461004,
"heapUsedBytes": 71462740,
"domNodes": -282,
"jsHeapTotalBytes": 5537792,
"scriptDurationMs": 1301.123,
"eventListeners": -133,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 17591.050999999992,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 17575.63,
"heapDeltaBytes": -38808104,
"heapUsedBytes": 166903768,
"domNodes": -8312,
"jsHeapTotalBytes": -8589312,
"scriptDurationMs": 546.8369999999999,
"eventListeners": -16387,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "vue-large-graph-idle",
"durationMs": 17356.640999999967,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 17312.604,
"heapDeltaBytes": -49109464,
"heapUsedBytes": 168050056,
"domNodes": -8312,
"jsHeapTotalBytes": -8593408,
"scriptDurationMs": 554.815,
"eventListeners": -16385,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "vue-large-graph-pan",
"durationMs": 21249.62400000004,
"styleRecalcs": 143,
"styleRecalcDurationMs": 17.887999999999987,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 21206.533,
"heapDeltaBytes": -35072708,
"heapUsedBytes": 164827456,
"domNodes": -8312,
"jsHeapTotalBytes": -11739136,
"scriptDurationMs": 924.794,
"eventListeners": -16381,
"totalBlockingTimeMs": 233,
"frameDurationMs": 17.776666666666763,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 21450.81800000003,
"styleRecalcs": 146,
"styleRecalcDurationMs": 18.079999999999984,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 21423.804,
"heapDeltaBytes": -39897624,
"heapUsedBytes": 166816948,
"domNodes": -8312,
"jsHeapTotalBytes": -9117696,
"scriptDurationMs": 884.536,
"eventListeners": -16383,
"totalBlockingTimeMs": 224,
"frameDurationMs": 17.77333333333336,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "workflow-execution",
"durationMs": 454.36699999999064,
"styleRecalcs": 14,
"styleRecalcDurationMs": 21.592,
"layouts": 3,
"layoutDurationMs": 0.697,
"taskDurationMs": 116.96600000000001,
"heapDeltaBytes": 5068452,
"heapUsedBytes": 68459304,
"domNodes": 128,
"jsHeapTotalBytes": 4718592,
"scriptDurationMs": 11.910000000000002,
"eventListeners": 99,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "workflow-execution",
"durationMs": 137.85699999993994,
"styleRecalcs": 8,
"styleRecalcDurationMs": 16.541,
"layouts": 1,
"layoutDurationMs": 0.3600000000000001,
"taskDurationMs": 95.576,
"heapDeltaBytes": 3136620,
"heapUsedBytes": 66752076,
"domNodes": 110,
"jsHeapTotalBytes": 2883584,
"scriptDurationMs": 5.772999999999999,
"eventListeners": 49,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66666666666665,
"p95FrameDurationMs": 16.700000000000728
}
]
} |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (31)
💤 Files with no reviewable changes (21)
📝 WalkthroughWalkthroughThe change removes per-suite ChangesTest storage reset
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: Important Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 inconclusive)
✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## main #15053 +/- ##
==========================================
- Coverage 81.37% 81.37% -0.01%
==========================================
Files 1873 1873
Lines 106432 106432
Branches 33270 33269 -1
==========================================
- Hits 86614 86613 -1
+ Misses 19474 19465 -9
- Partials 344 354 +10
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
ea7aee6 to
95a43cd
Compare
cf2cdc0 to
b6aab32
Compare
b6aab32 to
bb573d8
Compare
## Summary
- create a fresh `createTestingPinia({ stubActions: false })` before
each root and desktop UI test
- remove 207 redundant per-suite activations
- retain 11 explicit activations needed for module initialization,
mid-test resets, and property-based iteration isolation
- leave specialized suites free to replace the active Pinia with real
Pinia, stubbed actions, plugins, or custom spies
Stacked on Comfy-Org#15053.
## Verification
- root Vitest suite: 15,896 passed, 8 skipped across 1,159 files
- desktop UI Vitest suite: 125 passed across 16 files
- `pnpm lint`
- `pnpm typecheck`
- formatting and commit hooks
Co-authored-by: Amp <amp@ampcode.com>
Summary
Child of #15052. Give every test a clean localStorage baseline through the shared Vitest setup.
The optional access keeps the shared setup compatible with the website and object-parser projects, which use Vitest's Node environment and do not expose localStorage.
Audit results
The retained call separates generated command sequences and shrink attempts inside a single Vitest test. A global
beforeEachcannot replace it.The cleanup also removes empty hooks, stale comments, and unused lifecycle imports. Net diff: 10 additions and 106 deletions across 31 files.
Validation
Also passed:
pnpm typecheckpnpm lint(six pre-existing warnings, zero errors)pnpm knip --cache