23 lines
1.4 KiB
JavaScript
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);
|
|
});
|