fix: preserve newer tender note drafts after delayed saves

This commit is contained in:
2026-09-06 09:07:23 +03:00
parent d4d9d17a9f
commit 7ad5fb4f50
4 changed files with 59 additions and 19 deletions
+25
View File
@@ -0,0 +1,25 @@
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);
});