test: clean up TemplateHelper route mocks#13019
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthrough
ChangesTemplateHelper route refactor and test updates
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested labels
Suggested reviewers
🚥 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 🔴 +182 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-19T18:19:41.925Z",
"gitSha": "41d0ecbdd99ac926c3433b3c32a5607f4a17bda6",
"branch": "jaeone/template-helper-route-cleanup",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2071.8279999999822,
"styleRecalcs": 8,
"styleRecalcDurationMs": 8.142,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 515.408,
"heapDeltaBytes": -8557464,
"heapUsedBytes": 59491264,
"domNodes": -294,
"jsHeapTotalBytes": 21147648,
"scriptDurationMs": 20.857,
"eventListeners": -197,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-idle",
"durationMs": 2017.2340000000304,
"styleRecalcs": 9,
"styleRecalcDurationMs": 7.684999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 400.26700000000005,
"heapDeltaBytes": -2446588,
"heapUsedBytes": 56284396,
"domNodes": 18,
"jsHeapTotalBytes": 25165824,
"scriptDurationMs": 22.363,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1815.8199999999738,
"styleRecalcs": 75,
"styleRecalcDurationMs": 38.076,
"layouts": 12,
"layoutDurationMs": 3.5100000000000002,
"taskDurationMs": 790.093,
"heapDeltaBytes": -7408528,
"heapUsedBytes": 51274824,
"domNodes": 57,
"jsHeapTotalBytes": 25165824,
"scriptDurationMs": 130.349,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1740.2739999999994,
"styleRecalcs": 72,
"styleRecalcDurationMs": 33.858,
"layouts": 12,
"layoutDurationMs": 3.0740000000000003,
"taskDurationMs": 767.5179999999999,
"heapDeltaBytes": -7040916,
"heapUsedBytes": 51307448,
"domNodes": 55,
"jsHeapTotalBytes": 26214400,
"scriptDurationMs": 127.745,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1741.7670000000385,
"styleRecalcs": 32,
"styleRecalcDurationMs": 23.179000000000002,
"layouts": 6,
"layoutDurationMs": 0.786,
"taskDurationMs": 420.841,
"heapDeltaBytes": 1832040,
"heapUsedBytes": 60264324,
"domNodes": 78,
"jsHeapTotalBytes": 26476544,
"scriptDurationMs": 33.296,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1732.2130000000016,
"styleRecalcs": 31,
"styleRecalcDurationMs": 21.365000000000002,
"layouts": 6,
"layoutDurationMs": 0.8959999999999999,
"taskDurationMs": 450.07399999999996,
"heapDeltaBytes": 1679016,
"heapUsedBytes": 60400868,
"domNodes": 76,
"jsHeapTotalBytes": 24903680,
"scriptDurationMs": 33.056000000000004,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-clipping",
"durationMs": 579.5269999999846,
"styleRecalcs": 10,
"styleRecalcDurationMs": 7.318000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 356.07099999999997,
"heapDeltaBytes": 7133672,
"heapUsedBytes": 65802948,
"domNodes": 16,
"jsHeapTotalBytes": 17301504,
"scriptDurationMs": 61.744,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-clipping",
"durationMs": 588.2720000000177,
"styleRecalcs": 13,
"styleRecalcDurationMs": 9.791,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 380.07800000000003,
"heapDeltaBytes": 7711552,
"heapUsedBytes": 66283872,
"domNodes": 22,
"jsHeapTotalBytes": 18612224,
"scriptDurationMs": 64.637,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "large-graph-idle",
"durationMs": 2020.3270000000089,
"styleRecalcs": 10,
"styleRecalcDurationMs": 10.463,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 576.839,
"heapDeltaBytes": -7980732,
"heapUsedBytes": 62175372,
"domNodes": 20,
"jsHeapTotalBytes": 11153408,
"scriptDurationMs": 121.66,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2019.3259999999782,
"styleRecalcs": 12,
"styleRecalcDurationMs": 12.508000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 643.713,
"heapDeltaBytes": -8053888,
"heapUsedBytes": 62169912,
"domNodes": 24,
"jsHeapTotalBytes": 11939840,
"scriptDurationMs": 131.748,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-pan",
"durationMs": 2101.6270000000077,
"styleRecalcs": 69,
"styleRecalcDurationMs": 20.067999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1119.0369999999998,
"heapDeltaBytes": 10423148,
"heapUsedBytes": 83254660,
"domNodes": 16,
"jsHeapTotalBytes": 9232384,
"scriptDurationMs": 406.837,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "large-graph-pan",
"durationMs": 2147.3310000000083,
"styleRecalcs": 70,
"styleRecalcDurationMs": 19.838,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1127.988,
"heapDeltaBytes": 10172160,
"heapUsedBytes": 83030584,
"domNodes": 18,
"jsHeapTotalBytes": 10805248,
"scriptDurationMs": 411.581,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3176.1659999999665,
"styleRecalcs": 65,
"styleRecalcDurationMs": 20.227,
"layouts": 60,
"layoutDurationMs": 7.958999999999999,
"taskDurationMs": 1424.679,
"heapDeltaBytes": 16550124,
"heapUsedBytes": 71970196,
"domNodes": 12,
"jsHeapTotalBytes": 8388608,
"scriptDurationMs": 559.621,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-zoom",
"durationMs": 3132.3470000000952,
"styleRecalcs": 65,
"styleRecalcDurationMs": 21.213,
"layouts": 60,
"layoutDurationMs": 8.569,
"taskDurationMs": 1451.7069999999999,
"heapDeltaBytes": -6129568,
"heapUsedBytes": 68134052,
"domNodes": 14,
"jsHeapTotalBytes": 10104832,
"scriptDurationMs": 540.4979999999999,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2003.6539999999832,
"styleRecalcs": 9,
"styleRecalcDurationMs": 10.362,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 589.951,
"heapDeltaBytes": -9176176,
"heapUsedBytes": 64499848,
"domNodes": 18,
"jsHeapTotalBytes": 8007680,
"scriptDurationMs": 114.366,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2014.9529999999913,
"styleRecalcs": 7,
"styleRecalcDurationMs": 7.379999999999997,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 685.1700000000001,
"heapDeltaBytes": -8779436,
"heapUsedBytes": 65106596,
"domNodes": 14,
"jsHeapTotalBytes": 8531968,
"scriptDurationMs": 121.99500000000002,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 699.9889999999596,
"styleRecalcs": 46,
"styleRecalcDurationMs": 13.808,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 451.45199999999994,
"heapDeltaBytes": 7817436,
"heapUsedBytes": 66495780,
"domNodes": 18,
"jsHeapTotalBytes": 19660800,
"scriptDurationMs": 139.154,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 601.0280000000421,
"styleRecalcs": 45,
"styleRecalcDurationMs": 10.68,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 408.89,
"heapDeltaBytes": -3262808,
"heapUsedBytes": 50382780,
"domNodes": -284,
"jsHeapTotalBytes": -1921024,
"scriptDurationMs": 122.39999999999999,
"eventListeners": -195,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 1991.990000000044,
"styleRecalcs": 11,
"styleRecalcDurationMs": 10.883000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 384.027,
"heapDeltaBytes": -2476656,
"heapUsedBytes": 56231480,
"domNodes": 22,
"jsHeapTotalBytes": 25952256,
"scriptDurationMs": 20.359,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-idle",
"durationMs": 2000.0119999999697,
"styleRecalcs": 12,
"styleRecalcDurationMs": 11.832999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 440.464,
"heapDeltaBytes": -2258856,
"heapUsedBytes": 56497632,
"domNodes": 24,
"jsHeapTotalBytes": 26214400,
"scriptDurationMs": 22.364999999999995,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1707.550000000026,
"styleRecalcs": 76,
"styleRecalcDurationMs": 38.05799999999999,
"layouts": 16,
"layoutDurationMs": 4.789999999999999,
"taskDurationMs": 705.168,
"heapDeltaBytes": -10674376,
"heapUsedBytes": 48030388,
"domNodes": 63,
"jsHeapTotalBytes": 24903680,
"scriptDurationMs": 98.181,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1736.509999999953,
"styleRecalcs": 76,
"styleRecalcDurationMs": 41.923,
"layouts": 16,
"layoutDurationMs": 4.819999999999999,
"taskDurationMs": 750.615,
"heapDeltaBytes": -10896716,
"heapUsedBytes": 47892740,
"domNodes": 65,
"jsHeapTotalBytes": 24903680,
"scriptDurationMs": 101.18900000000001,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-transition-enter",
"durationMs": 1049.4199999999978,
"styleRecalcs": 15,
"styleRecalcDurationMs": 27.527000000000005,
"layouts": 4,
"layoutDurationMs": 13.627,
"taskDurationMs": 778.4889999999998,
"heapDeltaBytes": 4578900,
"heapUsedBytes": 80381936,
"domNodes": 13833,
"jsHeapTotalBytes": 17039360,
"scriptDurationMs": 33.276,
"eventListeners": 2527,
"totalBlockingTimeMs": 161,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "viewport-pan-sweep",
"durationMs": 8234.623999999996,
"styleRecalcs": 252,
"styleRecalcDurationMs": 63.137,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4342.919999999999,
"heapDeltaBytes": -505840,
"heapUsedBytes": 69632024,
"domNodes": 20,
"jsHeapTotalBytes": 18931712,
"scriptDurationMs": 1501.992,
"eventListeners": 20,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8215.443999999934,
"styleRecalcs": 251,
"styleRecalcDurationMs": 61.021,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 4307.254999999999,
"heapDeltaBytes": -777092,
"heapUsedBytes": 69303196,
"domNodes": 20,
"jsHeapTotalBytes": 18931712,
"scriptDurationMs": 1440.5020000000002,
"eventListeners": 20,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.80000000000109
},
{
"name": "vue-large-graph-idle",
"durationMs": 13056.365999999969,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 13041.503000000002,
"heapDeltaBytes": -29029736,
"heapUsedBytes": 166192124,
"domNodes": -3308,
"jsHeapTotalBytes": 15699968,
"scriptDurationMs": 600.439,
"eventListeners": -16472,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.219999999999953,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 13724.136000000044,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 13702.640000000001,
"heapDeltaBytes": -32554928,
"heapUsedBytes": 169755148,
"domNodes": -3310,
"jsHeapTotalBytes": 20680704,
"scriptDurationMs": 685.501,
"eventListeners": -16470,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.776666666666642,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-pan",
"durationMs": 15674.52000000003,
"styleRecalcs": 84,
"styleRecalcDurationMs": 20.674999999999997,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 15648.527999999998,
"heapDeltaBytes": -31042180,
"heapUsedBytes": 167274756,
"domNodes": -3308,
"jsHeapTotalBytes": 16224256,
"scriptDurationMs": 951.109,
"eventListeners": -16467,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.779999999999927,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-pan",
"durationMs": 15863.890999999967,
"styleRecalcs": 82,
"styleRecalcDurationMs": 22.148999999999972,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 15837.861000000003,
"heapDeltaBytes": -13308076,
"heapUsedBytes": 181650644,
"domNodes": -3306,
"jsHeapTotalBytes": 21381120,
"scriptDurationMs": 1037.1580000000001,
"eventListeners": -16470,
"totalBlockingTimeMs": 67,
"frameDurationMs": 17.223333333333358,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "workflow-execution",
"durationMs": 482.26099999999406,
"styleRecalcs": 16,
"styleRecalcDurationMs": 25.556999999999995,
"layouts": 5,
"layoutDurationMs": 1.5170000000000001,
"taskDurationMs": 153.204,
"heapDeltaBytes": -13292764,
"heapUsedBytes": 56125100,
"domNodes": 168,
"jsHeapTotalBytes": 6291456,
"scriptDurationMs": 19.425000000000004,
"eventListeners": 71,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "workflow-execution",
"durationMs": 464.86000000004424,
"styleRecalcs": 19,
"styleRecalcDurationMs": 29.051000000000002,
"layouts": 6,
"layoutDurationMs": 1.694,
"taskDurationMs": 131.656,
"heapDeltaBytes": 5201668,
"heapUsedBytes": 58857856,
"domNodes": 157,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 22.467000000000002,
"eventListeners": 69,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
}
]
} |
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## main #13019 +/- ##
=======================================
Coverage 76.33% 76.33%
=======================================
Files 1573 1573
Lines 87870 87870
Branches 27225 27188 -37
=======================================
Hits 67077 67077
Misses 20138 20138
Partials 655 655
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
Summary
Follow-up draft PR for the CodeRabbit issues created from the #12999 review. This keeps the original stabilization PR merged as-is and moves the non-functional TemplateHelper cleanup into its own small branch.
Changes
mockCustomTemplates()frommockIndex()and mademock()register custom templates, core index, and thumbnails together.registerRoute()helper so every mocked route is registered for teardown consistently.body: '{}'.templateApi.mock()instead of manually combining thumbnail and index mocks.Issues
Validation
pnpm exec oxfmt --check browser_tests/fixtures/helpers/TemplateHelper.ts browser_tests/tests/templateFilteringCount.spec.tspnpm exec eslint browser_tests/fixtures/helpers/TemplateHelper.ts browser_tests/tests/templateFilteringCount.spec.tspnpm typecheck:browseroxfmt,oxlint,eslint,pnpm typecheck, andpnpm typecheck:browsersuccessfully.Note: I attempted the targeted cloud Playwright spec locally with
PLAYWRIGHT_LOCAL=1 PLAYWRIGHT_TEST_URL=http://localhost:5173 pnpm exec playwright test browser_tests/tests/templateFilteringCount.spec.ts --project=cloud, but the local 5173 app was not running with the cloud distribution configuration, so the distribution-filter assertions failed in the expected local/cloud mismatch way. This should be verified by CI's cloud project.