fix: align list expiry and date ordering with tender deadlines
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import { acikIhale, compareTenderDeadlines, ihaleGunu } from '../src/services/ihaleTarih.js';
|
||||
test('list date sorting crosses month/year boundaries and leaves unknown dates last',()=>{
|
||||
const rows=[
|
||||
{id:'oct',tarih:'01.10.2026',saat:'09:00'},
|
||||
{id:'sep-late',tarih:'30.09.2026',saat:'14:00'},
|
||||
{id:'sep-early',tarih:'30.09.2026',saat:'09:00'},
|
||||
{id:'year',tarih:'01.01.2027',saat:'09:00'},
|
||||
{id:'unknown',tarih:''},
|
||||
];
|
||||
assert.deepEqual([...rows].sort(compareTenderDeadlines).map(t=>t.id),['sep-early','sep-late','oct','year','unknown']);
|
||||
assert.deepEqual([...rows].sort((a,b)=>compareTenderDeadlines(a,b,-1)).map(t=>t.id),['year','oct','sep-late','sep-early','unknown']);
|
||||
assert.equal(ihaleGunu('31.09.2026'),null);
|
||||
});
|
||||
test('open list closes at exact deadline but never invents an unknown time',()=>{
|
||||
const t={tarih:'06.09.2026',saat:'10:00'};
|
||||
assert.equal(acikIhale(t,new Date('2026-09-06T06:59:59Z')),true);
|
||||
assert.equal(acikIhale(t,new Date('2026-09-06T07:00:00Z')),false);
|
||||
assert.equal(acikIhale({...t,saat:''},new Date('2026-09-06T20:59:59Z')),true);
|
||||
assert.equal(acikIhale({...t,saat:''},new Date('2026-09-06T21:00:00Z')),false);
|
||||
for(const durum of ['İptal','Sonuçlandı','Sözleşme İmzalandı']) assert.equal(acikIhale({...t,durum},new Date('2026-09-05')),false);
|
||||
});
|
||||
Reference in New Issue
Block a user