test: stabilize node help locale e2e#12998
Conversation
📝 WalkthroughWalkthroughThe PR refactors the locale-specific node help browser test: it removes the ChangesBrowser Test Locale Refactor and Import Fix
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~4 minutes Poem
🚥 Pre-merge checks | ✅ 6 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (6 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 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 |
🎭 Playwright: ✅ 1668 passed, 0 failed · 3 flaky📊 Browser Reports
📦 Bundle: 7.45 MB gzip 🟢 -31 BDetailsSummary
Category Glance App Entry Points — 46.7 kB (baseline 46.7 kB) • ⚪ 0 BMain entry bundles and manifests
Status: 1 added / 1 removed Graph Workspace — 1.25 MB (baseline 1.25 MB) • ⚪ 0 BGraph editor runtime, canvas, workflow orchestration
Status: 1 added / 1 removed Views & Navigation — 95.3 kB (baseline 95.3 kB) • ⚪ 0 BTop-level views, pages, and routed surfaces
Status: 9 added / 9 removed / 3 unchanged Panels & Settings — 525 kB (baseline 525 kB) • ⚪ 0 BConfiguration panels, inspectors, and settings screens
Status: 11 added / 11 removed / 15 unchanged User & Accounts — 19.9 kB (baseline 19.9 kB) • ⚪ 0 BAuthentication, profile, and account management bundles
Status: 6 added / 6 removed / 3 unchanged Editors & Dialogs — 112 kB (baseline 112 kB) • ⚪ 0 BModals, dialogs, drawers, and in-app editors
Status: 4 added / 4 removed / 1 unchanged UI Components — 57.2 kB (baseline 57.2 kB) • ⚪ 0 BReusable component library chunks
Status: 5 added / 5 removed / 8 unchanged Data & Services — 268 kB (baseline 268 kB) • ⚪ 0 BStores, services, APIs, and repositories
Status: 13 added / 13 removed / 3 unchanged Utilities & Hooks — 3.32 MB (baseline 3.32 MB) • ⚪ 0 BHelpers, composables, and utility bundles
Status: 14 added / 14 removed / 16 unchanged Vendor & Third-Party — 15.3 MB (baseline 15.3 MB) • ⚪ 0 BExternal libraries and shared vendor chunks Status: 16 unchanged Other — 10.4 MB (baseline 10.4 MB) • ⚪ 0 BBundles that do not match a named category
Status: 62 added / 62 removed / 89 unchanged ⚡ Performance Report
Show regressions
All metrics
Historical variance (last 15 runs)
Trend (last 15 commits on main)
Raw data{
"timestamp": "2026-06-19T14:43:42.491Z",
"gitSha": "4db088c19e467b242475d350dfcbc625031dc41d",
"branch": "jaeone/fix-nodehelp-locale-e2e",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2108.1530000000157,
"styleRecalcs": 9,
"styleRecalcDurationMs": 12.964,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 454.51,
"heapDeltaBytes": -8872116,
"heapUsedBytes": 59728860,
"domNodes": -315,
"jsHeapTotalBytes": 20361216,
"scriptDurationMs": 14.321999999999997,
"eventListeners": -197,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "canvas-idle",
"durationMs": 2012.597000000028,
"styleRecalcs": 10,
"styleRecalcDurationMs": 7.9819999999999975,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 341.328,
"heapDeltaBytes": -2292680,
"heapUsedBytes": 56267084,
"domNodes": 20,
"jsHeapTotalBytes": 25427968,
"scriptDurationMs": 16.322999999999997,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1742.057999999986,
"styleRecalcs": 72,
"styleRecalcDurationMs": 31.50700000000001,
"layouts": 12,
"layoutDurationMs": 3.1069999999999993,
"taskDurationMs": 714.0640000000001,
"heapDeltaBytes": -7690128,
"heapUsedBytes": 50721060,
"domNodes": 55,
"jsHeapTotalBytes": 25427968,
"scriptDurationMs": 120.884,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1729.8640000000205,
"styleRecalcs": 72,
"styleRecalcDurationMs": 32.614,
"layouts": 12,
"layoutDurationMs": 3.3159999999999994,
"taskDurationMs": 703.49,
"heapDeltaBytes": -3976008,
"heapUsedBytes": 61711396,
"domNodes": 54,
"jsHeapTotalBytes": 22593536,
"scriptDurationMs": 112.81500000000001,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1724.533000000008,
"styleRecalcs": 31,
"styleRecalcDurationMs": 14.582,
"layouts": 6,
"layoutDurationMs": 0.5740000000000001,
"taskDurationMs": 293.83500000000004,
"heapDeltaBytes": 1874560,
"heapUsedBytes": 60196772,
"domNodes": 78,
"jsHeapTotalBytes": 25952256,
"scriptDurationMs": 23.811,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1723.6970000000156,
"styleRecalcs": 31,
"styleRecalcDurationMs": 13.789000000000001,
"layouts": 6,
"layoutDurationMs": 0.4909999999999999,
"taskDurationMs": 285.65299999999996,
"heapDeltaBytes": 1840880,
"heapUsedBytes": 60252148,
"domNodes": 78,
"jsHeapTotalBytes": 26214400,
"scriptDurationMs": 22.066000000000003,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 564.1709999999875,
"styleRecalcs": 13,
"styleRecalcDurationMs": 8.569,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 334.277,
"heapDeltaBytes": 7450936,
"heapUsedBytes": 65839284,
"domNodes": 22,
"jsHeapTotalBytes": 17301504,
"scriptDurationMs": 60.368,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-clipping",
"durationMs": 580.9219999999868,
"styleRecalcs": 12,
"styleRecalcDurationMs": 10.767999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 378.119,
"heapDeltaBytes": 3464704,
"heapUsedBytes": 72124872,
"domNodes": -291,
"jsHeapTotalBytes": 7254016,
"scriptDurationMs": 56.129,
"eventListeners": -203,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666682,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2003.5359999999969,
"styleRecalcs": 11,
"styleRecalcDurationMs": 10.223999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 482.857,
"heapDeltaBytes": -8428504,
"heapUsedBytes": 61577208,
"domNodes": 22,
"jsHeapTotalBytes": 10891264,
"scriptDurationMs": 91.42699999999999,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2044.7659999999814,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.0859999999999985,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 483.12499999999994,
"heapDeltaBytes": -9255092,
"heapUsedBytes": 59175880,
"domNodes": -296,
"jsHeapTotalBytes": -1736704,
"scriptDurationMs": 83.59299999999999,
"eventListeners": -195,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-pan",
"durationMs": 2074.062999999967,
"styleRecalcs": 69,
"styleRecalcDurationMs": 17.968000000000004,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 998.74,
"heapDeltaBytes": 9610756,
"heapUsedBytes": 82304476,
"domNodes": 18,
"jsHeapTotalBytes": 9232384,
"scriptDurationMs": 369.722,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-pan",
"durationMs": 2071.6340000000173,
"styleRecalcs": 66,
"styleRecalcDurationMs": 13.709,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1050.0020000000002,
"heapDeltaBytes": 2424868,
"heapUsedBytes": 56050948,
"domNodes": 8,
"jsHeapTotalBytes": 2883584,
"scriptDurationMs": 421.836,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66999999999998,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-zoom",
"durationMs": 3129.840999999999,
"styleRecalcs": 66,
"styleRecalcDurationMs": 17.834,
"layouts": 60,
"layoutDurationMs": 7.053999999999999,
"taskDurationMs": 1299,
"heapDeltaBytes": -4298176,
"heapUsedBytes": 70352748,
"domNodes": 14,
"jsHeapTotalBytes": 10891264,
"scriptDurationMs": 506.984,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3109.100999999896,
"styleRecalcs": 67,
"styleRecalcDurationMs": 19.701,
"layouts": 60,
"layoutDurationMs": 7.129,
"taskDurationMs": 1231.9569999999999,
"heapDeltaBytes": -6001212,
"heapUsedBytes": 67909412,
"domNodes": 18,
"jsHeapTotalBytes": 9842688,
"scriptDurationMs": 467.23900000000003,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "minimap-idle",
"durationMs": 2000.2269999999953,
"styleRecalcs": 11,
"styleRecalcDurationMs": 8.839,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 471.502,
"heapDeltaBytes": -7771436,
"heapUsedBytes": 64394136,
"domNodes": 22,
"jsHeapTotalBytes": 8794112,
"scriptDurationMs": 86.459,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 1998.1420000000298,
"styleRecalcs": 10,
"styleRecalcDurationMs": 7.728999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 476.894,
"heapDeltaBytes": -9112788,
"heapUsedBytes": 64502564,
"domNodes": 20,
"jsHeapTotalBytes": 7483392,
"scriptDurationMs": 83.314,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 597.4180000000047,
"styleRecalcs": 47,
"styleRecalcDurationMs": 18.899,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 377.56500000000005,
"heapDeltaBytes": 7830584,
"heapUsedBytes": 66536116,
"domNodes": 20,
"jsHeapTotalBytes": 19398656,
"scriptDurationMs": 131.717,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66666666666665,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 580.9110000000146,
"styleRecalcs": 47,
"styleRecalcDurationMs": 11.11,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 368.89099999999996,
"heapDeltaBytes": -12165700,
"heapUsedBytes": 53955772,
"domNodes": 20,
"jsHeapTotalBytes": 22331392,
"scriptDurationMs": 130.911,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.669999999999998,
"p95FrameDurationMs": 16.799999999999727
},
{
"name": "subgraph-idle",
"durationMs": 1999.1150000000175,
"styleRecalcs": 11,
"styleRecalcDurationMs": 7.839999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 332.895,
"heapDeltaBytes": -2560660,
"heapUsedBytes": 56181172,
"domNodes": 22,
"jsHeapTotalBytes": 26476544,
"scriptDurationMs": 13.305000000000001,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "subgraph-idle",
"durationMs": 1992.3280000000432,
"styleRecalcs": 12,
"styleRecalcDurationMs": 9.45,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 339.82099999999997,
"heapDeltaBytes": -2160312,
"heapUsedBytes": 56568324,
"domNodes": 24,
"jsHeapTotalBytes": 25690112,
"scriptDurationMs": 16.45,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1682.711999999981,
"styleRecalcs": 75,
"styleRecalcDurationMs": 33.14,
"layouts": 16,
"layoutDurationMs": 4.087,
"taskDurationMs": 633.051,
"heapDeltaBytes": -10654660,
"heapUsedBytes": 47977932,
"domNodes": 61,
"jsHeapTotalBytes": 26476544,
"scriptDurationMs": 88.988,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1693.42800000004,
"styleRecalcs": 77,
"styleRecalcDurationMs": 33.574000000000005,
"layouts": 16,
"layoutDurationMs": 4.077,
"taskDurationMs": 627.267,
"heapDeltaBytes": -11011128,
"heapUsedBytes": 47650200,
"domNodes": 63,
"jsHeapTotalBytes": 26738688,
"scriptDurationMs": 85.06700000000001,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-transition-enter",
"durationMs": 932.5729999999908,
"styleRecalcs": 17,
"styleRecalcDurationMs": 27.514999999999997,
"layouts": 4,
"layoutDurationMs": 14.491999999999997,
"taskDurationMs": 716.653,
"heapDeltaBytes": 4402860,
"heapUsedBytes": 79606400,
"domNodes": 13833,
"jsHeapTotalBytes": 17301504,
"scriptDurationMs": 26.082000000000008,
"eventListeners": 2527,
"totalBlockingTimeMs": 161,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8124.830999999972,
"styleRecalcs": 248,
"styleRecalcDurationMs": 50.25099999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3444.071,
"heapDeltaBytes": -4868292,
"heapUsedBytes": 67464456,
"domNodes": 14,
"jsHeapTotalBytes": 17096704,
"scriptDurationMs": 1187.1940000000002,
"eventListeners": 20,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.80000000000109
},
{
"name": "viewport-pan-sweep",
"durationMs": 8171.86700000002,
"styleRecalcs": 250,
"styleRecalcDurationMs": 51.742,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3627.552,
"heapDeltaBytes": -1542564,
"heapUsedBytes": 59502056,
"domNodes": -260,
"jsHeapTotalBytes": 5459968,
"scriptDurationMs": 1237.3229999999999,
"eventListeners": -130,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 11709.519,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 11698.189999999999,
"heapDeltaBytes": -39111196,
"heapUsedBytes": 168054204,
"domNodes": -3331,
"jsHeapTotalBytes": 19107840,
"scriptDurationMs": 565.946,
"eventListeners": -16474,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333358,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 11575.19000000002,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 11561.794000000002,
"heapDeltaBytes": -42106464,
"heapUsedBytes": 166137648,
"domNodes": -3308,
"jsHeapTotalBytes": 19894272,
"scriptDurationMs": 547.4989999999999,
"eventListeners": -16473,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333358,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-pan",
"durationMs": 13815.67100000001,
"styleRecalcs": 65,
"styleRecalcDurationMs": 15.838999999999992,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 13795.331,
"heapDeltaBytes": -35475604,
"heapUsedBytes": 167457256,
"domNodes": -8331,
"jsHeapTotalBytes": 13692928,
"scriptDurationMs": 843.0340000000001,
"eventListeners": -16463,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.219999999999953,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 14178.774999999972,
"styleRecalcs": 65,
"styleRecalcDurationMs": 16.100999999999978,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 14161.123999999998,
"heapDeltaBytes": -44597624,
"heapUsedBytes": 166283436,
"domNodes": -3308,
"jsHeapTotalBytes": 20418560,
"scriptDurationMs": 826.117,
"eventListeners": -16469,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333358,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "workflow-execution",
"durationMs": 437.15099999997165,
"styleRecalcs": 16,
"styleRecalcDurationMs": 22.238,
"layouts": 6,
"layoutDurationMs": 1.5420000000000003,
"taskDurationMs": 110.29699999999998,
"heapDeltaBytes": 5329132,
"heapUsedBytes": 65262932,
"domNodes": 162,
"jsHeapTotalBytes": 3407872,
"scriptDurationMs": 17.743,
"eventListeners": 69,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.660000000000007,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "workflow-execution",
"durationMs": 463.3089999999811,
"styleRecalcs": 23,
"styleRecalcDurationMs": 21.718999999999998,
"layouts": 4,
"layoutDurationMs": 1.053,
"taskDurationMs": 116.294,
"heapDeltaBytes": 5357496,
"heapUsedBytes": 65051804,
"domNodes": 183,
"jsHeapTotalBytes": 2883584,
"scriptDurationMs": 20.502,
"eventListeners": 69,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.663333333333338,
"p95FrameDurationMs": 16.699999999999818
}
]
} |
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## main #12998 +/- ##
==========================================
+ Coverage 75.86% 76.13% +0.26%
==========================================
Files 1573 1574 +1
Lines 88519 95451 +6932
Branches 27324 29368 +2044
==========================================
+ Hits 67158 72672 +5514
- Misses 20705 21991 +1286
- Partials 656 788 +132
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
Summary
Stabilizes the locale-specific Node Help E2E by setting the locale through the existing Playwright settings fixture before app bootstrap instead of racing a workflow reload pulse.
Changes
test.use({ initialSettings: { 'Comfy.Locale': 'ja' } })for the locale-specific documentation case.Review Focus
Please focus on whether the E2E now waits on the correct setup boundary. The previous helper watched
ChangeTracker.isLoadingGraphafter changingComfy.Locale; once unrelated workflow-load work became faster, that loading pulse could complete before the helper observed it. Pre-bootinitialSettingsavoids that timing dependency and uses existing test infrastructure.Verification:
pnpm exec oxfmt --check browser_tests/tests/nodeHelp.spec.ts browser_tests/fixtures/helpers/WorkflowHelper.tspnpm exec eslint browser_tests/tests/nodeHelp.spec.ts browser_tests/fixtures/helpers/WorkflowHelper.tspnpm typecheck:browserPLAYWRIGHT_LOCAL=1 PLAYWRIGHT_TEST_URL=http://localhost:5176 pnpm exec playwright test browser_tests/tests/nodeHelp.spec.ts --grep "Should handle locale-specific documentation" --project=chromium --repeat-each=10Screenshots (if applicable)
N/A