Files
Agent-System/web/src/lib/durableBodySnippet.test.ts
T
weichenandCursor 5db2d9a3b1 fix(e2e): persist the winning A1 body snippet for post-restart
UI-13b already made A1 the durable document, but phase-state still expected the UI-06 marker. Record successful saves as the latest snippet, ignore conflict drafts, and write that final value at UI-15-pre without relaxing the restore assertion.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 23:28:17 +00:00

34 lines
1.5 KiB
TypeScript

import { describe, it } from 'node:test';
import assert from 'node:assert/strict';
import { nextDurableBodySnippet, requireDurableSnippet } from './durableBodySnippet';
describe('durableBodySnippet', () => {
it('rejects empty persisted snippets', () => {
assert.throws(() => requireDurableSnippet(' '), /empty_durable_body_snippet/);
assert.throws(
() => nextDurableBodySnippet('UI06-old', { kind: 'persisted', snippet: ' ' }),
/empty_durable_body_snippet/,
);
});
it('lets a later successful revision replace the old snippet', () => {
const afterUi06 = nextDurableBodySnippet(undefined, { kind: 'persisted', snippet: ' UI06-mu0eq020 ' });
assert.equal(afterUi06, 'UI06-mu0eq020');
const afterA1 = nextDurableBodySnippet(afterUi06, { kind: 'persisted', snippet: 'A1-win-mu0eq020' });
assert.equal(afterA1, 'A1-win-mu0eq020');
assert.notEqual(afterA1, afterUi06);
});
it('does not promote a conflict-failed draft to the expected body', () => {
const afterUi06 = nextDurableBodySnippet(undefined, { kind: 'persisted', snippet: 'UI06-mu0eq020' });
const afterA1 = nextDurableBodySnippet(afterUi06, { kind: 'persisted', snippet: 'A1-win-mu0eq020' });
const afterA2Conflict = nextDurableBodySnippet(afterA1, {
kind: 'conflict_draft',
snippet: 'A2-conflict-mu0eq020',
});
assert.equal(afterA2Conflict, 'A1-win-mu0eq020');
assert.notEqual(afterA2Conflict, 'A2-conflict-mu0eq020');
assert.notEqual(afterA2Conflict, 'UI06-mu0eq020');
});
});