import test from 'node:test'; import assert from 'node:assert/strict'; import { createRequire } from 'node:module'; const require = createRequire(import.meta.url); const guard = require('../chrome-extension/ltjt-order-assistant/execution-guard.js'); test('a new ERP execution is accepted exactly once', () => { assert.deepEqual(guard.acceptanceDecision(null, 'execution-1'), { accepted: true, status: 'accepted', reason: '' }); const existing = { execution_id: 'execution-1', state: 'running' }; const replay = guard.acceptanceDecision(existing, 'execution-1'); assert.equal(replay.accepted, false); assert.equal(replay.status, 'already_started'); }); test('a different execution id for the same task is blocked', () => { const result = guard.acceptanceDecision({ execution_id: 'execution-1', state: 'completed' }, 'execution-2'); assert.equal(result.accepted, false); assert.equal(result.status, 'duplicate_blocked'); }); test('failures after the write boundary become uncertain', () => { assert.equal(guard.failureState({ state: 'running' }), 'blocked'); assert.equal(guard.failureState({ state: 'write_started' }), 'uncertain'); assert.equal(guard.failureState({ state: 'submitted' }), 'uncertain'); assert.equal(guard.rootTaskId('TASK-1#2'), 'TASK-1'); });