fix: resolve current bid source by IKN and track output header changes
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import {applyTenderStates,tenderSnapshot,tenderSourceChanges} from '../src/services/tenderState.js';
|
||||
import {applyTenderStates,tenderSnapshot,tenderSourceChanges,resolveCurrentTender} from '../src/services/tenderState.js';
|
||||
import {bidSourceSnapshot} from '../src/services/bidSource.js';
|
||||
test('fresh deadline and cancellation changes remain visible without overwriting saved work',()=>{
|
||||
const original={id:'old-id',ikn:'2026/1',tarih:'10.09.2026',saat:'10:00',durum:'Açık',documentVersion:'v1'};
|
||||
@@ -30,3 +30,23 @@ test('winner publication changes the reviewed bid source without destroying save
|
||||
assert.equal(restored.kazananFirma,'QA Kazanan');
|
||||
assert.equal(bidSourceSnapshot(original),bidSourceSnapshot({...original,kazananFirma:''}));
|
||||
});
|
||||
|
||||
|
||||
test('preparation resolves rotating source ids by IKN without merging a different procurement',()=>{
|
||||
const selected={id:'old-response',ikn:'2026/42',baslik:'Eski başlık',bidDraft:{pricesBySource:{kit:'10'}}};
|
||||
const updated={id:'new-response',ikn:'2026/42',baslik:'Güncel başlık',kazananFirma:'QA Kazanan'};
|
||||
const result=resolveCurrentTender(selected,[{id:'old-response',ikn:'2026/99',baslik:'Başka ihale'},updated]);
|
||||
assert.equal(result.id,'new-response');assert.equal(result.kazananFirma,'QA Kazanan');
|
||||
assert.equal(result.baslik,'Güncel başlık');assert.deepEqual(result.bidDraft,selected.bidDraft);
|
||||
assert.deepEqual(resolveCurrentTender(selected,[{id:'old-response',ikn:'2026/99'}]),selected);
|
||||
assert.deepEqual(resolveCurrentTender(selected,[]),selected);
|
||||
assert.equal(resolveCurrentTender({id:'local-id'},[{id:'local-id',ikn:'2026/42'}]).ikn,'2026/42');
|
||||
});
|
||||
|
||||
test('output header changes invalidate source review, while rotating response ids do not',()=>{
|
||||
const tender={id:'response-1',ikn:'2026/42',baslik:'Laboratuvar alımı',kurum:'QA Hastane',tarih:'10.09.2026',saat:'10:00'};
|
||||
const original=bidSourceSnapshot(tender);
|
||||
for(const patch of [{baslik:'Düzeltilmiş alım'},{kurum:'Düzeltilmiş idare'},{ihaleTarihi:'11.09.2026'}])
|
||||
assert.notEqual(bidSourceSnapshot({...tender,...patch}),original);
|
||||
assert.equal(bidSourceSnapshot({...tender,id:'response-2'}),original);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user