fix: preserve newer tender note drafts after delayed saves
This commit is contained in:
@@ -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);
|
||||
});
|
||||
Reference in New Issue
Block a user