T20-F2/F3/F5/F6: reset stuck executing cards, reclaim AbortControllers via removeTurn, wrap chat/doc panes, and split SSE on CRLF blank lines as well as LF.
16 lines
781 B
TypeScript
16 lines
781 B
TypeScript
import assert from 'node:assert/strict';
|
|
import { readFileSync } from 'node:fs';
|
|
import test from 'node:test';
|
|
|
|
test('workbench shell lives outside App', () => {
|
|
const app = readFileSync(new URL('../../App.tsx', import.meta.url), 'utf8');
|
|
const view = readFileSync(new URL('./WorkbenchView.tsx', import.meta.url), 'utf8');
|
|
const shell = readFileSync(new URL('./AppShell.tsx', import.meta.url), 'utf8');
|
|
assert.equal((app.match(/<WorkbenchView\b/g) || []).length, 1);
|
|
assert.equal(app.includes('<AppShell'), false);
|
|
assert.equal(view.includes('<AppShell'), true);
|
|
assert.equal(view.includes('<ProjectSettingsModal'), true);
|
|
assert.equal(view.includes('<FirstLoginPasswordModal'), true);
|
|
assert.equal((shell.match(/<ErrorBoundary>/g) || []).length >= 2, true);
|
|
});
|