test: cover shift/Ctrl multi-select on video assets - #15655
test: cover shift/Ctrl multi-select on video assets#15655christian-byrne wants to merge 1 commit into
Conversation
Video is the one media kind whose plain preview click is deliberately swallowed so the clip plays instead of selecting, which leaves the modifier paths as the only way to build a multi-selection on it. Nothing covered that, so a regression in the guard would make video assets unselectable while images kept working. Part of the QA test plan for cloud 1.50 -> 1.51 (Asset Management).
🎭 Playwright: ✅ 1980 passed, 0 failed · 2 flaky📊 Browser Reports
📦 Bundle: 9.11 MB gzip ⚪ 0 BDetailsSummary
Category Glance App Entry Points — 3.71 kB (baseline 3.71 kB) • ⚪ 0 BMain entry bundles and manifests Status: 1 unchanged Graph Workspace — 1.37 MB (baseline 1.37 MB) • ⚪ 0 BGraph editor runtime, canvas, workflow orchestration Status: 3 unchanged Views & Navigation — 124 kB (baseline 124 kB) • ⚪ 0 BTop-level views, pages, and routed surfaces Status: 17 unchanged Panels & Settings — 591 kB (baseline 591 kB) • ⚪ 0 BConfiguration panels, inspectors, and settings screens Status: 27 unchanged User & Accounts — 27.5 kB (baseline 27.5 kB) • ⚪ 0 BAuthentication, profile, and account management bundles Status: 11 unchanged Editors & Dialogs — 125 kB (baseline 125 kB) • ⚪ 0 BModals, dialogs, drawers, and in-app editors Status: 8 unchanged UI Components — 67.1 kB (baseline 67.1 kB) • ⚪ 0 BReusable component library chunks Status: 14 unchanged Data & Services — 3.53 MB (baseline 3.53 MB) • ⚪ 0 BStores, services, APIs, and repositories Status: 17 unchanged Utilities & Hooks — 549 kB (baseline 549 kB) • ⚪ 0 BHelpers, composables, and utility bundles Status: 37 unchanged Vendor & Third-Party — 18.1 MB (baseline 18.1 MB) • ⚪ 0 BExternal libraries and shared vendor chunks Status: 18 unchanged Other — 14.1 MB (baseline 14.1 MB) • ⚪ 0 BBundles that do not match a named category Status: 285 unchanged ⚡ Performance Report
Show regressions
All metrics
Historical variance (last 15 runs)
Trend (last 15 commits on main)
Raw data{
"timestamp": "2026-08-23T00:33:14.282Z",
"gitSha": "feacaeee1fe615b6cfd5bd7baeca6ddf2cbd5876",
"branch": "glary/test-video-asset-multi-select",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2044.8149999999714,
"styleRecalcs": 8,
"styleRecalcDurationMs": 4.673,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 531.749,
"heapDeltaBytes": -5794356,
"heapUsedBytes": 55904812,
"domNodes": -281,
"jsHeapTotalBytes": 4448256,
"scriptDurationMs": 6.753000000000002,
"eventListeners": -151,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-idle",
"durationMs": 2007.3569999999563,
"styleRecalcs": 10,
"styleRecalcDurationMs": 6.360999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 441.051,
"heapDeltaBytes": -1970576,
"heapUsedBytes": 60089528,
"domNodes": -279,
"jsHeapTotalBytes": 4448256,
"scriptDurationMs": 6.273999999999998,
"eventListeners": -183,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1727.803999999992,
"styleRecalcs": 70,
"styleRecalcDurationMs": 26.392,
"layouts": 12,
"layoutDurationMs": 3.0389999999999997,
"taskDurationMs": 717.14,
"heapDeltaBytes": 5173284,
"heapUsedBytes": 67148056,
"domNodes": -283,
"jsHeapTotalBytes": 5758976,
"scriptDurationMs": 81.46199999999999,
"eventListeners": -183,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1750.1829999999927,
"styleRecalcs": 71,
"styleRecalcDurationMs": 25.817,
"layouts": 12,
"layoutDurationMs": 3.1789999999999994,
"taskDurationMs": 691.309,
"heapDeltaBytes": 10810152,
"heapUsedBytes": 73043404,
"domNodes": -282,
"jsHeapTotalBytes": 6021120,
"scriptDurationMs": 77.771,
"eventListeners": -181,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1726.2519999999881,
"styleRecalcs": 30,
"styleRecalcDurationMs": 13.969,
"layouts": 6,
"layoutDurationMs": 0.616,
"taskDurationMs": 309.44399999999996,
"heapDeltaBytes": 3247780,
"heapUsedBytes": 65714536,
"domNodes": 76,
"jsHeapTotalBytes": 4980736,
"scriptDurationMs": 8.631000000000002,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1669.7020000000293,
"styleRecalcs": 32,
"styleRecalcDurationMs": 13.02,
"layouts": 6,
"layoutDurationMs": 0.5840000000000001,
"taskDurationMs": 312.20000000000005,
"heapDeltaBytes": 2753660,
"heapUsedBytes": 64905844,
"domNodes": 78,
"jsHeapTotalBytes": 4718592,
"scriptDurationMs": 9.125,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66999999999998,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "dom-widget-clipping",
"durationMs": 536.4579999999819,
"styleRecalcs": 12,
"styleRecalcDurationMs": 6.858,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 322.122,
"heapDeltaBytes": 9729380,
"heapUsedBytes": 71476828,
"domNodes": 20,
"jsHeapTotalBytes": 5242880,
"scriptDurationMs": 46.394,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "dom-widget-clipping",
"durationMs": 519.3160000000034,
"styleRecalcs": 11,
"styleRecalcDurationMs": 4.932999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 291.921,
"heapDeltaBytes": 10810440,
"heapUsedBytes": 73357000,
"domNodes": 18,
"jsHeapTotalBytes": 4718592,
"scriptDurationMs": 41.013,
"eventListeners": 0,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66999999999998,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-idle",
"durationMs": 2040.0399999999763,
"styleRecalcs": 9,
"styleRecalcDurationMs": 5.95,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 550.452,
"heapDeltaBytes": -2161728,
"heapUsedBytes": 73761648,
"domNodes": -271,
"jsHeapTotalBytes": -2363392,
"scriptDurationMs": 13.051999999999998,
"eventListeners": -147,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2016.742000000022,
"styleRecalcs": 8,
"styleRecalcDurationMs": 5.416999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 538.8969999999999,
"heapDeltaBytes": 13034540,
"heapUsedBytes": 88859996,
"domNodes": -283,
"jsHeapTotalBytes": 3928064,
"scriptDurationMs": 13.637999999999998,
"eventListeners": -179,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2124.8469999999884,
"styleRecalcs": 70,
"styleRecalcDurationMs": 13.707999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 999.0060000000001,
"heapDeltaBytes": -3443296,
"heapUsedBytes": 74199448,
"domNodes": -237,
"jsHeapTotalBytes": 221184,
"scriptDurationMs": 274.00800000000004,
"eventListeners": -147,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-pan",
"durationMs": 2096.71400000002,
"styleRecalcs": 70,
"styleRecalcDurationMs": 12.38,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 967.3830000000002,
"heapDeltaBytes": -1225836,
"heapUsedBytes": 76356016,
"domNodes": -233,
"jsHeapTotalBytes": 221184,
"scriptDurationMs": 253.65099999999995,
"eventListeners": -147,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3080.1660000000197,
"styleRecalcs": 66,
"styleRecalcDurationMs": 14.517999999999999,
"layouts": 60,
"layoutDurationMs": 8.015999999999998,
"taskDurationMs": 1151.9499999999998,
"heapDeltaBytes": 17367828,
"heapUsedBytes": 96601292,
"domNodes": 16,
"jsHeapTotalBytes": 7114752,
"scriptDurationMs": 303.71500000000003,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-zoom",
"durationMs": 3082.3380000000498,
"styleRecalcs": 65,
"styleRecalcDurationMs": 14.498999999999999,
"layouts": 60,
"layoutDurationMs": 8.728,
"taskDurationMs": 1165.552,
"heapDeltaBytes": -9659276,
"heapUsedBytes": 69501140,
"domNodes": 12,
"jsHeapTotalBytes": 5804032,
"scriptDurationMs": 318.58599999999996,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "legacy-node-drag",
"durationMs": 2128.114000000039,
"styleRecalcs": 47,
"styleRecalcDurationMs": 8.28,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1149.664,
"heapDeltaBytes": -14954996,
"heapUsedBytes": 70319072,
"domNodes": 14,
"jsHeapTotalBytes": 7376896,
"scriptDurationMs": 357.70599999999996,
"eventListeners": 186,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "legacy-node-drag",
"durationMs": 2189.4110000000637,
"styleRecalcs": 47,
"styleRecalcDurationMs": 9.463000000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1296.816,
"heapDeltaBytes": -19673356,
"heapUsedBytes": 65672184,
"domNodes": -240,
"jsHeapTotalBytes": 7073792,
"scriptDurationMs": 395.489,
"eventListeners": 33,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2029.258000000027,
"styleRecalcs": 7,
"styleRecalcDurationMs": 5.044999999999997,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 529.44,
"heapDeltaBytes": -12639528,
"heapUsedBytes": 70746816,
"domNodes": -282,
"jsHeapTotalBytes": 3928064,
"scriptDurationMs": 11.873999999999999,
"eventListeners": -177,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "minimap-idle",
"durationMs": 2026.8399999999929,
"styleRecalcs": 9,
"styleRecalcDurationMs": 5.821,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 537.196,
"heapDeltaBytes": -13271488,
"heapUsedBytes": 70192420,
"domNodes": -276,
"jsHeapTotalBytes": 3928064,
"scriptDurationMs": 13.690999999999999,
"eventListeners": -149,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 535.8099999999695,
"styleRecalcs": 47,
"styleRecalcDurationMs": 7.8320000000000025,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 318.20899999999995,
"heapDeltaBytes": 11421796,
"heapUsedBytes": 74178404,
"domNodes": 20,
"jsHeapTotalBytes": 5767168,
"scriptDurationMs": 92.487,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 553.9710000000468,
"styleRecalcs": 46,
"styleRecalcDurationMs": 7.927000000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 335.42699999999996,
"heapDeltaBytes": 11927920,
"heapUsedBytes": 74000552,
"domNodes": 18,
"jsHeapTotalBytes": 4718592,
"scriptDurationMs": 97.02900000000001,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 2039.0140000000088,
"styleRecalcs": 10,
"styleRecalcDurationMs": 5.3599999999999985,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 434.75399999999996,
"heapDeltaBytes": -4724880,
"heapUsedBytes": 57785792,
"domNodes": -280,
"jsHeapTotalBytes": 3923968,
"scriptDurationMs": 6.308000000000001,
"eventListeners": -151,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 2009.7879999999577,
"styleRecalcs": 9,
"styleRecalcDurationMs": 5.941999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 448.523,
"heapDeltaBytes": 8644108,
"heapUsedBytes": 71071016,
"domNodes": -282,
"jsHeapTotalBytes": 4710400,
"scriptDurationMs": 6.191000000000001,
"eventListeners": -153,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1690.0269999999864,
"styleRecalcs": 75,
"styleRecalcDurationMs": 30.477999999999998,
"layouts": 16,
"layoutDurationMs": 4.339,
"taskDurationMs": 705.493,
"heapDeltaBytes": 2253276,
"heapUsedBytes": 64499192,
"domNodes": -282,
"jsHeapTotalBytes": 4186112,
"scriptDurationMs": 67.05499999999999,
"eventListeners": -181,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1724.884999999972,
"styleRecalcs": 76,
"styleRecalcDurationMs": 28.870000000000005,
"layouts": 16,
"layoutDurationMs": 3.596,
"taskDurationMs": 675.222,
"heapDeltaBytes": -4699296,
"heapUsedBytes": 57801656,
"domNodes": -280,
"jsHeapTotalBytes": 5496832,
"scriptDurationMs": 61.892,
"eventListeners": -151,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-transition-enter",
"durationMs": 916.0389999999552,
"styleRecalcs": 21,
"styleRecalcDurationMs": 26.590000000000003,
"layouts": 16,
"layoutDurationMs": 10.956999999999999,
"taskDurationMs": 764.324,
"heapDeltaBytes": -2156956,
"heapUsedBytes": 96184980,
"domNodes": 13673,
"jsHeapTotalBytes": 14417920,
"scriptDurationMs": 13.157000000000002,
"eventListeners": 2373,
"totalBlockingTimeMs": 118,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "viewport-pan-sweep",
"durationMs": 8140.602000000001,
"styleRecalcs": 249,
"styleRecalcDurationMs": 31.972,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3541.2800000000007,
"heapDeltaBytes": 18955828,
"heapUsedBytes": 94864072,
"domNodes": -281,
"jsHeapTotalBytes": 4939776,
"scriptDurationMs": 909.611,
"eventListeners": -163,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8141.549999999938,
"styleRecalcs": 251,
"styleRecalcDurationMs": 39.888000000000005,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3515.986,
"heapDeltaBytes": 2205060,
"heapUsedBytes": 78794688,
"domNodes": -233,
"jsHeapTotalBytes": -303104,
"scriptDurationMs": 840.557,
"eventListeners": -133,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-idle",
"durationMs": 14125.270999999997,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 13135.283,
"heapDeltaBytes": -43842220,
"heapUsedBytes": 176828488,
"domNodes": -8312,
"jsHeapTotalBytes": -25038848,
"scriptDurationMs": 72.92000000000002,
"eventListeners": -16393,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.220000000000073,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 14534.90899999997,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 13344.411999999998,
"heapDeltaBytes": -38196592,
"heapUsedBytes": 182415344,
"domNodes": -8312,
"jsHeapTotalBytes": -15863808,
"scriptDurationMs": 93.599,
"eventListeners": -16391,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.223333333333237,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 16903.391999999996,
"styleRecalcs": 125,
"styleRecalcDurationMs": 17.127000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 16259.714000000002,
"heapDeltaBytes": -33304892,
"heapUsedBytes": 193978372,
"domNodes": -8312,
"jsHeapTotalBytes": -22700032,
"scriptDurationMs": 469.426,
"eventListeners": -16389,
"totalBlockingTimeMs": 5,
"frameDurationMs": 17.220000000000073,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 17111.87200000006,
"styleRecalcs": 135,
"styleRecalcDurationMs": 17.639000000000017,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 16424.174,
"heapDeltaBytes": -40335932,
"heapUsedBytes": 180347496,
"domNodes": -8312,
"jsHeapTotalBytes": -26157056,
"scriptDurationMs": 362.657,
"eventListeners": -16389,
"totalBlockingTimeMs": 0,
"frameDurationMs": 17.219999999999953,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "workflow-execution",
"durationMs": 102.42400000004181,
"styleRecalcs": 7,
"styleRecalcDurationMs": 11.161999999999999,
"layouts": 6,
"layoutDurationMs": 1.224,
"taskDurationMs": 68.62,
"heapDeltaBytes": 3061360,
"heapUsedBytes": 65284928,
"domNodes": 129,
"jsHeapTotalBytes": 262144,
"scriptDurationMs": 4.459,
"eventListeners": 25,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666682,
"p95FrameDurationMs": 16.700000000000273
},
{
"name": "workflow-execution",
"durationMs": 94.50900000001639,
"styleRecalcs": 7,
"styleRecalcDurationMs": 8.947000000000001,
"layouts": 1,
"layoutDurationMs": 0.6510000000000001,
"taskDurationMs": 58.809,
"heapDeltaBytes": 3028272,
"heapUsedBytes": 65244736,
"domNodes": 126,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 4.136000000000001,
"eventListeners": 25,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66999999999998,
"p95FrameDurationMs": 16.700000000000273
}
]
} |
|
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 (1)
Included review availability: 0 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour. 📝 WalkthroughWalkthroughAdded Playwright coverage for video asset multi-selection. The test mocks video assets and view responses, then validates plain clicks, Ctrl/Cmd-click selection, Shift-click range selection, deselection, and bulk action controls. ChangesVideo asset selection tests
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This PR adds focused coverage for modifier-based multi-selection of video assets without changing product behavior. No actionable merge-blocking risk remains beyond normal checks and review. Important Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 inconclusive)
✅ Passed checks (6 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## main #15655 +/- ##
==========================================
+ Coverage 79.39% 81.86% +2.47%
==========================================
Files 2217 1887 -330
Lines 112188 107228 -4960
Branches 35091 34361 -730
==========================================
- Hits 89069 87782 -1287
+ Misses 22640 19106 -3534
+ Partials 479 340 -139
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
PR Created by the Glary-Bot Agent
Automates one item from the QA test plan for cloud 1.50 → 1.51 (Asset Management, #14347 / #14765 / #14848 / #14858):
Why this item needs its own test
Video is the one media kind whose plain preview click is deliberately swallowed —
MediaAssetCard.handlePreviewClickreturns early forfileKind === 'video'so a click plays the clip instead of selecting it. That early return is skipped only while a selection modifier is held, which makes the modifier paths the only way to build a multi-selection on video.Nothing covered that. A regression in the guard would silently make video assets unselectable while images kept working. No existing spec covered shift-range click on assets of any kind.
What it asserts
Against three mocked video jobs, in one test:
Selection is read from real state —
[data-selected="true"]counts plus the footer text — not from the click merely succeeding.Verification
MediaAssetCard.handlePreviewClick(if (fileKind.value === 'video') return) turns the test red. It is not a vacuous pass.pnpm lint,pnpm format:check,pnpm typecheckclean.Uses
ControlOrMetaso the Cmd path is exercised on macOS runners rather than only Ctrl.plain_video.mp4is served for the mocked/api/viewresponses so the cards mount a real<video>element.Screenshots