import test from 'node:test'; import assert from 'node:assert/strict'; import { editNoteDraft, acknowledgeNoteDraft } from '../src/services/noteDrafts.js'; test('late note acknowledgement preserves newer edits and other tender drafts', () => { let state = editNoteDraft({ owner: 'a', drafts: {} }, 'a', 'giresun', 'İlk not'); const submitted = state.drafts.giresun; state = editNoteDraft(state, 'a', 'kayseri', 'Başka ihale'); const acknowledged = acknowledgeNoteDraft(state, 'a', 'giresun', submitted); assert.equal(acknowledged.drafts.giresun, undefined); assert.equal(acknowledged.drafts.kayseri.text, 'Başka ihale'); state = editNoteDraft(state, 'a', 'giresun', 'Yeni not'); assert.equal(acknowledgeNoteDraft(state, 'a', 'giresun', submitted), state); state = editNoteDraft(state, 'a', 'giresun', 'İlk not'); assert.equal(acknowledgeNoteDraft(state, 'a', 'giresun', submitted), state); }); test('old account acknowledgements cannot clear another session draft', () => { const old = editNoteDraft({ owner: 'a', drafts: {} }, 'a', 'giresun', 'not'); const other = editNoteDraft({ owner: 'b', drafts: {} }, 'b', 'giresun', 'not'); assert.equal(acknowledgeNoteDraft(other, 'a', 'giresun', old.drafts.giresun), other); assert.equal(editNoteDraft(other, 'a', 'giresun', 'late edit'), other); const relogged = editNoteDraft({ owner: 'a', drafts: {} }, 'a', 'giresun', 'not'); assert.equal(acknowledgeNoteDraft(relogged, 'a', 'giresun', old.drafts.giresun), relogged); });