@molecule/app-ide-react 3.0.4 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +166 -4
- package/dist/components/ChatPanel.d.ts +4 -1
- package/dist/components/ChatPanel.d.ts.map +1 -1
- package/dist/components/ChatPanel.js +238 -55
- package/dist/components/ChatPanel.js.map +1 -1
- package/dist/components/TestStatusBar.d.ts +3 -1
- package/dist/components/TestStatusBar.d.ts.map +1 -1
- package/dist/components/TestStatusBar.js +7 -4
- package/dist/components/TestStatusBar.js.map +1 -1
- package/dist/components/TestsCard.d.ts +12 -1
- package/dist/components/TestsCard.d.ts.map +1 -1
- package/dist/components/TestsCard.js +31 -3
- package/dist/components/TestsCard.js.map +1 -1
- package/dist/components/tests-card-utilities.d.ts +31 -2
- package/dist/components/tests-card-utilities.d.ts.map +1 -1
- package/dist/components/tests-card-utilities.js +136 -6
- package/dist/components/tests-card-utilities.js.map +1 -1
- package/dist/types.d.ts +45 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +5 -5
|
@@ -53,6 +53,8 @@ export interface TestStatusBarProps {
|
|
|
53
53
|
onOpen: () => void;
|
|
54
54
|
/** Stop the run in flight, when one is running. */
|
|
55
55
|
onStop?: (() => void) | undefined;
|
|
56
|
+
/** The agent's display name, for a run the agent started. */
|
|
57
|
+
agentName?: string;
|
|
56
58
|
}
|
|
57
59
|
/**
|
|
58
60
|
* Renders the tests status strip.
|
|
@@ -60,5 +62,5 @@ export interface TestStatusBarProps {
|
|
|
60
62
|
* @param props - See {@link TestStatusBarProps}.
|
|
61
63
|
* @returns The bar.
|
|
62
64
|
*/
|
|
63
|
-
export declare function TestStatusBar({ run, tests, onOpen, onStop }: TestStatusBarProps): JSX.Element;
|
|
65
|
+
export declare function TestStatusBar({ run, tests, onOpen, onStop, agentName, }: TestStatusBarProps): JSX.Element;
|
|
64
66
|
//# sourceMappingURL=TestStatusBar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestStatusBar.d.ts","sourceRoot":"","sources":["../../src/components/TestStatusBar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAKhC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,0BAA0B,CAAA;AAE7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"TestStatusBar.d.ts","sourceRoot":"","sources":["../../src/components/TestStatusBar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAKhC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,0BAA0B,CAAA;AAE7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAG9D;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CA0C9D;AAYD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAS/D;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,GAAG,EAAE,aAAa,CAAA;IAClB,iEAAiE;IACjE,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,mDAAmD;IACnD,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;IACjC,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAC5B,GAAG,EACH,KAAK,EACL,MAAM,EACN,MAAM,EACN,SAAS,GACV,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CA2ClC"}
|
|
@@ -3,6 +3,7 @@ import { t } from '@molecule/app-i18n';
|
|
|
3
3
|
import { getClassMap } from '@molecule/app-ui';
|
|
4
4
|
import { DockStrip, StatusMark } from './DockStrip.js';
|
|
5
5
|
import { summariseTestsBar } from './tests-bar-utilities.js';
|
|
6
|
+
import { runningLabel } from './TestsCard.js';
|
|
6
7
|
/**
|
|
7
8
|
* The one-line summary the collapsed bar shows.
|
|
8
9
|
*
|
|
@@ -67,13 +68,15 @@ export function testsChipLabel(summary) {
|
|
|
67
68
|
* @param props - See {@link TestStatusBarProps}.
|
|
68
69
|
* @returns The bar.
|
|
69
70
|
*/
|
|
70
|
-
export function TestStatusBar({ run, tests, onOpen, onStop }) {
|
|
71
|
+
export function TestStatusBar({ run, tests, onOpen, onStop, agentName, }) {
|
|
71
72
|
const cm = getClassMap();
|
|
72
73
|
const summary = summariseTestsBar(run, tests);
|
|
73
|
-
|
|
74
|
-
|
|
74
|
+
// A run this panel only watches says who started it; the counts are in the browser.
|
|
75
|
+
const label = run.running && run.external ? runningLabel(run, agentName) : testsBarLabel(summary);
|
|
76
|
+
return (_jsx(DockStrip, { molId: "tests-bar", toggleMolId: "tests-bar-toggle", rootProps: { 'data-tests-tone': summary.tone }, expanded: false, onToggle: onOpen, onActivate: onOpen, label: _jsx("span", { "data-mol-id": "tests-bar-label", children: label }), hint: summary.tone === 'running' &&
|
|
77
|
+
(summary.currentTest ?? summary.currentFile ?? run.command) ? (_jsx("span", { "data-mol-id": "tests-bar-current", children: `· ${summary.currentTest ?? summary.currentFile ?? run.command}` })) : undefined, actions: run.running && onStop ? (_jsx("button", { type: "button", "data-mol-id": "tests-bar-stop", className: cm.cn(cm.button({ variant: 'solid', color: 'error', size: 'xs' }), cm.touchTargetCompact), onClick: (e) => {
|
|
75
78
|
e.stopPropagation();
|
|
76
79
|
onStop();
|
|
77
|
-
}, children: t('ide.testsBar.stop', undefined, { defaultValue: 'Stop' }) })) : undefined, icon: _jsx(StatusMark, { state: TONE_MARK[summary.tone], size: 14 }), chipLabel: testsChipLabel(summary) }));
|
|
80
|
+
}, children: t('ide.testsBar.stop', undefined, { defaultValue: 'Stop' }) })) : undefined, icon: _jsx(StatusMark, { state: TONE_MARK[summary.tone], size: 14 }), chipLabel: run.running && run.external ? label : testsChipLabel(summary) }));
|
|
78
81
|
}
|
|
79
82
|
//# sourceMappingURL=TestStatusBar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestStatusBar.js","sourceRoot":"","sources":["../../src/components/TestStatusBar.tsx"],"names":[],"mappings":";AAoBA,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAwB,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"TestStatusBar.js","sourceRoot":"","sources":["../../src/components/TestStatusBar.tsx"],"names":[],"mappings":";AAoBA,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAwB,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAAwB;IACpD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IACjD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC,SAAS,GAAG,CAAC;YAC1B,CAAC,CAAC,CAAC,CACC,sBAAsB,EACtB,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,EAChC,EAAE,YAAY,EAAE,qCAAqC,EAAE,CACxD;YACH,CAAC,CAAC,CAAC,CAAC,0BAA0B,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC,CAAA;IACjF,CAAC;IACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,CAAC,oBAAoB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,2BAA2B,EAAE,CAAC,CAAA;IAC1F,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,CAAC,sBAAsB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC,CAAA;IACnF,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,CACN,sBAAsB,EACtB,EAAE,MAAM,EAAE,MAAM,EAAE,EAClB,EAAE,YAAY,EAAE,wCAAwC,EAAE,CAC3D,CAAA;IACH,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,OAAO,GAAG,CAAC;YAChB,CAAC,CAAC,CAAC,CACC,+BAA+B,EAC/B,EAAE,MAAM,EAAE,OAAO,EAAE,EACnB,EAAE,YAAY,EAAE,yCAAyC,EAAE,CAC5D;YACH,CAAC,CAAC,CAAC,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,wBAAwB,EAAE,CAAC,CAAA;IACvF,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAA;IAC5B,OAAO,CAAC,CACN,qBAAqB,EACrB,EAAE,KAAK,EAAE,EACT;QACE,KAAK;QACL,YAAY,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,6BAA6B;KACzF,CACF,CAAA;AACH,CAAC;AAED,0DAA0D;AAC1D,MAAM,SAAS,GAA0C;IACvD,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,QAAQ;CAChB,CAAA;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,OAAwB;IACrD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IACxC,IAAI,IAAI,KAAK,SAAS;QACpB,OAAO,CAAC,CAAC,0BAA0B,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC,CAAA;IACpF,IAAI,IAAI,KAAK,SAAS;QACpB,OAAO,GAAG,MAAM,IAAI,CAAC,CAAC,0BAA0B,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;IAC7F,IAAI,IAAI,KAAK,SAAS;QACpB,OAAO,GAAG,MAAM,IAAI,CAAC,CAAC,0BAA0B,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;IAC7F,OAAO,aAAa,CAAC,OAAO,CAAC,CAAA;AAC/B,CAAC;AA0BD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,GAAG,EACH,KAAK,EACL,MAAM,EACN,MAAM,EACN,SAAS,GACU;IACnB,MAAM,EAAE,GAAG,WAAW,EAAE,CAAA;IACxB,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC7C,oFAAoF;IACpF,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAEjG,OAAO,CACL,KAAC,SAAS,IACR,KAAK,EAAC,WAAW,EACjB,WAAW,EAAC,kBAAkB,EAC9B,SAAS,EAAE,EAAE,iBAAiB,EAAE,OAAO,CAAC,IAAI,EAAE,EAC9C,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,8BAAkB,iBAAiB,YAAE,KAAK,GAAQ,EACzD,IAAI,EACF,OAAO,CAAC,IAAI,KAAK,SAAS;YAC1B,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAC5D,8BAAkB,mBAAmB,YAAE,KAAK,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC,OAAO,EAAE,GAAQ,CAChH,CAAC,CAAC,CAAC,SAAS,EAEf,OAAO,EACL,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CACtB,iBACE,IAAI,EAAC,QAAQ,iBACD,gBAAgB,EAC5B,SAAS,EAAE,EAAE,CAAC,EAAE,CACd,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAC3D,EAAE,CAAC,kBAAkB,CACtB,EACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACb,CAAC,CAAC,eAAe,EAAE,CAAA;gBACnB,MAAM,EAAE,CAAA;YACV,CAAC,YAEA,CAAC,CAAC,mBAAmB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,GACrD,CACV,CAAC,CAAC,CAAC,SAAS,EAEf,IAAI,EAAE,KAAC,UAAU,IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI,EAC9D,SAAS,EAAE,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,GACxE,CACH,CAAA;AACH,CAAC"}
|
|
@@ -74,14 +74,25 @@ export interface TestsCardProps {
|
|
|
74
74
|
isLight: boolean;
|
|
75
75
|
/** Chrome-less inside the command overlay; full card chrome in the timeline. */
|
|
76
76
|
embedded?: boolean;
|
|
77
|
+
/** The agent's display name, for a run the agent started. */
|
|
78
|
+
agentName?: string;
|
|
77
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* What the header says while a run is going: who started it, when it was not
|
|
82
|
+
* this panel.
|
|
83
|
+
*
|
|
84
|
+
* @param run - The run on show.
|
|
85
|
+
* @param agentName - The agent's display name.
|
|
86
|
+
* @returns The translated label.
|
|
87
|
+
*/
|
|
88
|
+
export declare function runningLabel(run: TestsRunState, agentName?: string): string;
|
|
78
89
|
/**
|
|
79
90
|
* The tests browser shown by `/test`.
|
|
80
91
|
*
|
|
81
92
|
* @param props - See {@link TestsCardProps}.
|
|
82
93
|
* @returns The rendered tests card.
|
|
83
94
|
*/
|
|
84
|
-
export declare function TestsCard({ tests, status, run, initialQuery, canRun, onRun, onCancel, onSkipCurrent, onFix, fixDisabledReason, isLight, embedded, }: TestsCardProps): JSX.Element;
|
|
95
|
+
export declare function TestsCard({ tests, status, run, initialQuery, canRun, onRun, onCancel, onSkipCurrent, onFix, fixDisabledReason, isLight, embedded, agentName, }: TestsCardProps): JSX.Element;
|
|
85
96
|
export declare namespace TestsCard {
|
|
86
97
|
var displayName: string;
|
|
87
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestsCard.d.ts","sourceRoot":"","sources":["../../src/components/TestsCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAiB,GAAG,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"TestsCard.d.ts","sourceRoot":"","sources":["../../src/components/TestsCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAiB,GAAG,EAAE,MAAM,OAAO,CAAA;AAO/C,OAAO,KAAK,EAAE,QAAQ,EAAY,aAAa,EAAc,MAAM,aAAa,CAAA;AAEhF,OAAO,KAAK,EAEV,WAAW,EAGX,aAAa,EACd,MAAM,2BAA2B,CAAA;AAiElC,2EAA2E;AAC3E,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,aAAa,CAAA;AAEvE,mCAAmC;AACnC,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,4BAA4B;IAC5B,MAAM,EAAE,WAAW,CAAA;IACnB,iFAAiF;IACjF,GAAG,EAAE,aAAa,CAAA;IAClB,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAA;IACpB,mEAAmE;IACnE,MAAM,EAAE,OAAO,CAAA;IACf,wBAAwB;IACxB,KAAK,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,CAAA;IACzC,qEAAqE;IACrE,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B;;;OAGG;IACH,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;IACxC;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,oFAAoF;IACpF,OAAO,EAAE,OAAO,CAAA;IAChB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAsCD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAW3E;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,MAAM,EACN,GAAG,EACH,YAAY,EACZ,MAAM,EACN,KAAK,EACL,QAAQ,EACR,aAAa,EACb,KAAK,EACL,iBAAiB,EACjB,OAAO,EACP,QAAQ,EACR,SAAS,GACV,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CA0X9B;yBAxYe,SAAS"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
3
3
|
import { t } from '@molecule/app-i18n';
|
|
4
|
+
import { DEFAULT_AGENT_NAME } from '@molecule/app-react';
|
|
4
5
|
import { getClassMap } from '@molecule/app-ui';
|
|
5
6
|
import { chatCardStyle } from './chat-card-style.js';
|
|
6
7
|
import { canSkipRun, countByKind, currentRunRowId, failedTests, filterTests, groupTests, isRowRunning, summarizeResults, testCaseLabel, testRowLabel, } from './tests-card-utilities.js';
|
|
@@ -82,13 +83,30 @@ function statusLabel(status) {
|
|
|
82
83
|
return t('ide.tests.statusFailed', undefined, { defaultValue: 'Failed' });
|
|
83
84
|
return t('ide.tests.statusSkipped', undefined, { defaultValue: 'Skipped' });
|
|
84
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* What the header says while a run is going: who started it, when it was not
|
|
88
|
+
* this panel.
|
|
89
|
+
*
|
|
90
|
+
* @param run - The run on show.
|
|
91
|
+
* @param agentName - The agent's display name.
|
|
92
|
+
* @returns The translated label.
|
|
93
|
+
*/
|
|
94
|
+
export function runningLabel(run, agentName) {
|
|
95
|
+
if (!run.external)
|
|
96
|
+
return t('ide.tests.running', undefined, { defaultValue: 'Running…' });
|
|
97
|
+
if (run.source === 'agent')
|
|
98
|
+
return t('ide.tests.runningAgent', { agent: agentName ?? DEFAULT_AGENT_NAME }, { defaultValue: '{{agent}} is running tests…' });
|
|
99
|
+
if (run.source === 'platform')
|
|
100
|
+
return t('ide.tests.runningPlatform', undefined, { defaultValue: 'Checking the deploy…' });
|
|
101
|
+
return t('ide.tests.runningElsewhere', undefined, { defaultValue: 'Running in another tab…' });
|
|
102
|
+
}
|
|
85
103
|
/**
|
|
86
104
|
* The tests browser shown by `/test`.
|
|
87
105
|
*
|
|
88
106
|
* @param props - See {@link TestsCardProps}.
|
|
89
107
|
* @returns The rendered tests card.
|
|
90
108
|
*/
|
|
91
|
-
export function TestsCard({ tests, status, run, initialQuery, canRun, onRun, onCancel, onSkipCurrent, onFix, fixDisabledReason, isLight, embedded, }) {
|
|
109
|
+
export function TestsCard({ tests, status, run, initialQuery, canRun, onRun, onCancel, onSkipCurrent, onFix, fixDisabledReason, isLight, embedded, agentName, }) {
|
|
92
110
|
const cm = getClassMap();
|
|
93
111
|
const [query, setQuery] = useState(initialQuery);
|
|
94
112
|
// The run output starts COLLAPSED. ScriptsCard auto-expands nothing while a
|
|
@@ -154,11 +172,21 @@ export function TestsCard({ tests, status, run, initialQuery, canRun, onRun, onC
|
|
|
154
172
|
gap: 8,
|
|
155
173
|
marginBottom: 6,
|
|
156
174
|
flexWrap: 'wrap',
|
|
157
|
-
}, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8, flexShrink: 0 }, children: [!embedded && (_jsx("div", { className: cm.cn(cm.fontWeight('medium'), cm.textSize('sm')), style: { flexShrink: 0 }, children: t('ide.tests.heading', undefined, { defaultValue: 'Tests' }) })), run.running ? (_jsxs("span", { "data-mol-id": "tests-card-running", className: cm.cn(cm.textMuted, cm.textSize('xs')), style: { display: 'inline-flex', alignItems: 'center', gap: 4 }, children: [_jsx("span", { className: cm.spinner({ size: 'xs' }), "aria-hidden": "true" }),
|
|
175
|
+
}, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8, flexShrink: 0 }, children: [!embedded && (_jsx("div", { className: cm.cn(cm.fontWeight('medium'), cm.textSize('sm')), style: { flexShrink: 0 }, children: t('ide.tests.heading', undefined, { defaultValue: 'Tests' }) })), run.running ? (_jsxs("span", { "data-mol-id": "tests-card-running", className: cm.cn(cm.textMuted, cm.textSize('xs')), style: { display: 'inline-flex', alignItems: 'center', gap: 4 }, children: [_jsx("span", { className: cm.spinner({ size: 'xs' }), "aria-hidden": "true" }), runningLabel(run, agentName)] })) : (summary.reported > 0 && (_jsxs("span", { "data-mol-id": "tests-card-summary", className: cm.textSize('xs'), style: { display: 'inline-flex', alignItems: 'center', gap: 6 }, children: [summary.passed > 0 && (_jsx("span", { className: cm.textSuccess, children: t('ide.tests.passedCount', { count: summary.passed }, { defaultValue: '{{count}} passed' }) })), summary.failed > 0 && (_jsx("span", { className: cm.textError, children: t('ide.tests.failedCount', { count: summary.failed }, { defaultValue: '{{count}} failed' }) })), summary.skipped > 0 && (_jsx("span", { "data-mol-id": "tests-card-summary-skipped", className: cm.textMuted, children: t('ide.tests.skippedCount', { count: summary.skipped }, { defaultValue: '{{count}} skipped' }) }))] })))] }), _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 6, flexWrap: 'wrap' }, children: [counts.e2e > 0 && counts.unit > 0 && (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", "data-mol-id": "tests-card-run-e2e", onClick: () => onRun({ ids: idsOfKind(filtered, 'e2e') }), disabled: !runnable, title: disabledReason ?? undefined, className: cm.cn(SECONDARY_ACTION(cm)), style: { flexShrink: 0 }, children: t('ide.tests.runE2e', undefined, { defaultValue: 'Run e2e' }) }), _jsx("button", { type: "button", "data-mol-id": "tests-card-run-unit", onClick: () => onRun({ ids: idsOfKind(filtered, 'unit') }), disabled: !runnable, title: disabledReason ?? undefined, className: cm.cn(SECONDARY_ACTION(cm)), style: { flexShrink: 0 }, children: t('ide.tests.runUnit', undefined, { defaultValue: 'Run unit' }) })] })), !run.running && failures.length > 0 && (_jsx("button", { type: "button", "data-mol-id": "tests-card-fix-all", onClick: () => onFix(failures), disabled: !fixable, title: fixDisabledReason ?? undefined, className: cm.cn(SECONDARY_ACTION(cm)), style: { flexShrink: 0 }, children: failures.length === 1
|
|
158
176
|
? t('ide.tests.fixWithSynthase', undefined, {
|
|
159
177
|
defaultValue: 'Fix with Synthase',
|
|
160
178
|
})
|
|
161
|
-
: t('ide.tests.fixFailures', { count: failures.length }, { defaultValue: 'Fix {{count}} failures' }) })), run.running
|
|
179
|
+
: t('ide.tests.fixFailures', { count: failures.length }, { defaultValue: 'Fix {{count}} failures' }) })), run.running
|
|
180
|
+
? // A run this panel only watches (the agent's, the platform's, another
|
|
181
|
+
// tab's) cannot be stopped from here, so no Stop is offered.
|
|
182
|
+
!run.external && (_jsx("button", { type: "button", "data-mol-id": "tests-card-cancel", onClick: onCancel, className: cm.cn(DESTRUCTIVE_ACTION(cm)), style: { flexShrink: 0 }, children: t('ide.tests.stop', undefined, { defaultValue: 'Stop' }) }))
|
|
183
|
+
: filtered.length > 0 && (_jsx("button", { type: "button", "data-mol-id": "tests-card-run-all", onClick: () => onRun({ ids: filtered.map((test) => test.id) }), disabled: !runnable, title: disabledReason ?? undefined, className: cm.cn(PRIMARY_ACTION(cm)), style: { flexShrink: 0 }, children: t('ide.tests.runAll', undefined, { defaultValue: 'Run all' }) }))] })] }), run.external && run.command && (_jsx("div", { "data-mol-id": "tests-card-command", className: cm.cn(cm.textMuted, cm.textSize('xs')), title: run.command, style: {
|
|
184
|
+
fontFamily: 'var(--mol-font-mono, monospace)',
|
|
185
|
+
overflow: 'hidden',
|
|
186
|
+
textOverflow: 'ellipsis',
|
|
187
|
+
whiteSpace: 'nowrap',
|
|
188
|
+
marginBottom: 6,
|
|
189
|
+
}, children: run.command })), _jsx("input", { value: query, "data-mol-id": "tests-card-search", onChange: (e) => setQuery(e.target.value), placeholder: t('ide.tests.searchPlaceholder', undefined, {
|
|
162
190
|
defaultValue: 'Filter tests…',
|
|
163
191
|
}), className: cm.textSize('xs'), style: { ...fieldStyle, marginBottom: 6 } }), disabledReason && status !== 'loading' && (_jsx("div", { "data-mol-id": "tests-card-disabled-reason", className: cm.textMuted, children: disabledReason })), status === 'loading' && (_jsx("div", { className: cm.textMuted, style: { padding: '6px 0' }, children: t('ide.tests.loading', undefined, { defaultValue: 'Loading tests…' }) })), status === 'unavailable' && (_jsx("div", { "data-mol-id": "tests-card-unavailable", className: cm.textMuted, style: { padding: '6px 0' }, children: t('ide.tests.waitingForSandbox', undefined, {
|
|
164
192
|
defaultValue: 'Start the project to see its tests.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestsCard.js","sourceRoot":"","sources":["../../src/components/TestsCard.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TestsCard.js","sourceRoot":"","sources":["../../src/components/TestsCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module
|
|
9
9
|
*/
|
|
10
|
-
import type { TestItem, TestKind, TestRunEvent, TestRunOutcome, TestStatus, TestWorkspace } from '../types.js';
|
|
10
|
+
import type { TestItem, TestKind, TestRunEvent, TestRunFeedEvent, TestRunOutcome, TestRunSource, TestStatus, TestWorkspace } from '../types.js';
|
|
11
11
|
/** The one test a file is on right now, named the way its runner names it. */
|
|
12
12
|
export interface TestCaseRef {
|
|
13
13
|
/** The runner's test title. */
|
|
@@ -49,8 +49,10 @@ export interface TestResultEntry {
|
|
|
49
49
|
export interface TestsRunState {
|
|
50
50
|
runId: string | null;
|
|
51
51
|
running: boolean;
|
|
52
|
-
/** The ids
|
|
52
|
+
/** The ids the run on show covers, in run order (its private Skip candidates). */
|
|
53
53
|
queued: string[];
|
|
54
|
+
/** Files owed by ANY live covering run; row spinners use this aggregate, Skip never does. */
|
|
55
|
+
runningIds?: string[];
|
|
54
56
|
/** The id whose output is streaming right now, when the host says which. */
|
|
55
57
|
currentId: string | null;
|
|
56
58
|
/** The live output lines, newest last, capped at {@link MAX_OUTPUT_LINES}. */
|
|
@@ -76,6 +78,16 @@ export interface TestsRunState {
|
|
|
76
78
|
error: string | null;
|
|
77
79
|
startedAt: number | null;
|
|
78
80
|
durationMs: number | null;
|
|
81
|
+
/**
|
|
82
|
+
* The run on show was NOT started by this panel (the agent, the platform, or
|
|
83
|
+
* another tab): it can be watched but not stopped or skipped from here.
|
|
84
|
+
* Absent on the panel's own runs.
|
|
85
|
+
*/
|
|
86
|
+
external?: boolean;
|
|
87
|
+
/** Who started the run, when the host said. */
|
|
88
|
+
source?: TestRunSource | null;
|
|
89
|
+
/** The command a run this panel did not start is running, when the host said. */
|
|
90
|
+
command?: string | null;
|
|
79
91
|
}
|
|
80
92
|
/** Live output lines retained — enough to read, bounded so a chatty run cannot grow forever. */
|
|
81
93
|
export declare const MAX_OUTPUT_LINES = 400;
|
|
@@ -125,6 +137,23 @@ export declare function summarizeResults(tests: readonly TestItem[], results: Re
|
|
|
125
137
|
* @returns The next state (a new object whenever anything changed).
|
|
126
138
|
*/
|
|
127
139
|
export declare function applyTestRunEvent(state: TestsRunState, event: TestRunEvent): TestsRunState;
|
|
140
|
+
/**
|
|
141
|
+
* Incremental card state. A server id is applied once, in order; completed runs are compacted
|
|
142
|
+
* while per-file verdicts survive. No raw event history is retained or replayed into a fold.
|
|
143
|
+
*/
|
|
144
|
+
export declare class TestRunProjection {
|
|
145
|
+
private readonly runs;
|
|
146
|
+
private readonly results;
|
|
147
|
+
private readonly pending;
|
|
148
|
+
private lastEventId;
|
|
149
|
+
private order;
|
|
150
|
+
/** Apply one event and return the visible state. Missing ids support older custom hosts only. */
|
|
151
|
+
apply(event: TestRunFeedEvent, activeOwnRunId?: string | null): TestsRunState;
|
|
152
|
+
/** Keep every live run (including the active own run) and only the latest completed run. */
|
|
153
|
+
private compact;
|
|
154
|
+
/** Render current per-file state, with progress and controls selected independently. */
|
|
155
|
+
show(activeOwnRunId?: string | null): TestsRunState;
|
|
156
|
+
}
|
|
128
157
|
/**
|
|
129
158
|
* Record that the person asked to skip what is running. The state only says a
|
|
130
159
|
* request is OUT — the run's own `result` for the skipped file is what actually
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tests-card-utilities.d.ts","sourceRoot":"","sources":["../../src/components/tests-card-utilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,UAAU,EACV,aAAa,EACd,MAAM,aAAa,CAAA;AAEpB,8EAA8E;AAC9E,MAAM,WAAW,WAAW;IAC1B,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,qEAAqE;AACrE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,EAAE,aAAa,CAAA;IACxB,2EAA2E;IAC3E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAA;CAClB;AAED,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,6DAA6D;AAC7D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,
|
|
1
|
+
{"version":3,"file":"tests-card-utilities.d.ts","sourceRoot":"","sources":["../../src/components/tests-card-utilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -134,6 +134,17 @@ export function summarizeResults(tests, results) {
|
|
|
134
134
|
* @returns The next state (a new object whenever anything changed).
|
|
135
135
|
*/
|
|
136
136
|
export function applyTestRunEvent(state, event) {
|
|
137
|
+
// Some hosts discover files as they run. The first event naming a file makes
|
|
138
|
+
// it part of THIS run and invalidates any inherited verdict. Keeping it in
|
|
139
|
+
// the queue also keeps parallel files live when currentId moves elsewhere.
|
|
140
|
+
const id = event.type === 'case' || event.type === 'result' || event.type === 'output'
|
|
141
|
+
? event.id
|
|
142
|
+
: undefined;
|
|
143
|
+
if (id != null && !state.queued.includes(id)) {
|
|
144
|
+
const results = { ...state.results };
|
|
145
|
+
delete results[id];
|
|
146
|
+
state = { ...state, queued: [...state.queued, id], results };
|
|
147
|
+
}
|
|
137
148
|
switch (event.type) {
|
|
138
149
|
case 'start': {
|
|
139
150
|
// A new run clears the previous run's verdicts for the ids it covers, so
|
|
@@ -157,13 +168,15 @@ export function applyTestRunEvent(state, event) {
|
|
|
157
168
|
error: null,
|
|
158
169
|
startedAt: Date.now(),
|
|
159
170
|
durationMs: null,
|
|
171
|
+
source: event.source ?? null,
|
|
172
|
+
command: event.command ?? null,
|
|
160
173
|
};
|
|
161
174
|
}
|
|
162
175
|
case 'output': {
|
|
163
176
|
const output = [...state.output, ...event.chunk.split('\n')];
|
|
164
177
|
return {
|
|
165
178
|
...state,
|
|
166
|
-
currentId: event.id
|
|
179
|
+
currentId: event.id != null && state.results[event.id] == null ? event.id : state.currentId,
|
|
167
180
|
output: output.length > MAX_OUTPUT_LINES ? output.slice(-MAX_OUTPUT_LINES) : output,
|
|
168
181
|
};
|
|
169
182
|
}
|
|
@@ -208,6 +221,7 @@ export function applyTestRunEvent(state, event) {
|
|
|
208
221
|
return {
|
|
209
222
|
...state,
|
|
210
223
|
cases,
|
|
224
|
+
currentId: state.currentId === event.id ? null : state.currentId,
|
|
211
225
|
// Whatever the verdict, the run answered — the Skip the person asked
|
|
212
226
|
// for has either landed or been overtaken.
|
|
213
227
|
skipPending: false,
|
|
@@ -240,6 +254,121 @@ export function applyTestRunEvent(state, event) {
|
|
|
240
254
|
return state;
|
|
241
255
|
}
|
|
242
256
|
}
|
|
257
|
+
/** Compare Redis stream ids without converting their potentially large sequences to numbers. */
|
|
258
|
+
function compareEventIds(a, b) {
|
|
259
|
+
const parse = (id) => {
|
|
260
|
+
const match = /^(\d+)-(\d+)$/.exec(id);
|
|
261
|
+
return match ? [BigInt(match[1]), BigInt(match[2])] : null;
|
|
262
|
+
};
|
|
263
|
+
const left = parse(a);
|
|
264
|
+
const right = parse(b);
|
|
265
|
+
if (!left || !right)
|
|
266
|
+
return 0;
|
|
267
|
+
return left[0] < right[0]
|
|
268
|
+
? -1
|
|
269
|
+
: left[0] > right[0]
|
|
270
|
+
? 1
|
|
271
|
+
: left[1] < right[1]
|
|
272
|
+
? -1
|
|
273
|
+
: left[1] > right[1]
|
|
274
|
+
? 1
|
|
275
|
+
: 0;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Incremental card state. A server id is applied once, in order; completed runs are compacted
|
|
279
|
+
* while per-file verdicts survive. No raw event history is retained or replayed into a fold.
|
|
280
|
+
*/
|
|
281
|
+
export class TestRunProjection {
|
|
282
|
+
runs = new Map();
|
|
283
|
+
results = {};
|
|
284
|
+
pending = new Map();
|
|
285
|
+
lastEventId = null;
|
|
286
|
+
order = 0;
|
|
287
|
+
/** Apply one event and return the visible state. Missing ids support older custom hosts only. */
|
|
288
|
+
apply(event, activeOwnRunId = null) {
|
|
289
|
+
if (event.eventId) {
|
|
290
|
+
if (this.lastEventId && compareEventIds(event.eventId, this.lastEventId) <= 0)
|
|
291
|
+
return this.show(activeOwnRunId);
|
|
292
|
+
this.lastEventId = event.eventId;
|
|
293
|
+
}
|
|
294
|
+
const order = ++this.order;
|
|
295
|
+
const previous = this.runs.get(event.runId) ?? {
|
|
296
|
+
state: { ...EMPTY_RUN_STATE, runId: event.runId, running: event.type !== 'done' },
|
|
297
|
+
covered: new Set(),
|
|
298
|
+
startOrder: order,
|
|
299
|
+
lastOrder: order,
|
|
300
|
+
};
|
|
301
|
+
if (!previous.state.running && event.type === 'done')
|
|
302
|
+
return this.show(activeOwnRunId);
|
|
303
|
+
const id = event.type === 'case' || event.type === 'result' || event.type === 'output'
|
|
304
|
+
? event.id
|
|
305
|
+
: undefined;
|
|
306
|
+
const covered = event.type === 'start' ? event.ids : id != null && !previous.covered.has(id) ? [id] : [];
|
|
307
|
+
for (const file of covered) {
|
|
308
|
+
previous.covered.add(file);
|
|
309
|
+
delete this.results[file];
|
|
310
|
+
this.pending.set(file, event.runId);
|
|
311
|
+
}
|
|
312
|
+
let next = applyTestRunEvent(previous.state, event);
|
|
313
|
+
if (event.type === 'start' && event.startedAt) {
|
|
314
|
+
const startedAt = Date.parse(event.startedAt);
|
|
315
|
+
if (Number.isFinite(startedAt))
|
|
316
|
+
next = { ...next, startedAt };
|
|
317
|
+
}
|
|
318
|
+
if (event.type === 'result') {
|
|
319
|
+
const verdict = next.results[event.id];
|
|
320
|
+
if (verdict)
|
|
321
|
+
this.results[event.id] = verdict;
|
|
322
|
+
// The latest verdict is what counts, even when an older run produced it after a newer start.
|
|
323
|
+
this.pending.delete(event.id);
|
|
324
|
+
}
|
|
325
|
+
if (event.type === 'done') {
|
|
326
|
+
for (const [file, runId] of this.pending) {
|
|
327
|
+
if (runId === event.runId)
|
|
328
|
+
this.pending.delete(file);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
this.runs.set(event.runId, { ...previous, state: next, lastOrder: order });
|
|
332
|
+
this.compact();
|
|
333
|
+
return this.show(activeOwnRunId);
|
|
334
|
+
}
|
|
335
|
+
/** Keep every live run (including the active own run) and only the latest completed run. */
|
|
336
|
+
compact() {
|
|
337
|
+
const completed = [...this.runs.values()]
|
|
338
|
+
.filter((run) => !run.state.running)
|
|
339
|
+
.sort((a, b) => b.lastOrder - a.lastOrder);
|
|
340
|
+
for (const run of completed.slice(1)) {
|
|
341
|
+
if (run.state.runId)
|
|
342
|
+
this.runs.delete(run.state.runId);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
/** Render current per-file state, with progress and controls selected independently. */
|
|
346
|
+
show(activeOwnRunId = null) {
|
|
347
|
+
const activeOwn = activeOwnRunId ? this.runs.get(activeOwnRunId) : undefined;
|
|
348
|
+
const running = [...this.runs.values()]
|
|
349
|
+
.filter((run) => run.state.running)
|
|
350
|
+
.sort((a, b) => a.startOrder - b.startOrder || a.lastOrder - b.lastOrder);
|
|
351
|
+
const latest = [...this.runs.values()].sort((a, b) => a.lastOrder - b.lastOrder).at(-1);
|
|
352
|
+
const shown = activeOwn?.state.running
|
|
353
|
+
? activeOwn
|
|
354
|
+
: (running.at(-1) ?? latest ?? { state: EMPTY_RUN_STATE });
|
|
355
|
+
const runningIds = new Set([...this.pending]
|
|
356
|
+
.filter(([, runId]) => this.runs.get(runId)?.state.running === true)
|
|
357
|
+
.map(([id]) => id));
|
|
358
|
+
const own = shown.state.runId != null && shown.state.runId === activeOwnRunId;
|
|
359
|
+
const currentId = shown.state.currentId && runningIds.has(shown.state.currentId) ? shown.state.currentId : null;
|
|
360
|
+
const cases = Object.fromEntries(Object.entries(shown.state.cases).filter(([id]) => runningIds.has(id)));
|
|
361
|
+
return {
|
|
362
|
+
...shown.state,
|
|
363
|
+
currentId,
|
|
364
|
+
cases,
|
|
365
|
+
runningIds: [...runningIds],
|
|
366
|
+
results: { ...this.results },
|
|
367
|
+
external: shown.state.runId == null ? undefined : !own,
|
|
368
|
+
skipUnavailable: own ? shown.state.skipUnavailable : true,
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
}
|
|
243
372
|
/**
|
|
244
373
|
* Record that the person asked to skip what is running. The state only says a
|
|
245
374
|
* request is OUT — the run's own `result` for the skipped file is what actually
|
|
@@ -249,7 +378,7 @@ export function applyTestRunEvent(state, event) {
|
|
|
249
378
|
* @returns The next state, or the same one when there is nothing to skip.
|
|
250
379
|
*/
|
|
251
380
|
export function requestSkip(state) {
|
|
252
|
-
if (!state
|
|
381
|
+
if (!canSkipRun(state) || state.skipPending)
|
|
253
382
|
return state;
|
|
254
383
|
return { ...state, skipPending: true };
|
|
255
384
|
}
|
|
@@ -271,7 +400,7 @@ export function markSkipUnavailable(state) {
|
|
|
271
400
|
* @returns True when a Skip control belongs on screen.
|
|
272
401
|
*/
|
|
273
402
|
export function canSkipRun(state) {
|
|
274
|
-
return state.running && !state.skipUnavailable;
|
|
403
|
+
return state.running && !state.external && !state.skipUnavailable;
|
|
275
404
|
}
|
|
276
405
|
/**
|
|
277
406
|
* Which row the Skip acts on: the one the stream named as current, or — when it
|
|
@@ -286,7 +415,8 @@ export function currentRunRowId(state) {
|
|
|
286
415
|
return null;
|
|
287
416
|
if (state.currentId)
|
|
288
417
|
return state.currentId;
|
|
289
|
-
const
|
|
418
|
+
const runningIds = new Set(state.runningIds ?? state.queued);
|
|
419
|
+
const pending = state.queued.filter((id) => runningIds.has(id) && state.results[id] == null);
|
|
290
420
|
return pending.length === 1 ? pending[0] : null;
|
|
291
421
|
}
|
|
292
422
|
/**
|
|
@@ -334,11 +464,11 @@ export function failRun(state, message) {
|
|
|
334
464
|
* @returns True when the row is part of the live run and still undecided.
|
|
335
465
|
*/
|
|
336
466
|
export function isRowRunning(state, id) {
|
|
337
|
-
if (!state.running)
|
|
467
|
+
if (!state.running || state.results[id] != null)
|
|
338
468
|
return false;
|
|
339
469
|
if (state.currentId === id)
|
|
340
470
|
return true;
|
|
341
|
-
return state.queued.includes(id) && state.results[id] == null;
|
|
471
|
+
return (state.runningIds ?? state.queued).includes(id) && state.results[id] == null;
|
|
342
472
|
}
|
|
343
473
|
/**
|
|
344
474
|
* The label for a row: the host's title when it gave one, else the file path.
|