prefer official EKAP detail deadline

This commit is contained in:
2026-09-06 19:44:29 +03:00
parent 74e784e2f7
commit 9fd1db3c8a
9 changed files with 393 additions and 5 deletions
+17 -1
View File
@@ -1,6 +1,6 @@
import {test} from 'node:test';
import assert from 'node:assert/strict';
import {uniqueTenders,announcementFields} from '../server/tender-quality.mjs';
import {uniqueTenders,announcementFields,officialDateFields,mergeAnnouncementFields} from '../server/tender-quality.mjs';
test('duplicate DT records merge without merging another institution or losing source identities',()=>{
const t={id:'dt-1',ikn:'26DT1693370',kurum:'Hastane'};
const out=uniqueTenders([t,{...t,id:'dt-2',aciklama:'Tam metin'},{...t,id:'dt-3',kurum:'Başka hastane'}]);
@@ -49,3 +49,19 @@ test('announcement deadline parser accepts common label variants',()=>{
assert.equal(d.saat,['09:30','14:15','08:05'][i]);
}
});
test('official EKAP detail date takes precedence over stale announcement date',()=>{
const official=officialDateFields('16.09.2026 10:00');
assert.deepEqual(official,{tarih:'16.09.2026',saat:'10:00',sourceDateTime:'16.09.2026 10:00'});
const merged=mergeAnnouncementFields('2.1. Tarih ve Saati: 09.09.2026 - 10:00',official);
assert.equal(merged.tarih,'16.09.2026');
assert.equal(merged.saat,'10:00');
assert.match(merged.sourceDateWarning,/Resmî ihale detay tarihi/);
});
test('official date merge preserves announcement fields when dates agree',()=>{
const merged=mergeAnnouncementFields('2.1. Tarih ve Saati: 10.09.2026 - 10:00',officialDateFields('2026-09-10T10:00:00'));
assert.equal(merged.tarih,'10.09.2026');
assert.equal(merged.saat,'10:00');
assert.equal(merged.sourceDateWarning,undefined);
});