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

35 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 {extractBidValidity,bidValidityForForm,extractBidType,bidTypeForForm} from '../src/services/bidTerms.js';
import {qualifyAnalysis} from '../server/analysis-quality.mjs';
test('offer type comes from explicit clauses and conflicting types remain unresolved',()=>{
const unit='İstekliler birim fiyat teklif vereceklerdir.';
const lump='TEKLİF TÜRÜ: ANAHTAR TESLİMİ GÖTÜRÜ BEDEL';
assert.equal(extractBidType(unit).type,'birim');
assert.equal(extractBidType(lump).type,'goturu');
assert.equal(extractBidType('Birim fiyat tablosu örneği. Götürü bedel teklif verilemez.').status,'not_found');
assert.equal(extractBidType('Kalem listesi bulunamadı.').type,null);
assert.equal(bidTypeForForm(unit,extractBidType(lump)).status,'conflict');
const result=qualifyAnalysis({},{text:lump});
assert.equal(result.procurementTerms.bidType.type,'goturu');
assert.equal(qualifyAnalysis({},{text:unit+' '+lump}).sourceReview.status,'partial');
});
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);
});