Files
ihaleist/tests/tender-quality.test.mjs
T

29 lines
2.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import {test} from 'node:test';
import assert from 'node:assert/strict';
import {uniqueTenders,announcementFields} 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'}]);
assert.equal(out.length,2);assert.deepEqual(out[0].sourceIds,['dt-1','dt-2']);assert.equal(out[0].aciklama,'Tam metin');
});
test('distinct contract lots and corrections remain separate',()=>{
const t={ikn:'2026/123',durum:'Sonuçlandı',kisim:'1',id:'a',kazananFirma:'Firma'};
assert.equal(uniqueTenders([t,t,{...t,id:'b',kisim:'2'}]).length,2);
assert.equal(uniqueTenders([{ikn:'2026/123',id:'1'},{ikn:'2026/123',id:'2',baslik:'Düzeltme ilanı'}]).length,2);
});
test('announcement preserves full text and extracts source-backed fields',()=>{
const text='x'.repeat(4500)+' Tarih ve Saati : 10.09.2026 - 10:00 3.3. Teslim edileceği yer : Patoloji laboratuvarı 3.4. Süresi/teslim tarihi : 30 gün 3.5. İşe başlama tarihi : sözleşme';
const d=announcementFields(text);assert.equal(d.aciklama,text);assert.equal(d.saat,'10:00');assert.equal(d.teslimYeri,'Patoloji laboratuvarı');assert.equal(d.teslimatSuresi,'30 gün');
assert.deepEqual(announcementFields('Eksik ilan'),{aciklama:'Eksik ilan'});
});
// Shape observed in the real EKAP announcement for 2026/1431768.
test('EKAP table separators do not hide the deadline or leak into delivery fields',()=>{
const text='2.1. Tarih ve Saati | : | 08.09.2026 - 11:00 | 2.2. Adres | : | İhale salonu | 3.3. Yapılacağı/teslim edileceği yer | : | Turgut Özal Tıp Merkezi Deposu-Malatya | 3.4. Süresi/teslim tarihi | : | Her siparişin tebliğinden itibaren 30 (otuz) takvim günü | 3.5. İşe başlama tarihi | : | Sözleşme tarihi';
const d=announcementFields(text);
assert.equal(d.aciklama,text);
assert.equal(d.tarih,'08.09.2026');assert.equal(d.saat,'11:00');
assert.equal(d.teslimYeri,'Turgut Özal Tıp Merkezi Deposu-Malatya');
assert.equal(d.teslimatSuresi,'Her siparişin tebliğinden itibaren 30 (otuz) takvim günü');
});