@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.
@@ -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;AAE9D;;;;;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;CAClC;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAyC7F"}
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
- const label = testsBarLabel(summary);
74
- 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' && (summary.currentTest ?? summary.currentFile) ? (_jsx("span", { "data-mol-id": "tests-bar-current", children: `· ${summary.currentTest ?? summary.currentFile}` })) : 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) => {
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":"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"}
1
+ {"version":3,"file":"TestStatusBar.js","sourceRoot":"","sources":["../../src/components/TestStatusBar.tsx"],"names":[],"mappings":"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"}
@@ -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;AAM/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;CACnB;AAsCD;;;;;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,GACT,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CAoW9B;yBAjXe,SAAS"}
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" }), t('ide.tests.running', undefined, { defaultValue: 'Running…' })] })) : (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
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 ? (_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' }) })) : (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' }) })))] })] }), _jsx("input", { value: query, "data-mol-id": "tests-card-search", onChange: (e) => setQuery(e.target.value), placeholder: t('ide.tests.searchPlaceholder', undefined, {
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 this run covers, in run order. */
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":"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"}
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 ?? state.currentId,
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.running || state.skipPending || state.skipUnavailable)
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 pending = state.queued.filter((id) => state.results[id] == null);
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.