Files
ihaleist/tests/bid-terms.test.mjs
T

23 lines
1.4 KiB
JavaScript

import test from 'node:test';
import assert from 'node:assert/strict';
import {extractBidValidity,bidValidityForForm} from '../src/services/bidTerms.js';
import {qualifyAnalysis} from '../server/analysis-quality.mjs';
test('bid validity is structured from source with exact clause evidence',()=>{
const source='Teslimat 15 gün. TEKLİFLERİN GEÇERLİLİK SÜRESİ ihale tarihinden itibaren 120 (yüzyirmi) takvim günüdür.';
const terms=extractBidValidity(source);
assert.equal(terms.days,120);
assert.equal(source.slice(terms.evidence[0].start,terms.evidence[0].end),terms.evidence[0].quote);
assert.equal(extractBidValidity('Garanti süresi 60 gün. Belge geçerlilik süresi 90 gün.').status,'not_found');
const result=qualifyAnalysis({},{text:source});
assert.equal(result.procurementTerms.bidValidity.days,120);
assert.equal(bidValidityForForm('',JSON.parse(JSON.stringify(result.procurementTerms.bidValidity))).days,120);
});
test('conflicting clauses remain unresolved instead of choosing the first duration',()=>{
const a='Teklif geçerlilik süresi 120 takvim günü.';
const b='Tekliflerin geçerlilik süresi 60 gündür.';
assert.equal(extractBidValidity(a+' '+b).status,'conflict');
assert.equal(bidValidityForForm(a,extractBidValidity(b)).status,'conflict');
assert.equal(qualifyAnalysis({},{text:a+' '+b}).sourceReview.status,'partial');
assert.equal(extractBidValidity(a+' '+a).days,120);
});