26 lines
1.5 KiB
JavaScript
26 lines
1.5 KiB
JavaScript
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);
|
|
});
|