Apply saved filters to tender search with visible region criteria
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import {REGION_CITIES,matchesRegion,matchesProcurement,savedFilterCriteria} from '../src/services/savedFilterCriteria.js';
|
||||
import {CITIES_LIST} from '../src/data/constants.js';
|
||||
test('province-based regions cover all 81 cities exactly once and normalize Turkish names',()=>{
|
||||
const cities=Object.values(REGION_CITIES).flatMap(value=>value.split(','));
|
||||
assert.equal(cities.length,81);assert.deepEqual([...cities].sort(),[...CITIES_LIST].sort());assert.equal(new Set(cities).size,81);
|
||||
assert.equal(matchesRegion({sehir:' giresun '},'KARADENİZ BÖLGESİ'),true);
|
||||
assert.equal(matchesRegion({sehir:'Kayseri'},'KARADENİZ BÖLGESİ'),false);
|
||||
assert.equal(matchesRegion({sehir:''},'KARADENİZ BÖLGESİ'),false);
|
||||
});
|
||||
test('saved criteria preserves all five fields and rejects unrecognized regions',()=>{
|
||||
assert.deepEqual(savedFilterCriteria({sehir:' Giresun ',bolge:'karadeniz bölgesi',sektor:'Laboratuvar',kurumTipi:'Hastaneler',usul:'Açık İhale'}),{city:'Giresun',region:'KARADENİZ BÖLGESİ',sector:'Laboratuvar',institution:'Hastaneler',procedure:'Açık İhale'});
|
||||
assert.throws(()=>savedFilterCriteria({bolge:'Bilinmeyen'}),/tanınmadı/);
|
||||
assert.throws(()=>savedFilterCriteria({sehir:[]}),/geçersiz/);
|
||||
});
|
||||
test('procedure filter uses explicit source procedure, not inferred purchase category',()=>{
|
||||
assert.equal(matchesProcurement({alimTuru:'Mal Alımı',ihaleUsulu:'Açık İhale'},'Açık İhale'),true);
|
||||
assert.equal(matchesProcurement({alimTuru:'Mal Alımı'},'Açık İhale'),false);
|
||||
assert.equal(matchesProcurement({alimTuru:'Doğrudan Temin'},'Doğrudan Temin'),true);
|
||||
});
|
||||
Reference in New Issue
Block a user