{"numTotalTestSuites":158,"numPassedTestSuites":158,"numFailedTestSuites":0,"numPendingTestSuites":0,"numTotalTests":402,"numPassedTests":402,"numFailedTests":0,"numPendingTests":0,"numTodoTests":0,"snapshot":{"added":0,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":0,"total":0,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0,"didUpdate":false},"startTime":1786448823096,"success":true,"testResults":[{"assertionResults":[{"ancestorTitles":["AbandonedPlansTable"],"fullName":"AbandonedPlansTable renders honest metadata and restores a row","status":"passed","title":"renders honest metadata and restores a row","duration":327.02551399999993,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AbandonedPlansTable"],"fullName":"AbandonedPlansTable links the exact soft-delete empty state back to plans","status":"passed","title":"links the exact soft-delete empty state back to plans","duration":15.027299000000312,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AbandonedPlansTable"],"fullName":"AbandonedPlansTable reorders rows when a sortable header is clicked","status":"passed","title":"reorders rows when a sortable header is clicked","duration":132.1933340000005,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448835935,"endTime":1786448836409.1934,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AbandonedPlansTable.test.tsx"},{"assertionResults":[{"ancestorTitles":["ActionsMenu"],"fullName":"ActionsMenu opens with Enter, cycles focus with arrows, selects, and renders a divider","status":"passed","title":"opens with Enter, cycles focus with arrows, selects, and renders a divider","duration":234.08787699999993,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["ActionsMenu"],"fullName":"ActionsMenu closes on Escape and outside pointer interaction","status":"passed","title":"closes on Escape and outside pointer interaction","duration":49.0372440000001,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448832115,"endTime":1786448832398.0374,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ActionsMenu.test.tsx"},{"assertionResults":[{"ancestorTitles":["AgentComposer"],"fullName":"AgentComposer disables sending while in flight and clears text on success","status":"passed","title":"disables sending while in flight and clears text on success","duration":263.825916,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AgentComposer"],"fullName":"AgentComposer surfaces send errors inline and preserves the message","status":"passed","title":"surfaces send errors inline and preserves the message","duration":45.15203999999994,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448836231,"endTime":1786448836540.152,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentComposer.test.tsx"},{"assertionResults":[{"ancestorTitles":["AgentFeed"],"fullName":"AgentFeed sorts turn cards chronologically","status":"passed","title":"sorts turn cards chronologically","duration":49.39108600000009,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AgentFeed"],"fullName":"AgentFeed marks an unfinished live turn as in progress","status":"passed","title":"marks an unfinished live turn as in progress","duration":6.712829000000056,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AgentFeed"],"fullName":"AgentFeed renders an ended banner for historical activity","status":"passed","title":"renders an ended banner for historical activity","duration":14.96035199999983,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AgentFeed"],"fullName":"AgentFeed labels absent raw event detail without inventing a harness version gap","status":"passed","title":"labels absent raw event detail without inventing a harness version gap","duration":150.76289900000006,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AgentFeed"],"fullName":"AgentFeed renders hostile authoritative payload as text","status":"passed","title":"renders hostile authoritative payload as text","duration":15.282077999999956,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448831828,"endTime":1786448832065.282,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentFeed.test.tsx"},{"assertionResults":[{"ancestorTitles":["AgentMetaSidebar"],"fullName":"AgentMetaSidebar renders recorded metadata and not-recorded account fallback","status":"passed","title":"renders recorded metadata and not-recorded account fallback","duration":226.95725500000003,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AgentMetaSidebar"],"fullName":"AgentMetaSidebar renders the journaled executing account when present","status":"passed","title":"renders the journaled executing account when present","duration":6.090556000000106,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448839318,"endTime":1786448839551.0906,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentMetaSidebar.test.tsx"},{"assertionResults":[{"ancestorTitles":["AgentModeToggle"],"fullName":"AgentModeToggle switches between live and historical views","status":"passed","title":"switches between live and historical views","duration":184.01793099999986,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AgentModeToggle"],"fullName":"AgentModeToggle disables live mode for an ended attempt","status":"passed","title":"disables live mode for an ended attempt","duration":15.581887000000052,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448844892,"endTime":1786448845091.5818,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentModeToggle.test.tsx"},{"assertionResults":[{"ancestorTitles":["AgentStatusBar"],"fullName":"AgentStatusBar queues restart for five seconds and supports undo or commit","status":"passed","title":"queues restart for five seconds and supports undo or commit","duration":240.886663,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AgentStatusBar"],"fullName":"AgentStatusBar labels unsupported controls from explicit capability state","status":"passed","title":"labels unsupported controls from explicit capability state","duration":36.59668999999985,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AgentStatusBar"],"fullName":"AgentStatusBar queues an enabled kill behind confirmation undo","status":"passed","title":"queues an enabled kill behind confirmation undo","duration":15.428512999999839,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448830443,"endTime":1786448830735.4285,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentStatusBar.test.tsx"},{"assertionResults":[{"ancestorTitles":["AmplificationSpark"],"fullName":"AmplificationSpark renders the newest ten gates in input order and caps the ring","status":"passed","title":"renders the newest ten gates in input order and caps the ring","duration":268.1168089999999,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AmplificationSpark"],"fullName":"AmplificationSpark renders paired compute and wall bars for every visible run","status":"passed","title":"renders paired compute and wall bars for every visible run","duration":14.592106999999942,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AmplificationSpark"],"fullName":"AmplificationSpark renders the median multiplier","status":"passed","title":"renders the median multiplier","duration":10.660035999999991,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AmplificationSpark"],"fullName":"AmplificationSpark excludes zero and invalid compute denominators from the median","status":"passed","title":"excludes zero and invalid compute denominators from the median","duration":9.677616000000171,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AmplificationSpark"],"fullName":"AmplificationSpark renders an honest warm-up gap for complete empty history","status":"passed","title":"renders an honest warm-up gap for complete empty history","duration":12.071815999999899,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AmplificationSpark"],"fullName":"AmplificationSpark renders restart warm-up without claiming persisted history","status":"passed","title":"renders restart warm-up without claiming persisted history","duration":10.628489999999829,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AmplificationSpark"],"fullName":"AmplificationSpark renders incomplete history as a gap even when returned samples exist","status":"passed","title":"renders incomplete history as a gap even when returned samples exist","duration":5.934322000000066,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448828749,"endTime":1786448829080.9343,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AmplificationSpark.test.tsx"},{"assertionResults":[{"ancestorTitles":["AttentionPanel"],"fullName":"AttentionPanel renders three shared-grid attention rows","status":"passed","title":"renders three shared-grid attention rows","duration":180.22765100000015,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AttentionPanel"],"fullName":"AttentionPanel renders neutral empty state","status":"passed","title":"renders neutral empty state","duration":3.805242999999791,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AttentionPanel"],"fullName":"AttentionPanel renders agent actions as real links","status":"passed","title":"renders agent actions as real links","duration":29.629472000000078,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["AttentionPanel"],"fullName":"AttentionPanel makes every row span the panel grid tracks","status":"passed","title":"makes every row span the panel grid tracks","duration":17.099960999999894,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448837558,"endTime":1786448837789.0999,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AttentionPanel.test.tsx"},{"assertionResults":[{"ancestorTitles":["BotTable"],"fullName":"BotTable renders one row per bot with its metrics","status":"passed","title":"renders one row per bot with its metrics","duration":222.91360600000007,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["BotTable"],"fullName":"BotTable shows a dash for null cost on a stopped bot","status":"passed","title":"shows a dash for null cost on a stopped bot","duration":15.351051000000552,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["BotTable"],"fullName":"BotTable renders the exact column headers","status":"passed","title":"renders the exact column headers","duration":29.593751999999768,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["BotTable"],"fullName":"BotTable renders full-density columns with search","status":"passed","title":"renders full-density columns with search","duration":37.15801400000055,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448842281,"endTime":1786448842586.158,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/BotTable.test.tsx"},{"assertionResults":[{"ancestorTitles":["Button"],"fullName":"Button defaults to a solid accent md button and fires onClick","status":"passed","title":"defaults to a solid accent md button and fires onClick","duration":217.46855900000014,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["Button"],"fullName":"Button applies variant and tone classes","status":"passed","title":"applies variant and tone classes","duration":3.5782050000000254,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["Button"],"fullName":"Button applies ghost neutral classes","status":"passed","title":"applies ghost neutral classes","duration":3.0266639999999825,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["Button"],"fullName":"Button merges className, passes through disabled and data-* attributes","status":"passed","title":"merges className, passes through disabled and data-* attributes","duration":2.7320170000000417,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["Button"],"fullName":"Button supports type=submit passthrough","status":"passed","title":"supports type=submit passthrough","duration":9.911264999999958,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448836176,"endTime":1786448836412.9114,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Button.test.tsx"},{"assertionResults":[{"ancestorTitles":["Checkbox"],"fullName":"Checkbox labels the control and reports the toggled state","status":"passed","title":"labels the control and reports the toggled state","duration":201.06556,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["Checkbox"],"fullName":"Checkbox carries its warning as visible text linked by aria-describedby, not colour alone","status":"passed","title":"carries its warning as visible text linked by aria-describedby, not colour alone","duration":15.881616000000122,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["Checkbox"],"fullName":"Checkbox links its error text and marks the field invalid","status":"passed","title":"links its error text and marks the field invalid","duration":19.73670900000002,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448837766,"endTime":1786448838002.7368,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Checkbox.test.tsx"},{"assertionResults":[{"ancestorTitles":["CiCoverageBanner"],"fullName":"CiCoverageBanner renders headline, action, and tooltip detail","status":"passed","title":"renders headline, action, and tooltip detail","duration":70.48726499999998,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448841201,"endTime":1786448841271.4873,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/CiCoverageBanner.test.tsx"},{"assertionResults":[{"ancestorTitles":["ClusterQueue"],"fullName":"ClusterQueue renders tickets and wedge row","status":"passed","title":"renders tickets and wedge row","duration":93.53523799999994,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["ClusterQueue"],"fullName":"ClusterQueue reorders rows when a sortable header is clicked","status":"passed","title":"reorders rows when a sortable header is clicked","duration":191.58027500000026,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448844843,"endTime":1786448845128.5803,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ClusterQueue.test.tsx"},{"assertionResults":[{"ancestorTitles":["CriterionRow"],"fullName":"CriterionRow renders id, text, and the verdict badge","status":"passed","title":"renders id, text, and the verdict badge","duration":39.06034900000009,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["CriterionRow"],"fullName":"CriterionRow renders an em dash when reachedAt is null","status":"passed","title":"renders an em dash when reachedAt is null","duration":4.939276999999947,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["CriterionRow"],"fullName":"CriterionRow renders an em dash when reachedAt is omitted","status":"passed","title":"renders an em dash when reachedAt is omitted","duration":3.3867629999999735,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["CriterionRow"],"fullName":"CriterionRow renders the reachedAt date string when present","status":"passed","title":"renders the reachedAt date string when present","duration":2.925903000000062,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["CriterionRow"],"fullName":"CriterionRow renders an evidence subline when evidence is present","status":"passed","title":"renders an evidence subline when evidence is present","duration":3.821822999999995,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["CriterionRow"],"fullName":"CriterionRow renders no subline when evidence is absent","status":"passed","title":"renders no subline when evidence is absent","duration":3.025045000000091,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448836759,"endTime":1786448836817.0251,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/CriterionRow.test.tsx"},{"assertionResults":[{"ancestorTitles":["DataCoveragePanel"],"fullName":"DataCoveragePanel renders every gap and its linked spec reference","status":"passed","title":"renders every gap and its linked spec reference","duration":151.38686499999994,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448845177,"endTime":1786448845328.387,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DataCoveragePanel.test.tsx"},{"assertionResults":[{"ancestorTitles":["DecisionDialog"],"fullName":"DecisionDialog holds abort for five seconds and commits exactly once on expiry","status":"passed","title":"holds abort for five seconds and commits exactly once on expiry","duration":289.57252400000016,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DecisionDialog"],"fullName":"DecisionDialog undoes abort without sending a decision","status":"passed","title":"undoes abort without sending a decision","duration":28.28663800000004,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DecisionDialog"],"fullName":"DecisionDialog decides non-abort options immediately","status":"passed","title":"decides non-abort options immediately","duration":30.88081800000009,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DecisionDialog"],"fullName":"DecisionDialog labels detail fields missing from the harness","status":"passed","title":"labels detail fields missing from the harness","duration":6.85336499999994,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448830041,"endTime":1786448830396.8533,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DecisionDialog.test.tsx"},{"assertionResults":[{"ancestorTitles":["DecisionRow"],"fullName":"DecisionRow renders collapsed row chrome from the mockup","status":"passed","title":"renders collapsed row chrome from the mockup","duration":273.8378539999999,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DecisionRow"],"fullName":"DecisionRow toggles expanded detail when the title row is clicked","status":"passed","title":"toggles expanded detail when the title row is clicked","duration":48.91804000000002,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DecisionRow"],"fullName":"DecisionRow shows expanded sections and fires option / free-text callbacks","status":"passed","title":"shows expanded sections and fires option / free-text callbacks","duration":47.47286600000007,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DecisionRow"],"fullName":"DecisionRow marks old waiting age and preserves free text in the error state","status":"passed","title":"marks old waiting age and preserves free text in the error state","duration":7.461662999999817,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448828680,"endTime":1786448829057.4617,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DecisionRow.test.tsx"},{"assertionResults":[{"ancestorTitles":["DeckTooltip"],"fullName":"DeckTooltip renders bold and muted lines for a hovered target","status":"passed","title":"renders bold and muted lines for a hovered target","duration":212.18043500000022,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DeckTooltip"],"fullName":"DeckTooltip repositions inside the viewport near the right edge","status":"passed","title":"repositions inside the viewport near the right edge","duration":23.400516000000152,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DeckTooltip"],"fullName":"DeckTooltip hides when the pointer leaves the target","status":"passed","title":"hides when the pointer leaves the target","duration":19.692164000000048,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448835105,"endTime":1786448835359.6921,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DeckTooltip.test.tsx"},{"assertionResults":[{"ancestorTitles":["DetailDrawer"],"fullName":"DetailDrawer uses the default responsive width when size is omitted","status":"passed","title":"uses the default responsive width when size is omitted","duration":183.86384900000007,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DetailDrawer"],"fullName":"DetailDrawer uses the wide responsive width when requested","status":"passed","title":"uses the wide responsive width when requested","duration":11.413622000000032,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DetailDrawer"],"fullName":"DetailDrawer uses the wide responsive width when draggable","status":"passed","title":"uses the wide responsive width when draggable","duration":24.326825999999983,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DetailDrawer"],"fullName":"DetailDrawer renders the dialog shell, header, body slot, and close control","status":"passed","title":"renders the dialog shell, header, body slot, and close control","duration":57.56552499999998,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DetailDrawer"],"fullName":"DetailDrawer closes when Escape is pressed","status":"passed","title":"closes when Escape is pressed","duration":8.249503000000004,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DetailDrawer"],"fullName":"DetailDrawer moves focus into the drawer when it opens","status":"passed","title":"moves focus into the drawer when it opens","duration":19.951017000000093,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DetailDrawer"],"fullName":"DetailDrawer keeps Tab focus trapped inside the drawer while open","status":"passed","title":"keeps Tab focus trapped inside the drawer while open","duration":38.49748599999998,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DetailDrawer"],"fullName":"DetailDrawer restores focus to the trigger element when the drawer closes","status":"passed","title":"restores focus to the trigger element when the drawer closes","duration":22.226572999999917,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DetailDrawer"],"fullName":"DetailDrawer does not steal focus back to the close control when the parent re-renders with a new onClose identity","status":"passed","title":"does not steal focus back to the close control when the parent re-renders with a new onClose identity","duration":17.337870999999723,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DetailDrawer"],"fullName":"DetailDrawer closes from the backdrop without clicking through to content behind the drawer","status":"passed","title":"closes from the backdrop without clicking through to content behind the drawer","duration":6.5409050000002935,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DetailDrawer"],"fullName":"DetailDrawer does not close when a pointerdown occurs inside the drawer","status":"passed","title":"does not close when a pointerdown occurs inside the drawer","duration":13.390574999999899,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DetailDrawer"],"fullName":"DetailDrawer moves when its drag handle is used","status":"passed","title":"moves when its drag handle is used","duration":33.71177200000011,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DetailDrawer"],"fullName":"DetailDrawer moves by a fixed step when the drag handle is nudged with an arrow key","status":"passed","title":"moves by a fixed step when the drag handle is nudged with an arrow key","duration":36.20384899999999,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DetailDrawer"],"fullName":"DetailDrawer leaves navigation available when used as a persistent workspace","status":"passed","title":"leaves navigation available when used as a persistent workspace","duration":6.6969960000001265,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DetailDrawer"],"fullName":"DetailDrawer does not trap Tab inside a non-modal drawer","status":"passed","title":"does not trap Tab inside a non-modal drawer","duration":13.984484000000066,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448824799,"endTime":1786448825293.9844,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx"},{"assertionResults":[{"ancestorTitles":["DistanceToDone"],"fullName":"DistanceToDone renders verified counts, cells, ETA, fix-loop share, and truth note","status":"passed","title":"renders verified counts, cells, ETA, fix-loop share, and truth note","duration":190.15982499999996,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DistanceToDone"],"fullName":"DistanceToDone renders labeled gaps without metric numbers when ETA and fix-loop data are absent","status":"passed","title":"renders labeled gaps without metric numbers when ETA and fix-loop data are absent","duration":5.803548000000092,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["DistanceToDone"],"fullName":"DistanceToDone renders a task-cell alarm ring only when the cell is alarmed","status":"passed","title":"renders a task-cell alarm ring only when the cell is alarmed","duration":7.405483000000004,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448832697,"endTime":1786448832900.4055,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DistanceToDone.test.tsx"},{"assertionResults":[{"ancestorTitles":["FilterInput"],"fullName":"FilterInput forwards text changes and exposes a clear affordance only when populated","status":"passed","title":"forwards text changes and exposes a clear affordance only when populated","duration":221.28568600000017,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448843912,"endTime":1786448844133.2856,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/FilterInput.test.tsx"},{"assertionResults":[{"ancestorTitles":["HostLogsModal"],"fullName":"HostLogsModal renders log lines in a monospace scrollable body","status":"passed","title":"renders log lines in a monospace scrollable body","duration":32.65618799999993,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["HostLogsModal"],"fullName":"HostLogsModal shows loading, empty, and error states honestly","status":"passed","title":"shows loading, empty, and error states honestly","duration":144.51847499999985,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["HostLogsModal"],"fullName":"HostLogsModal invokes onClose and onRefresh","status":"passed","title":"invokes onClose and onRefresh","duration":47.02765499999987,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448832176,"endTime":1786448832400.0276,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/HostLogsModal.test.tsx"},{"assertionResults":[{"ancestorTitles":["IconButton"],"fullName":"IconButton exposes its label, tooltip, hit target, and fixed 16px icon slot","status":"passed","title":"exposes its label, tooltip, hit target, and fixed 16px icon slot","duration":165.20793100000014,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448842558,"endTime":1786448842723.208,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/IconButton.test.tsx"},{"assertionResults":[{"ancestorTitles":["IdleTimer"],"fullName":"IdleTimer renders the A10 gap without starting a fake clock","status":"passed","title":"renders the A10 gap without starting a fake clock","duration":35.796955000000025,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["IdleTimer"],"fullName":"IdleTimer renders Working at its threshold boundary","status":"passed","title":"renders Working at its threshold boundary","duration":4.378905000000032,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["IdleTimer"],"fullName":"IdleTimer renders No progress at its threshold boundary","status":"passed","title":"renders No progress at its threshold boundary","duration":3.479376000000002,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["IdleTimer"],"fullName":"IdleTimer renders Watchdog recovering at its threshold boundary","status":"passed","title":"renders Watchdog recovering at its threshold boundary","duration":2.9376740000000154,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["IdleTimer"],"fullName":"IdleTimer renders Ended at its threshold boundary","status":"passed","title":"renders Ended at its threshold boundary","duration":3.741032000000132,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["IdleTimer"],"fullName":"IdleTimer ticks once per second when watchdog data is present","status":"passed","title":"ticks once per second when watchdog data is present","duration":5.505558999999948,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448838097,"endTime":1786448838152.5056,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/IdleTimer.test.tsx"},{"assertionResults":[{"ancestorTitles":["InboxItem"],"fullName":"InboxItem renders title, subtitle, and both actions","status":"passed","title":"renders title, subtitle, and both actions","duration":266.5412530000001,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["InboxItem"],"fullName":"InboxItem fires the action callback for the clicked button","status":"passed","title":"fires the action callback for the clicked button","duration":19.42530099999999,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["InboxItem"],"fullName":"InboxItem maps dot=red to bg-danger","status":"passed","title":"maps dot=red to bg-danger","duration":3.724623000000065,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["InboxItem"],"fullName":"InboxItem maps dot=amber to bg-warning","status":"passed","title":"maps dot=amber to bg-warning","duration":2.80293400000005,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["InboxItem"],"fullName":"InboxItem maps dot=blue to bg-accent","status":"passed","title":"maps dot=blue to bg-accent","duration":3.2257710000001225,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448839340,"endTime":1786448839636.2258,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/InboxItem.test.tsx"},{"assertionResults":[{"ancestorTitles":["KpiTile"],"fullName":"KpiTile formats a *Ms tile value as a duration","status":"passed","title":"formats a *Ms tile value as a duration","duration":47.83999300000005,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["KpiTile"],"fullName":"KpiTile renders a non-Ms tile value as a plain number","status":"passed","title":"renders a non-Ms tile value as a plain number","duration":8.744752000000062,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["KpiTile"],"fullName":"KpiTile renders every real tile from the forensics fixture without crashing","status":"passed","title":"renders every real tile from the forensics fixture without crashing","duration":15.654622000000018,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448842359,"endTime":1786448842430.6545,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/KpiTile.test.tsx"},{"assertionResults":[{"ancestorTitles":["KvPanel"],"fullName":"KvPanel renders every row label and value","status":"passed","title":"renders every row label and value","duration":51.671732999999904,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["KvPanel"],"fullName":"KvPanel applies the err intent color to a failing row","status":"passed","title":"applies the err intent color to a failing row","duration":4.875538000000006,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["KvPanel"],"fullName":"KvPanel defaults to neutral color when intent is omitted","status":"passed","title":"defaults to neutral color when intent is omitted","duration":4.510784000000058,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448843982,"endTime":1786448844043.5107,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/KvPanel.test.tsx"},{"assertionResults":[{"ancestorTitles":["LaneBar"],"fullName":"LaneBar maps every returned job to one segment without hook-order violations","status":"passed","title":"maps every returned job to one segment without hook-order violations","duration":35.67773000000011,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LaneBar"],"fullName":"LaneBar stripes only the infra-classified job when jobs are complete","status":"passed","title":"stripes only the infra-classified job when jobs are complete","duration":11.405872000000045,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LaneBar"],"fullName":"LaneBar keeps returned lanes visible under jobs incomplete and suppresses striping","status":"passed","title":"keeps returned lanes visible under jobs incomplete and suppresses striping","duration":7.772936999999956,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LaneBar"],"fullName":"LaneBar renders a named empty lane state","status":"passed","title":"renders a named empty lane state","duration":3.199497000000065,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448834713,"endTime":1786448834771.1995,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneBar.test.tsx"},{"assertionResults":[{"ancestorTitles":["LaneSegment"],"fullName":"LaneSegment attaches exactly one tooltip target with job name and duration","status":"passed","title":"attaches exactly one tooltip target with job name and duration","duration":63.669384000000036,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LaneSegment"],"fullName":"LaneSegment uses the semantic success lane color","status":"passed","title":"uses the semantic success lane color","duration":9.485591999999997,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LaneSegment"],"fullName":"LaneSegment uses the semantic failure lane color","status":"passed","title":"uses the semantic failure lane color","duration":3.1746650000000045,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LaneSegment"],"fullName":"LaneSegment uses the semantic running lane color","status":"passed","title":"uses the semantic running lane color","duration":2.32630499999982,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LaneSegment"],"fullName":"LaneSegment uses the semantic queued lane color","status":"passed","title":"uses the semantic queued lane color","duration":3.8052110000000994,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LaneSegment"],"fullName":"LaneSegment suppresses infra striping when jobs are incomplete","status":"passed","title":"suppresses infra striping when jobs are incomplete","duration":4.303199000000177,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448833346,"endTime":1786448833432.3032,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneSegment.test.tsx"},{"assertionResults":[{"ancestorTitles":["LimitMeter"],"fullName":"LimitMeter renders percent and cap ETA for a warn-tier account","status":"passed","title":"renders percent and cap ETA for a warn-tier account","duration":50.47090800000001,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LimitMeter"],"fullName":"LimitMeter renders percent only when there is no cap ETA","status":"passed","title":"renders percent only when there is no cap ETA","duration":5.450994000000037,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LimitMeter"],"fullName":"LimitMeter uses the warning fill above warnAt","status":"passed","title":"uses the warning fill above warnAt","duration":4.673001999999997,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LimitMeter"],"fullName":"LimitMeter uses the success fill below warnAt","status":"passed","title":"uses the success fill below warnAt","duration":2.851615000000038,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LimitMeter"],"fullName":"LimitMeter renders a dash when percent is null and status is ok","status":"passed","title":"renders a dash when percent is null and status is ok","duration":4.732348000000002,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LimitMeter"],"fullName":"LimitMeter renders broken status when percent is null and auth failed","status":"passed","title":"renders broken status when percent is null and auth failed","duration":2.6205469999999877,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448838049,"endTime":1786448838120.6206,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LimitMeter.test.tsx"},{"assertionResults":[{"ancestorTitles":["LimitsAccountsTable"],"fullName":"LimitsAccountsTable renders account labels from platform DataTable","status":"passed","title":"renders account labels from platform DataTable","duration":133.75683700000036,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LimitsAccountsTable"],"fullName":"LimitsAccountsTable renders usage summary for warn-tier rows","status":"passed","title":"renders usage summary for warn-tier rows","duration":6.580097000000023,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448847010,"endTime":1786448847150.58,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LimitsAccountsTable.test.tsx"},{"assertionResults":[{"ancestorTitles":["LinkButton"],"fullName":"LinkButton renders an accent link with optional className and data-testid","status":"passed","title":"renders an accent link with optional className and data-testid","duration":28.692977999999812,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LinkButton"],"fullName":"LinkButton renders an accent button with disabled support","status":"passed","title":"renders an accent button with disabled support","duration":143.0794780000001,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448842605,"endTime":1786448842777.0796,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LinkButton.test.tsx"},{"assertionResults":[{"ancestorTitles":["LiveDuration"],"fullName":"LiveDuration ticks elapsed time once per minute and clears its interval","status":"passed","title":"ticks elapsed time once per minute and clears its interval","duration":40.084082999999964,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["LiveDuration"],"fullName":"LiveDuration renders an honest coverage gap when start time is unavailable","status":"passed","title":"renders an honest coverage gap when start time is unavailable","duration":4.480245999999852,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448841058,"endTime":1786448841102.4802,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LiveDuration.test.tsx"},{"assertionResults":[{"ancestorTitles":["MachineCard"],"fullName":"MachineCard renders host name, load, and capability probes","status":"passed","title":"renders host name, load, and capability probes","duration":295.72299999999996,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineCard"],"fullName":"MachineCard renders enrolling state for a joining host","status":"passed","title":"renders enrolling state for a joining host","duration":8.57221699999991,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineCard"],"fullName":"MachineCard counts every placement path in running, not just controller-placed jobs","status":"passed","title":"counts every placement path in running, not just controller-placed jobs","duration":8.558084000000008,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineCard"],"fullName":"MachineCard adds seats the session ledger never recorded to the sessions count","status":"passed","title":"adds seats the session ledger never recorded to the sessions count","duration":5.536839999999984,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineCard"],"fullName":"MachineCard marks an unpublished work count unobserved rather than rendering it as zero","status":"passed","title":"marks an unpublished work count unobserved rather than rendering it as zero","duration":9.09786999999983,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineCard"],"fullName":"MachineCard reports a sessions count missing one of its two sources as a floor","status":"passed","title":"reports a sessions count missing one of its two sources as a floor","duration":5.7851190000001225,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineCard"],"fullName":"MachineCard says a host has no 24-hour history instead of showing a bare dash","status":"passed","title":"says a host has no 24-hour history instead of showing a bare dash","duration":5.071141000000125,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineCard"],"fullName":"MachineCard states why a red capability probe is red, in the chip tooltip and inline","status":"passed","title":"states why a red capability probe is red, in the chip tooltip and inline","duration":7.226210000000037,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineCard"],"fullName":"MachineCard names the telemetry gap instead of a bare dash when a host reports no load","status":"passed","title":"names the telemetry gap instead of a bare dash when a host reports no load","duration":9.369226000000026,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineCard"],"fullName":"MachineCard shows a real load for a host still enrolling rather than suppressing it","status":"passed","title":"shows a real load for a host still enrolling rather than suppressing it","duration":5.072161000000051,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineCard"],"fullName":"MachineCard marks workstation spill state","status":"passed","title":"marks workstation spill state","duration":12.331926000000294,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineCard"],"fullName":"MachineCard shows the config parity verdict with the time it was probed","status":"passed","title":"shows the config parity verdict with the time it was probed","duration":10.510907000000316,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineCard"],"fullName":"MachineCard says so when no parity verdict was recorded","status":"passed","title":"says so when no parity verdict was recorded","duration":3.519984999999906,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448824841,"endTime":1786448825227.52,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx"},{"assertionResults":[{"ancestorTitles":["MachineDetailModal"],"fullName":"MachineDetailModal shows per-core load, memory, network, and disk for a healthy host","status":"passed","title":"shows per-core load, memory, network, and disk for a healthy host","duration":107.38648199999989,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineDetailModal"],"fullName":"MachineDetailModal shows critical temperature banner only when pkg >= crit","status":"passed","title":"shows critical temperature banner only when pkg >= crit","duration":42.308492999999544,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineDetailModal"],"fullName":"MachineDetailModal invokes onAction for enabled offload buttons","status":"passed","title":"invokes onAction for enabled offload buttons","duration":343.0957589999998,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineDetailModal"],"fullName":"MachineDetailModal disables host-scoped actions without a machine and blocks while pending","status":"passed","title":"disables host-scoped actions without a machine and blocks while pending","duration":180.30372699999953,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineDetailModal"],"fullName":"MachineDetailModal enables host-logs without treating it as host-scoped offload","status":"passed","title":"enables host-logs without treating it as host-scoped offload","duration":82.17189099999996,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineDetailModal"],"fullName":"MachineDetailModal renders accessible action errors adjacent to the action group","status":"passed","title":"renders accessible action errors adjacent to the action group","duration":46.593346999999994,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineDetailModal"],"fullName":"MachineDetailModal reorders disk rows when a sortable header is clicked","status":"passed","title":"reorders disk rows when a sortable header is clicked","duration":68.66389199999958,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineDetailModal agent workload guard"],"fullName":"MachineDetailModal agent workload guard shows stall, tmpfs and per-slice facts when the box reported them","status":"passed","title":"shows stall, tmpfs and per-slice facts when the box reported them","duration":20.4229720000003,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineDetailModal agent workload guard"],"fullName":"MachineDetailModal agent workload guard reports the seats it can see as a floor, and names the source it is missing","status":"passed","title":"reports the seats it can see as a floor, and names the source it is missing","duration":29.900542000000314,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineDetailModal agent workload guard"],"fullName":"MachineDetailModal agent workload guard says no source answered rather than reporting zero sessions","status":"passed","title":"says no source answered rather than reporting zero sessions","duration":31.60692899999958,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineDetailModal agent workload guard"],"fullName":"MachineDetailModal agent workload guard says the facts are missing rather than showing zeros when the host was never sampled","status":"passed","title":"says the facts are missing rather than showing zeros when the host was never sampled","duration":24.785499999999956,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MachineDetailModal agent workload guard"],"fullName":"MachineDetailModal agent workload guard distinguishes a box with no agent slices from a box with no data","status":"passed","title":"distinguishes a box with no agent slices from a box with no data","duration":48.81248400000004,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448827509,"endTime":1786448828540.8125,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx"},{"assertionResults":[{"ancestorTitles":["MapCanvas"],"fullName":"MapCanvas renders nodes, inspector for the selected node, and SVG edges","status":"passed","title":"renders nodes, inspector for the selected node, and SVG edges","duration":206.96389299999987,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MapCanvas"],"fullName":"MapCanvas switches inspector content when another node is selected","status":"passed","title":"switches inspector content when another node is selected","duration":48.10805299999993,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448837658,"endTime":1786448837913.1082,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MapCanvas.test.tsx"},{"assertionResults":[{"ancestorTitles":["MapNode"],"fullName":"MapNode renders title, chips, and pulse state","status":"passed","title":"renders title, chips, and pulse state","duration":50.92925200000013,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["MapNode"],"fullName":"MapNode calls onSelect with the node id when clicked","status":"passed","title":"calls onSelect with the node id when clicked","duration":143.632339,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448841082,"endTime":1786448841276.6323,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MapNode.test.tsx"},{"assertionResults":[{"ancestorTitles":["OffloadControl"],"fullName":"OffloadControl renders state machine, kv rows, probes, and selected host label","status":"passed","title":"renders state machine, kv rows, probes, and selected host label","duration":232.24903300000005,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["OffloadControl"],"fullName":"OffloadControl disables host-scoped actions until a host is selected","status":"passed","title":"disables host-scoped actions until a host is selected","duration":47.27730900000006,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["OffloadControl"],"fullName":"OffloadControl disables host-scoped actions for a host the registry marks unreachable","status":"passed","title":"disables host-scoped actions for a host the registry marks unreachable","duration":23.742936999999984,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["OffloadControl"],"fullName":"OffloadControl invokes onAction and blocks duplicate submission while pending","status":"passed","title":"invokes onAction and blocks duplicate submission while pending","duration":66.05216599999994,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["OffloadControl"],"fullName":"OffloadControl disables quarantine when required command is absent and surfaces action errors","status":"passed","title":"disables quarantine when required command is absent and surfaces action errors","duration":34.716504000000214,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448827034,"endTime":1786448827438.7166,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/OffloadControl.test.tsx"},{"assertionResults":[{"ancestorTitles":["PhaseBars"],"fullName":"PhaseBars renders all six bucket labels from the real attribution payload","status":"passed","title":"renders all six bucket labels from the real attribution payload","duration":62.832341999999926,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PhaseBars"],"fullName":"PhaseBars sorts rows by totalMs descending, with the largest bucket at 100% bar width","status":"passed","title":"sorts rows by totalMs descending, with the largest bucket at 100% bar width","duration":126.06842299999994,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PhaseBars"],"fullName":"PhaseBars shows duration and share-of-total percent for each bucket","status":"passed","title":"shows duration and share-of-total percent for each bucket","duration":16.82908999999995,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448841054,"endTime":1786448841259.829,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PhaseBars.test.tsx"},{"assertionResults":[{"ancestorTitles":["PlanRunListRow"],"fullName":"PlanRunListRow renders verified run chips and absolute-time tooltip data","status":"passed","title":"renders verified run chips and absolute-time tooltip data","duration":173.60975600000006,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanRunListRow"],"fullName":"PlanRunListRow omits absent sequence and zero active-agent values","status":"passed","title":"omits absent sequence and zero active-agent values","duration":8.581945000000132,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanRunListRow"],"fullName":"PlanRunListRow selects from the row button while Open remains navigation","status":"passed","title":"selects from the row button while Open remains navigation","duration":45.65751599999999,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanRunListRow"],"fullName":"PlanRunListRow omits the timestamp instead of crashing when updatedAtMs is not finite","status":"passed","title":"omits the timestamp instead of crashing when updatedAtMs is not finite","duration":10.980129000000034,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448830617,"endTime":1786448830855.9802,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanRunListRow.test.tsx"},{"assertionResults":[{"ancestorTitles":["PlanTable"],"fullName":"PlanTable renders every plan column and searchable content","status":"passed","title":"renders every plan column and searchable content","duration":328.4717410000003,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTable"],"fullName":"PlanTable reorders rows from a sortable header using the tri-state cycle","status":"passed","title":"reorders rows from a sortable header using the tri-state cycle","duration":104.40785200000028,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTable"],"fullName":"PlanTable pre-sorts active plans first and is stable by source order","status":"passed","title":"pre-sorts active plans first and is stable by source order","duration":13.557095999999547,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTable"],"fullName":"PlanTable keeps failed actions visible while needs-you uses its shared status category","status":"passed","title":"keeps failed actions visible while needs-you uses its shared status category","duration":71.96414499999992,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448834765,"endTime":1786448835283.964,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTable.test.tsx"},{"assertionResults":[{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow opens from row click while Open remains navigation","status":"passed","title":"opens from row click while Open remains navigation","duration":248.16406899999947,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow shows running duration only for running rows","status":"passed","title":"shows running duration only for running rows","duration":13.509488000000601,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow shows a collapsed-attempts badge only when a plan has relaunches","status":"passed","title":"shows a collapsed-attempts badge only when a plan has relaunches","duration":17.891771999999946,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow renders no attempts badge for a single-launch plan","status":"passed","title":"renders no attempts badge for a single-launch plan","duration":10.166377000000466,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow renders a stalled indicator when the row is alarmed","status":"passed","title":"renders a stalled indicator when the row is alarmed","duration":14.327414000000317,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow omits the stalled indicator when the row is not alarmed","status":"passed","title":"omits the stalled indicator when the row is not alarmed","duration":10.305132999999842,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow renders the elapsed activity duration when a running row carries a start time","status":"passed","title":"renders the elapsed activity duration when a running row carries a start time","duration":14.7148559999996,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow omits the duplicate Open run action and fires abandon from the trash control","status":"passed","title":"omits the duplicate Open run action and fires abandon from the trash control","duration":79.65021199999956,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow uses the shared failed category for row actions","status":"passed","title":"uses the shared failed category for row actions","duration":56.668251999999484,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow does not expose failed actions when needs-you is the rendered category","status":"passed","title":"does not expose failed actions when needs-you is the rendered category","duration":47.55957800000033,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow disables unresolved harness actions with the pinned gap tooltip","status":"passed","title":"disables unresolved harness actions with the pinned gap tooltip","duration":34.83912099999998,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PlanTableRow"],"fullName":"PlanTableRow folds more than two actions into a menu with abandon last","status":"passed","title":"folds more than two actions into a menu with abandon last","duration":72.74633100000028,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448829098,"endTime":1786448829718.7463,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx"},{"assertionResults":[{"ancestorTitles":["PrQueueTable"],"fullName":"PrQueueTable sorts by age descending by default and toggles deterministically","status":"passed","title":"sorts by age descending by default and toggles deterministically","duration":480.2455380000001,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PrQueueTable"],"fullName":"PrQueueTable renders a Repo column for all scope and omits it for single-repo scope","status":"passed","title":"renders a Repo column for all scope and omits it for single-repo scope","duration":248.80227899999954,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PrQueueTable"],"fullName":"PrQueueTable opens the right checks in a single detail drawer for duplicate PR numbers","status":"passed","title":"opens the right checks in a single detail drawer for duplicate PR numbers","duration":68.99357399999917,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PrQueueTable"],"fullName":"PrQueueTable renders conflict, train membership, stale, and unknown states honestly","status":"passed","title":"renders conflict, train membership, stale, and unknown states honestly","duration":24.15949400000045,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PrQueueTable"],"fullName":"PrQueueTable keeps returned checks visible but suppresses passing rollups when checks are incomplete","status":"passed","title":"keeps returned checks visible but suppresses passing rollups when checks are incomplete","duration":39.065983999999844,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PrQueueTable"],"fullName":"PrQueueTable renders complete failed, pending, and passing check rollups","status":"passed","title":"renders complete failed, pending, and passing check rollups","duration":34.65305100000023,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PrQueueTable"],"fullName":"PrQueueTable labels every incomplete repository while retaining its rows","status":"passed","title":"labels every incomplete repository while retaining its rows","duration":37.044582999999875,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PrQueueTable"],"fullName":"PrQueueTable resets selection and sorts deterministically when a PR head OID changes","status":"passed","title":"resets selection and sorts deterministically when a PR head OID changes","duration":109.01176200000009,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["PrQueueTable"],"fullName":"PrQueueTable distinguishes complete empty scope from incomplete empty scope","status":"passed","title":"distinguishes complete empty scope from incomplete empty scope","duration":3.428265999999894,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448827644,"endTime":1786448828689.4282,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx"},{"assertionResults":[{"ancestorTitles":["ProjectGroupRow"],"fullName":"ProjectGroupRow renders non-zero metrics, severity stripe, activity, and expanded children","status":"passed","title":"renders non-zero metrics, severity stripe, activity, and expanded children","duration":194.4391230000001,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["ProjectGroupRow"],"fullName":"ProjectGroupRow omits zero chips, handles missing activity, and toggles","status":"passed","title":"omits zero chips, handles missing activity, and toggles","duration":20.70021900000006,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["ProjectGroupRow"],"fullName":"ProjectGroupRow reveals children when its controlled expanded state changes","status":"passed","title":"reveals children when its controlled expanded state changes","duration":24.829177000000072,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448830398,"endTime":1786448830637.829,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ProjectGroupRow.test.tsx"},{"assertionResults":[{"ancestorTitles":["RateLimitDialog"],"fullName":"RateLimitDialog renders a healthy wrapper as read-only","status":"passed","title":"renders a healthy wrapper as read-only","duration":48.37435800000003,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RateLimitDialog"],"fullName":"RateLimitDialog renders limited scope and resolves wait, retry, and switch payloads","status":"passed","title":"renders limited scope and resolves wait, retry, and switch payloads","duration":325.73477100000014,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448834875,"endTime":1786448835248.7349,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RateLimitDialog.test.tsx"},{"assertionResults":[{"ancestorTitles":["RemoteJobsTable"],"fullName":"RemoteJobsTable renders job rows with stage and rc","status":"passed","title":"renders job rows with stage and rc","duration":55.687996999999996,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RemoteJobsTable"],"fullName":"RemoteJobsTable reorders rows when a sortable header is clicked","status":"passed","title":"reorders rows when a sortable header is clicked","duration":173.0022039999999,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448845193,"endTime":1786448845422.0022,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RemoteJobsTable.test.tsx"},{"assertionResults":[{"ancestorTitles":["RepoCiStrip"],"fullName":"RepoCiStrip selects All by default and scopes it to null","status":"passed","title":"selects All by default and scopes it to null","duration":264.34521299999983,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiStrip"],"fullName":"RepoCiStrip marks and scopes only the exact selected repository","status":"passed","title":"marks and scopes only the exact selected repository","duration":78.36826099999985,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiStrip"],"fullName":"RepoCiStrip renders All first and preserves repository input order","status":"passed","title":"renders All first and preserves repository input order","duration":14.685889999999972,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiStrip"],"fullName":"RepoCiStrip renders a named gap state for an empty repository list","status":"passed","title":"renders a named gap state for an empty repository list","duration":6.529021000000057,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448834196,"endTime":1786448834560.529,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiStrip.test.tsx"},{"assertionResults":[{"ancestorTitles":["RepoCiTile"],"fullName":"RepoCiTile renders real metrics and scopes to its repository","status":"passed","title":"renders real metrics and scopes to its repository","duration":248.00451399999997,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiTile"],"fullName":"RepoCiTile does not mark the 30-minute boundary as act-red","status":"passed","title":"does not mark the 30-minute boundary as act-red","duration":6.444041999999854,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiTile"],"fullName":"RepoCiTile renders the prsComplete gap independently","status":"passed","title":"renders the prsComplete gap independently","duration":9.172644000000219,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiTile"],"fullName":"RepoCiTile renders the queueComplete gap independently","status":"passed","title":"renders the queueComplete gap independently","duration":3.8336550000001353,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiTile"],"fullName":"RepoCiTile renders the refsComplete gap independently","status":"passed","title":"renders the refsComplete gap independently","duration":6.6332219999999325,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiTile"],"fullName":"RepoCiTile renders the trainRunsComplete gap independently","status":"passed","title":"renders the trainRunsComplete gap independently","duration":3.720149999999876,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiTile"],"fullName":"RepoCiTile suppresses operator warnings when poll rotation serves cached data","status":"passed","title":"suppresses operator warnings when poll rotation serves cached data","duration":3.6314649999999347,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiTile"],"fullName":"RepoCiTile preserves simultaneous completeness gaps with actionable copy","status":"passed","title":"preserves simultaneous completeness gaps with actionable copy","duration":10.90044899999998,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RepoCiTile"],"fullName":"RepoCiTile renders labeled gaps for unknown metrics instead of zeroes","status":"passed","title":"renders labeled gaps for unknown metrics instead of zeroes","duration":15.07771600000001,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448828904,"endTime":1786448829211.0776,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx"},{"assertionResults":[{"ancestorTitles":["RunCommandBar"],"fullName":"RunCommandBar disables unsupported controls with an explicit capability reason","status":"passed","title":"disables unsupported controls with an explicit capability reason","duration":258.0101770000001,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunCommandBar"],"fullName":"RunCommandBar invokes supported pause and kill controls","status":"passed","title":"invokes supported pause and kill controls","duration":48.50903799999992,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunCommandBar"],"fullName":"RunCommandBar cancels a pending kill confirmation with Escape","status":"passed","title":"cancels a pending kill confirmation with Escape","duration":35.556331999999884,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunCommandBar"],"fullName":"RunCommandBar omits a missing update timestamp without fabricating a value","status":"passed","title":"omits a missing update timestamp without fabricating a value","duration":10.98368000000005,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448830965,"endTime":1786448831317.9836,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunCommandBar.test.tsx"},{"assertionResults":[{"ancestorTitles":["RunLanes"],"fullName":"RunLanes renders a landed X/Y summary for a done run","status":"passed","title":"renders a landed X/Y summary for a done run","duration":51.490949999999884,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunLanes"],"fullName":"RunLanes renders a crashed outcome in the danger color with a cap marker","status":"passed","title":"renders a crashed outcome in the danger color with a cap marker","duration":10.127478999999994,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunLanes"],"fullName":"RunLanes attributes each segment to its own run by time range, not to every run","status":"passed","title":"attributes each segment to its own run by time range, not to every run","duration":6.632456000000047,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448839198,"endTime":1786448839266.6326,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunLanes.test.tsx"},{"assertionResults":[{"ancestorTitles":["RunTable"],"fullName":"RunTable renders one row per run with every real payload field","status":"passed","title":"renders one row per run with every real payload field","duration":115.66890500000045,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunTable"],"fullName":"RunTable colors the status dot green for done and red for crash","status":"passed","title":"colors the status dot green for done and red for crash","duration":14.058957000000191,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunTable"],"fullName":"RunTable renders the exact column headers","status":"passed","title":"renders the exact column headers","duration":29.44588500000009,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunTable"],"fullName":"RunTable reorders rows when a sortable header is clicked","status":"passed","title":"reorders rows when a sortable header is clicked","duration":217.1541900000002,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448839443,"endTime":1786448839819.1543,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunTable.test.tsx"},{"assertionResults":[{"ancestorTitles":["RunnerFleetStrip"],"fullName":"RunnerFleetStrip renders runner registration scope when provided","status":"passed","title":"renders runner registration scope when provided","duration":47.402176000000054,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunnerFleetStrip"],"fullName":"RunnerFleetStrip renders a busy runner current job and repository","status":"passed","title":"renders a busy runner current job and repository","duration":204.78753800000004,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunnerFleetStrip"],"fullName":"RunnerFleetStrip renders an idle runner without a current assignment","status":"passed","title":"renders an idle runner without a current assignment","duration":25.37127099999998,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunnerFleetStrip"],"fullName":"RunnerFleetStrip renders explicit unknown and suppresses unverified current assignment values","status":"passed","title":"renders explicit unknown and suppresses unverified current assignment values","duration":19.21415499999989,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunnerFleetStrip"],"fullName":"RunnerFleetStrip shows aggregate occupancy and head-of-line saturation for a non-empty all-busy online fleet","status":"passed","title":"shows aggregate occupancy and head-of-line saturation for a non-empty all-busy online fleet","duration":15.071267999999918,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunnerFleetStrip"],"fullName":"RunnerFleetStrip does not show saturation at the exact fifteen-minute threshold","status":"passed","title":"does not show saturation at the exact fifteen-minute threshold","duration":4.493058999999903,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunnerFleetStrip"],"fullName":"RunnerFleetStrip labels incomplete runner data, hides aggregate occupancy, and suppresses saturation","status":"passed","title":"labels incomplete runner data, hides aggregate occupancy, and suppresses saturation","duration":5.650280000000066,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunnerFleetStrip"],"fullName":"RunnerFleetStrip renders a complete empty fleet without saturation","status":"passed","title":"renders a complete empty fleet without saturation","duration":3.9528020000000197,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["RunnerFleetStrip"],"fullName":"RunnerFleetStrip never renders saturation for an all-offline fleet with an old queue","status":"passed","title":"never renders saturation for an all-offline fleet with an old queue","duration":3.9906570000000556,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448826956,"endTime":1786448827285.9907,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx"},{"assertionResults":[{"ancestorTitles":["ScoreCard"],"fullName":"ScoreCard renders value/max and an up trend","status":"passed","title":"renders value/max and an up trend","duration":51.77581000000009,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["ScoreCard"],"fullName":"ScoreCard sizes the progress bar fill to value/max","status":"passed","title":"sizes the progress bar fill to value/max","duration":5.862769999999955,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["ScoreCard"],"fullName":"ScoreCard renders a flat trend in the danger color","status":"passed","title":"renders a flat trend in the danger color","duration":3.9998809999999594,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["ScoreCard"],"fullName":"ScoreCard honors a custom bar color class","status":"passed","title":"honors a custom bar color class","duration":4.040711999999985,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448841241,"endTime":1786448841307.0408,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ScoreCard.test.tsx"},{"assertionResults":[{"ancestorTitles":["SectionCard"],"fullName":"SectionCard renders the title and children","status":"passed","title":"renders the title and children","duration":49.406818999999814,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SectionCard"],"fullName":"SectionCard hides the children when collapsed and reports aria-expanded","status":"passed","title":"hides the children when collapsed and reports aria-expanded","duration":157.2227580000001,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SectionCard"],"fullName":"SectionCard shows the children when expanded","status":"passed","title":"shows the children when expanded","duration":18.59072900000001,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SectionCard"],"fullName":"SectionCard calls onToggle when the title button is clicked","status":"passed","title":"calls onToggle when the title button is clicked","duration":26.76850599999989,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SectionCard"],"fullName":"SectionCard keeps the title as plain text without collapsible props","status":"passed","title":"keeps the title as plain text without collapsible props","duration":3.3299460000000636,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SectionCard"],"fullName":"SectionCard renders a link action when href is given","status":"passed","title":"renders a link action when href is given","duration":16.983812999999827,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SectionCard"],"fullName":"SectionCard renders a button action and fires onClick when no href is given","status":"passed","title":"renders a button action and fires onClick when no href is given","duration":7.8676020000000335,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SectionCard"],"fullName":"SectionCard renders a titleBadge inline with the title","status":"passed","title":"renders a titleBadge inline with the title","duration":2.6220820000000913,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448830334,"endTime":1786448830617.622,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionCard.test.tsx"},{"assertionResults":[{"ancestorTitles":["SectionHeading"],"fullName":"SectionHeading renders the title and subtitle","status":"passed","title":"renders the title and subtitle","duration":34.00078600000006,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SectionHeading"],"fullName":"SectionHeading renders a link action when href is given","status":"passed","title":"renders a link action when href is given","duration":175.19737099999998,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SectionHeading"],"fullName":"SectionHeading renders a button action and fires onClick when no href is given","status":"passed","title":"renders a button action and fires onClick when no href is given","duration":21.576078000000052,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SectionHeading"],"fullName":"SectionHeading renders a titleBadge inline with the title","status":"passed","title":"renders a titleBadge inline with the title","duration":2.919926000000032,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448840688,"endTime":1786448840921.92,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionHeading.test.tsx"},{"assertionResults":[{"ancestorTitles":["SegmentDetailDrawer"],"fullName":"SegmentDetailDrawer renders when, who, note, evidence, and the agent link","status":"passed","title":"renders when, who, note, evidence, and the agent link","duration":199.7556750000001,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448843854,"endTime":1786448844053.7556,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SegmentDetailDrawer.test.tsx"},{"assertionResults":[{"ancestorTitles":["Select"],"fullName":"Select labels the control and reports the chosen value","status":"passed","title":"labels the control and reports the chosen value","duration":47.86306600000012,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["Select"],"fullName":"Select keeps unavailable options visible but unselectable","status":"passed","title":"keeps unavailable options visible but unselectable","duration":147.42868700000008,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["Select"],"fullName":"Select renders a disabled placeholder when no value is chosen yet","status":"passed","title":"renders a disabled placeholder when no value is chosen yet","duration":36.30782500000009,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["Select"],"fullName":"Select links its error text and marks the field invalid","status":"passed","title":"links its error text and marks the field invalid","duration":8.165006000000176,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448837685,"endTime":1786448837924.165,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Select.test.tsx"},{"assertionResults":[{"ancestorTitles":["SettingsTable"],"fullName":"SettingsTable renders aligned settings columns without pills","status":"passed","title":"renders aligned settings columns without pills","duration":296.0118250000005,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SettingsTable"],"fullName":"SettingsTable expands all five layers inline and saves a run override","status":"passed","title":"expands all five layers inline and saves a run override","duration":160.54013300000042,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SettingsTable"],"fullName":"SettingsTable renders immutable layers without inputs","status":"passed","title":"renders immutable layers without inputs","duration":41.69658000000072,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SettingsTable"],"fullName":"SettingsTable renders the B5 gap state","status":"passed","title":"renders the B5 gap state","duration":5.117717000000084,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SettingsTable"],"fullName":"SettingsTable reorders rows when a sortable header is clicked","status":"passed","title":"reorders rows when a sortable header is clicked","duration":63.80508800000007,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448834276,"endTime":1786448834842.8052,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SettingsTable.test.tsx"},{"assertionResults":[{"ancestorTitles":["StaleBadge"],"fullName":"StaleBadge renders nothing when the adapter status is not stale","status":"passed","title":"renders nothing when the adapter status is not stale","duration":18.93384600000013,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["StaleBadge"],"fullName":"StaleBadge renders a stale pill with the age since lastSuccess when stale","status":"passed","title":"renders a stale pill with the age since lastSuccess when stale","duration":20.653753999999935,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["StaleBadge"],"fullName":"StaleBadge renders bare \"stale\" when lastSuccess is unknown","status":"passed","title":"renders bare \"stale\" when lastSuccess is unknown","duration":6.042610999999852,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448844034,"endTime":1786448844079.0427,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/StaleBadge.test.tsx"},{"assertionResults":[{"ancestorTitles":["StatusChip"],"fullName":"StatusChip uses one category mapping for status labels and styling","status":"passed","title":"uses one category mapping for status labels and styling","duration":44.172458000000006,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448836676,"endTime":1786448836720.1724,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/StatusChip.test.tsx"},{"assertionResults":[{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace positions segments and the NOW playhead on the shared absolute clock","status":"passed","title":"positions segments and the NOW playhead on the shared absolute clock","duration":67.70320800000013,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace constrains a condition band to its declared lanes","status":"passed","title":"constrains a condition band to its declared lanes","duration":20.08699200000001,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace reports zoom and segment interactions","status":"passed","title":"reports zoom and segment interactions","duration":221.34017299999982,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace uses the canonical status category to color status-bearing segments","status":"passed","title":"uses the canonical status category to color status-bearing segments","duration":8.790181999999959,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace renders a time axis beneath the plot column with wall-clock labels","status":"passed","title":"renders a time axis beneath the plot column with wall-clock labels","duration":35.60009600000012,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace keeps the NOW playhead scoped to lane rows, not the time axis","status":"passed","title":"keeps the NOW playhead scoped to lane rows, not the time axis","duration":16.112902000000304,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace labels short spans with second precision","status":"passed","title":"labels short spans with second precision","duration":7.518032000000403,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace labels multi-day spans with calendar context","status":"passed","title":"labels multi-day spans with calendar context","duration":7.557035999999698,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace does not render a time axis when lanes have no temporal data","status":"passed","title":"does not render a time axis when lanes have no temporal data","duration":6.851272999999765,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace shares one horizontal overflow container across lanes and the axis","status":"passed","title":"shares one horizontal overflow container across lanes and the axis","duration":12.808629999999994,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace exposes ISO UTC tooltips on axis ticks","status":"passed","title":"exposes ISO UTC tooltips on axis ticks","duration":7.15452200000027,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace exposes exact ISO UTC timestamps in the screen-reader range","status":"passed","title":"exposes exact ISO UTC timestamps in the screen-reader range","duration":12.037804999999935,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace anchors axis endpoint epochs to fit bounds for a completed trace","status":"passed","title":"anchors axis endpoint epochs to fit bounds for a completed trace","duration":12.165417000000161,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace anchors axis endpoint epochs to the last-hour window","status":"passed","title":"anchors axis endpoint epochs to the last-hour window","duration":7.264534999999796,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace anchors axis endpoint epochs to the live window","status":"passed","title":"anchors axis endpoint epochs to the live window","duration":6.276672999999846,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace updates axis endpoint epochs when zoom changes on a running trace","status":"passed","title":"updates axis endpoint epochs when zoom changes on a running trace","duration":17.67712399999982,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace anchors the NOW label inward at the end bound and on the start half of the plot","status":"passed","title":"anchors the NOW label inward at the end bound and on the start half of the plot","duration":23.806262999999944,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace does not render the NOW playhead when nowMs is before the displayed interval","status":"passed","title":"does not render the NOW playhead when nowMs is before the displayed interval","duration":8.705989000000045,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace does not render the NOW playhead when nowMs is after the displayed interval","status":"passed","title":"does not render the NOW playhead when nowMs is after the displayed interval","duration":5.38366300000007,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["SwimlaneTrace"],"fullName":"SwimlaneTrace disables Follow live and coerces zoom=live to fit on a completed trace","status":"passed","title":"disables Follow live and coerces zoom=live to fit on a completed trace","duration":34.29661099999976,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448824848,"endTime":1786448825387.2966,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx"},{"assertionResults":[{"ancestorTitles":["TerminalView"],"fullName":"TerminalView renders the captured screen","status":"passed","title":"renders the captured screen","duration":45.459685000000036,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TerminalView"],"fullName":"TerminalView shows the reason instead of an empty pane when unavailable","status":"passed","title":"shows the reason instead of an empty pane when unavailable","duration":7.7426510000000235,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TerminalView"],"fullName":"TerminalView says it is connecting before the first capture","status":"passed","title":"says it is connecting before the first capture","duration":5.647611999999981,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TerminalView"],"fullName":"TerminalView sends typed text followed by Enter","status":"passed","title":"sends typed text followed by Enter","duration":164.96680300000003,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TerminalView"],"fullName":"TerminalView sends Enter alone when the composer is empty","status":"passed","title":"sends Enter alone when the composer is empty","duration":12.60462399999983,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TerminalView"],"fullName":"TerminalView sends a control key from its button","status":"passed","title":"sends a control key from its button","duration":24.41124999999988,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TerminalView"],"fullName":"TerminalView disables input when the session is not attached","status":"passed","title":"disables input when the session is not attached","duration":31.37648800000011,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TerminalView"],"fullName":"TerminalView disables input while a send is in flight","status":"passed","title":"disables input while a send is in flight","duration":32.536285000000134,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TerminalView"],"fullName":"TerminalView omits the capture note when there is nothing to report","status":"passed","title":"omits the capture note when there is nothing to report","duration":13.79377599999998,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448829929,"endTime":1786448830267.7937,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx"},{"assertionResults":[{"ancestorTitles":["TextArea"],"fullName":"TextArea labels the control and reports raw values","status":"passed","title":"labels the control and reports raw values","duration":93.33560599999987,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TextArea"],"fullName":"TextArea honours a hidden label and a disabled state","status":"passed","title":"honours a hidden label and a disabled state","duration":167.413098,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TextArea"],"fullName":"TextArea links its error text and marks the field invalid","status":"passed","title":"links its error text and marks the field invalid","duration":7.273932000000059,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448839481,"endTime":1786448839748.274,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TextArea.test.tsx"},{"assertionResults":[{"ancestorTitles":["TextField"],"fullName":"TextField labels the control and reports raw values","status":"passed","title":"labels the control and reports raw values","duration":46.162358999999924,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TextField"],"fullName":"TextField keeps a hidden label reachable by accessible name","status":"passed","title":"keeps a hidden label reachable by accessible name","duration":154.429034,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TextField"],"fullName":"TextField links hint and error text through aria-describedby and marks the field invalid","status":"passed","title":"links hint and error text through aria-describedby and marks the field invalid","duration":8.170748000000003,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TextField"],"fullName":"TextField omits aria-describedby and aria-invalid when there is nothing to describe","status":"passed","title":"omits aria-describedby and aria-invalid when there is nothing to describe","duration":3.4389400000000023,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TextField"],"fullName":"TextField renders a trailing affordance beside the control","status":"passed","title":"renders a trailing affordance beside the control","duration":16.432945000000018,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448833591,"endTime":1786448833819.4329,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TextField.test.tsx"},{"assertionResults":[{"ancestorTitles":["TrainCard"],"fullName":"TrainCard builds member links exclusively from the train repository","status":"passed","title":"builds member links exclusively from the train repository","duration":223.55544600000007,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard reruns a complete failed gate with exact string mutation args","status":"passed","title":"reruns a complete failed gate with exact string mutation args","duration":45.53848599999992,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard cancels a complete gating gate","status":"passed","title":"cancels a complete gating gate","duration":16.55561499999999,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard cancels a complete rerunning gate","status":"passed","title":"cancels a complete rerunning gate","duration":17.30805200000009,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard opens a valid GitHub pull URL without invoking a mutation","status":"passed","title":"opens a valid GitHub pull URL without invoking a mutation","duration":19.340427999999974,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard omits Open for invalid URL http://github.com/alexcodeplace/multideal/pull/901","status":"passed","title":"omits Open for invalid URL http://github.com/alexcodeplace/multideal/pull/901","duration":19.16609900000003,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard omits Open for invalid URL https://user:secret@github.com/alexcodeplace/multideal/pull/901","status":"passed","title":"omits Open for invalid URL https://user:secret@github.com/alexcodeplace/multideal/pull/901","duration":17.680431,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard omits Open for invalid URL https://github.example/alexcodeplace/multideal/pull/901","status":"passed","title":"omits Open for invalid URL https://github.example/alexcodeplace/multideal/pull/901","duration":14.004597999999987,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard omits Open for invalid URL not a URL","status":"passed","title":"omits Open for invalid URL not a URL","duration":16.761185999999952,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard renders the refsComplete gap and suppresses every action","status":"passed","title":"renders the refsComplete gap and suppresses every action","duration":4.572074999999813,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard renders the prsComplete gap and suppresses every action","status":"passed","title":"renders the prsComplete gap and suppresses every action","duration":4.5269170000001395,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard renders the trainRunsComplete gap and suppresses every action","status":"passed","title":"renders the trainRunsComplete gap and suppresses every action","duration":10.056355000000167,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard renders the trainsComplete gap and suppresses every action","status":"passed","title":"renders the trainsComplete gap and suppresses every action","duration":4.98851999999988,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard uses completeness precedence over a stale state gap","status":"passed","title":"uses completeness precedence over a stale state gap","duration":3.8635400000002846,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard renders nullable state gap and deterministic blocking line","status":"passed","title":"renders nullable state gap and deterministic blocking line","duration":8.102767000000313,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard keeps incomplete jobs visible but suppresses blocking, classification, striping, and recommendation claims","status":"passed","title":"keeps incomplete jobs visible but suppresses blocking, classification, striping, and recommendation claims","duration":27.58861999999999,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard does not recommend an eligible rerun without exact infra classification","status":"passed","title":"does not recommend an eligible rerun without exact infra classification","duration":23.539222999999765,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard labels null complete-job classification as unknown","status":"passed","title":"labels null complete-job classification as unknown","duration":6.218409999999949,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainCard"],"fullName":"TrainCard renders actions independently from one another","status":"passed","title":"renders actions independently from one another","duration":13.686527000000297,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448826891,"endTime":1786448827388.6865,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx"},{"assertionResults":[{"ancestorTitles":["TrainRail"],"fullName":"TrainRail uses the canonical total order and excludes merged trains","status":"passed","title":"uses the canonical total order and excludes merged trains","duration":61.92672700000003,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainRail"],"fullName":"TrainRail uses repo ascending only after all train keys tie","status":"passed","title":"uses repo ascending only after all train keys tie","duration":9.355160000000069,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainRail"],"fullName":"TrainRail renders each scoped repository completeness gap even with returned trains","status":"passed","title":"renders each scoped repository completeness gap even with returned trains","duration":46.20794100000012,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainRail"],"fullName":"TrainRail never renders the complete empty state for a zero-return truncated-ref repository","status":"passed","title":"never renders the complete empty state for a zero-return truncated-ref repository","duration":8.335921999999982,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainRail"],"fullName":"TrainRail renders the exact complete empty state","status":"passed","title":"renders the exact complete empty state","duration":6.116044000000102,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainRail"],"fullName":"TrainRail renders exactly one tooltip layer per rail composition","status":"passed","title":"renders exactly one tooltip layer per rail composition","duration":10.692729999999983,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["TrainRail"],"fullName":"TrainRail keeps duplicate PR numbers scoped to each train repo for links and mutations","status":"passed","title":"keeps duplicate PR numbers scoped to each train repo for links and mutations","duration":291.34201600000006,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448826881,"endTime":1786448827315.342,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainRail.test.tsx"},{"assertionResults":[{"ancestorTitles":["UndoToast"],"fullName":"UndoToast dismisses a plain toast after 3.4 seconds","status":"passed","title":"dismisses a plain toast after 3.4 seconds","duration":43.63291000000004,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["UndoToast"],"fullName":"UndoToast ticks the countdown and commits only on expiry","status":"passed","title":"ticks the countdown and commits only on expiry","duration":186.7099700000001,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["UndoToast"],"fullName":"UndoToast dismisses and restores through undo without committing","status":"passed","title":"dismisses and restores through undo without committing","duration":19.972278999999844,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["UndoToast"],"fullName":"UndoToast commits a pending action before replacing it","status":"passed","title":"commits a pending action before replacing it","duration":11.84319800000003,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["UndoToast"],"fullName":"UndoToast enforces the five-second minimum","status":"passed","title":"enforces the five-second minimum","duration":14.426830000000109,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448828738,"endTime":1786448829014.4268,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/UndoToast.test.tsx"},{"assertionResults":[{"ancestorTitles":["VerdictBadge"],"fullName":"VerdictBadge renders the uppercased label for a verdict","status":"passed","title":"renders the uppercased label for a verdict","duration":42.42891400000008,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["VerdictBadge"],"fullName":"VerdictBadge carries the danger token class for a broken verdict","status":"passed","title":"carries the danger token class for a broken verdict","duration":3.9010799999998653,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["VerdictBadge"],"fullName":"VerdictBadge distinguishes works from broken by color class","status":"passed","title":"distinguishes works from broken by color class","duration":4.593373000000156,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448842561,"endTime":1786448842611.5933,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/VerdictBadge.test.tsx"},{"assertionResults":[{"ancestorTitles":["WrapperCapacity"],"fullName":"WrapperCapacity renders healthy wrappers and opens the selected wrapper","status":"passed","title":"renders healthy wrappers and opens the selected wrapper","duration":219.29496500000005,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["WrapperCapacity"],"fullName":"WrapperCapacity renders and ticks a real limited-wrapper countdown","status":"passed","title":"renders and ticks a real limited-wrapper countdown","duration":37.780938000000106,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["WrapperCapacity"],"fullName":"WrapperCapacity renders no countdown when B7 data is unavailable","status":"passed","title":"renders no countdown when B7 data is unavailable","duration":25.146179000000075,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448835909,"endTime":1786448836191.1462,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/WrapperCapacity.test.tsx"},{"assertionResults":[{"ancestorTitles":["ci-coverage"],"fullName":"ci-coverage suppresses operator warnings for poll-budget rotation","status":"passed","title":"suppresses operator warnings for poll-budget rotation","duration":2.883501000000024,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["ci-coverage"],"fullName":"ci-coverage does not surface run-history coverage gaps","status":"passed","title":"does not surface run-history coverage gaps","duration":0.6817740000001322,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["ci-coverage"],"fullName":"ci-coverage prioritizes train ref gaps before PR gaps","status":"passed","title":"prioritizes train ref gaps before PR gaps","duration":0.34017999999991844,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448839515,"endTime":1786448839519.34,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ci-coverage.test.ts"},{"assertionResults":[{"ancestorTitles":["formatDurationMs"],"fullName":"formatDurationMs formats 61ms as 61ms","status":"passed","title":"formats 61ms as 61ms","duration":2.0268009999999776,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatDurationMs"],"fullName":"formatDurationMs formats 999ms as 999ms","status":"passed","title":"formats 999ms as 999ms","duration":0.3490239999998721,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatDurationMs"],"fullName":"formatDurationMs formats 1000ms as 1s","status":"passed","title":"formats 1000ms as 1s","duration":0.19668099999989863,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatDurationMs"],"fullName":"formatDurationMs formats 45000ms as 45s","status":"passed","title":"formats 45000ms as 45s","duration":0.3040059999998448,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatRelativeTime"],"fullName":"formatRelativeTime formats just now","status":"passed","title":"formats just now","duration":0.39699899999982335,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatRelativeTime"],"fullName":"formatRelativeTime formats minutes","status":"passed","title":"formats minutes","duration":0.15585200000009536,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatRelativeTime"],"fullName":"formatRelativeTime formats hours","status":"passed","title":"formats hours","duration":0.1349199999999655,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatRelativeTime"],"fullName":"formatRelativeTime formats days","status":"passed","title":"formats days","duration":0.17420999999990272,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatRelativeTime"],"fullName":"formatRelativeTime formats future minutes","status":"passed","title":"formats future minutes","duration":0.5103480000000218,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatRelativeTime"],"fullName":"formatRelativeTime formats future hours","status":"passed","title":"formats future hours","duration":0.21658400000001166,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatRelativeTime"],"fullName":"formatRelativeTime formats future days","status":"passed","title":"formats future days","duration":0.22681299999999283,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["compareOptional"],"fullName":"compareOptional sorts missing values last in both directions","status":"passed","title":"sorts missing values last in both directions","duration":0.28636600000004364,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatTraceAxisTime"],"fullName":"formatTraceAxisTime shows seconds for short spans","status":"passed","title":"shows seconds for short spans","duration":0.46063699999990604,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatTraceAxisTime"],"fullName":"formatTraceAxisTime shows hours and minutes for sub-day spans","status":"passed","title":"shows hours and minutes for sub-day spans","duration":0.1446739999998954,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatTraceAxisTime"],"fullName":"formatTraceAxisTime shows month and day for multi-day spans","status":"passed","title":"shows month and day for multi-day spans","duration":0.1321820000000571,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatTraceAxisTime"],"fullName":"formatTraceAxisTime formats UTC midnight as 00:xx, not 24:xx","status":"passed","title":"formats UTC midnight as 00:xx, not 24:xx","duration":0.1685010000001057,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatTraceAxisTime"],"fullName":"formatTraceAxisTime shows seconds for >=60s spans when tick step is under one minute","status":"passed","title":"shows seconds for >=60s spans when tick step is under one minute","duration":0.1467330000000402,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatTraceAxisTime"],"fullName":"formatTraceAxisTime keeps adjacent labels distinct across 60–120s spans","status":"passed","title":"keeps adjacent labels distinct across 60–120s spans","duration":1.210446999999931,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatTraceAxisTime"],"fullName":"formatTraceAxisTime includes date context when a sub-day span crosses UTC midnight","status":"passed","title":"includes date context when a sub-day span crosses UTC midnight","duration":0.2666300000000774,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatTraceAxisTime"],"fullName":"formatTraceAxisTime includes year when a span crosses a UTC calendar year","status":"passed","title":"includes year when a span crosses a UTC calendar year","duration":0.21669700000006742,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["formatTraceAxisTime"],"fullName":"formatTraceAxisTime shows millisecond precision for sub-second spans","status":"passed","title":"shows millisecond precision for sub-second spans","duration":0.25310800000011113,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["traceAxisTicks"],"fullName":"traceAxisTicks derives ticks from start and end bounds","status":"passed","title":"derives ticks from start and end bounds","duration":1.085593999999901,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["traceAxisTicks"],"fullName":"traceAxisTicks appends the exact end bound when span is not divisible by the step","status":"passed","title":"appends the exact end bound when span is not divisible by the step","duration":0.40544599999998354,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["traceAxisTicks"],"fullName":"traceAxisTicks suppresses interior ticks within one step of start or end","status":"passed","title":"suppresses interior ticks within one step of start or end","duration":0.6756880000000365,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["traceAxisTicks"],"fullName":"traceAxisTicks steps across long spans without exceeding maxTicks","status":"passed","title":"steps across long spans without exceeding maxTicks","duration":0.22010199999999713,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["traceAxisTicks"],"fullName":"traceAxisTicks honors maxTicks for spans longer than 49 days","status":"passed","title":"honors maxTicks for spans longer than 49 days","duration":0.2970319999999447,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["traceAxisTicks"],"fullName":"traceAxisTicks aligns interior ticks to UTC wall-clock step boundaries","status":"passed","title":"aligns interior ticks to UTC wall-clock step boundaries","duration":0.2851630000000114,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["traceAxisTicks"],"fullName":"traceAxisTicks labels cross-midnight sub-day spans with date context","status":"passed","title":"labels cross-midnight sub-day spans with date context","duration":0.26002199999993536,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["traceAxisTicks"],"fullName":"traceAxisTicks labels sub-second spans with distinct millisecond endpoints","status":"passed","title":"labels sub-second spans with distinct millisecond endpoints","duration":0.37031600000000253,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["traceAxisTicks"],"fullName":"traceAxisTicks includes year on date-bearing labels when span crosses a UTC calendar year","status":"passed","title":"includes year on date-bearing labels when span crosses a UTC calendar year","duration":0.2730349999999362,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["traceAxisTicks"],"fullName":"traceAxisTicks selects oversized steps in O(1) time for very long spans","status":"passed","title":"selects oversized steps in O(1) time for very long spans","duration":0.43935499999997774,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448824745,"endTime":1786448824757.4395,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts"},{"assertionResults":[{"ancestorTitles":["assignProjectColor"],"fullName":"assignProjectColor assigns 12 distinct hues on the first rotation, each a wheel-unique hue","status":"passed","title":"assigns 12 distinct hues on the first rotation, each a wheel-unique hue","duration":6.318975999999793,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["assignProjectColor"],"fullName":"assignProjectColor keeps consecutively-assigned hues at least 2 wheel steps apart","status":"passed","title":"keeps consecutively-assigned hues at least 2 wheel steps apart","duration":1.0735810000001038,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["assignProjectColor"],"fullName":"assignProjectColor shifts lightness/chroma on the second rotation by >= 20 ΔE vs the same hue in rotation 0","status":"passed","title":"shifts lightness/chroma on the second rotation by >= 20 ΔE vs the same hue in rotation 0","duration":1.9093249999998534,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["assignProjectColor"],"fullName":"assignProjectColor uses a manual override from collector config passthrough instead of the wheel","status":"passed","title":"uses a manual override from collector config passthrough instead of the wheel","duration":0.9308820000001106,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["assignProjectColors"],"fullName":"assignProjectColors assigns colors positionally, honoring per-id overrides","status":"passed","title":"assigns colors positionally, honoring per-id overrides","duration":0.5047560000000431,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448831973,"endTime":1786448831984.5046,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/project-colors.test.ts"},{"assertionResults":[{"ancestorTitles":["resolveActionForFailClass"],"fullName":"resolveActionForFailClass maps wrapper-engine-down to its honest action","status":"passed","title":"maps wrapper-engine-down to its honest action","duration":2.5684499999999844,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["resolveActionForFailClass"],"fullName":"resolveActionForFailClass maps gate-failed to its honest action","status":"passed","title":"maps gate-failed to its honest action","duration":0.4562550000000556,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["resolveActionForFailClass"],"fullName":"resolveActionForFailClass maps review-failed to its honest action","status":"passed","title":"maps review-failed to its honest action","duration":0.23964700000010453,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["resolveActionForFailClass"],"fullName":"resolveActionForFailClass maps provider-quota to its honest action","status":"passed","title":"maps provider-quota to its honest action","duration":0.3440530000000308,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["resolveActionForFailClass"],"fullName":"resolveActionForFailClass maps unknown-class to its honest action","status":"passed","title":"maps unknown-class to its honest action","duration":0.29606200000011995,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["resolveActionForFailClass"],"fullName":"resolveActionForFailClass maps undefined to its honest action","status":"passed","title":"maps undefined to its honest action","duration":0.24705600000015693,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["resolveActionForFailClass"],"fullName":"resolveActionForFailClass never maps non-wrapper failures to retry","status":"passed","title":"never maps non-wrapper failures to retry","duration":0.7390339999999469,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448843690,"endTime":1786448843694.739,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/resolve-action.test.ts"},{"assertionResults":[{"ancestorTitles":["useSseStream"],"fullName":"useSseStream stays idle and never fetches when url is null","status":"passed","title":"stays idle and never fetches when url is null","duration":15.491458000000193,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream parses split multiline events and ignores heartbeat comments","status":"passed","title":"parses split multiline events and ignores heartbeat comments","duration":60.46467000000007,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream parses multiple frames delivered in one chunk","status":"passed","title":"parses multiple frames delivered in one chunk","duration":56.221363999999994,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream terminates malformed data frames before later events or reconnects","status":"passed","title":"terminates malformed data frames before later events or reconnects","duration":74.05568999999991,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream resumes from the last delivered opaque ID and suppresses replayed events","status":"passed","title":"resumes from the last delivered opaque ID and suppresses replayed events","duration":55.113035999999965,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream reconnects after the exact fixture frame closes and resumes its opaque cursor","status":"passed","title":"reconnects after the exact fixture frame closes and resumes its opaque cursor","duration":54.49112800000012,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream reconnects after the stream ends, until unmounted","status":"passed","title":"reconnects after the stream ends, until unmounted","duration":74.79393399999981,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream does not reconnect after consumer closes the stream with url null","status":"passed","title":"does not reconnect after consumer closes the stream with url null","duration":26.906115999999884,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream closes an oversized delimiter-free frame without reconnecting","status":"passed","title":"closes an oversized delimiter-free frame without reconnecting","duration":73.7682749999999,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream accepts a frame exactly at the byte bound","status":"passed","title":"accepts a frame exactly at the byte bound","duration":53.469644000000244,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream closes an oversized delimited frame before parsing or delivery","status":"passed","title":"closes an oversized delimited frame before parsing or delivery","duration":80.28740299999981,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["useSseStream"],"fullName":"useSseStream aborts the in-flight request on unmount","status":"passed","title":"aborts the in-flight request on unmount","duration":1.1511109999996734,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448824731,"endTime":1786448825357.1511,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts"},{"assertionResults":[{"ancestorTitles":["parseAnsiScreen"],"fullName":"parseAnsiScreen splits plain text into one segment per line","status":"passed","title":"splits plain text into one segment per line","duration":3.8219429999999193,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["parseAnsiScreen"],"fullName":"parseAnsiScreen applies foreground colour as a palette index","status":"passed","title":"applies foreground colour as a palette index","duration":1.2118689999999788,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["parseAnsiScreen"],"fullName":"parseAnsiScreen maps bright colours into the upper half of the palette","status":"passed","title":"maps bright colours into the upper half of the palette","duration":0.49563899999998284,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["parseAnsiScreen"],"fullName":"parseAnsiScreen falls back to the default colour for palette entries with no token","status":"passed","title":"falls back to the default colour for palette entries with no token","duration":0.6145389999999225,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["parseAnsiScreen"],"fullName":"parseAnsiScreen carries attributes and clears them on reset","status":"passed","title":"carries attributes and clears them on reset","duration":0.4304329999999936,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["parseAnsiScreen"],"fullName":"parseAnsiScreen keeps style across a line break, as a terminal does","status":"passed","title":"keeps style across a line break, as a terminal does","duration":0.3045759999999973,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["parseAnsiScreen"],"fullName":"parseAnsiScreen strips non-SGR control sequences instead of printing them","status":"passed","title":"strips non-SGR control sequences instead of printing them","duration":0.30861899999990783,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["parseAnsiScreen"],"fullName":"parseAnsiScreen merges adjacent segments that share a style","status":"passed","title":"merges adjacent segments that share a style","duration":0.2672649999999521,"failureMessages":[],"meta":{},"tags":[]},{"ancestorTitles":["parseAnsiScreen"],"fullName":"parseAnsiScreen returns an empty row for an empty line","status":"passed","title":"returns an empty row for an empty line","duration":0.5084070000000338,"failureMessages":[],"meta":{},"tags":[]}],"startTime":1786448833651,"endTime":1786448833659.5083,"status":"passed","message":"","name":"/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts"}]}