reconcile official tender dates on detail open
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import {fetchTenderDetail} from '../src/services/tenderApi.js';
|
||||
import {fetchTenderDetail,fetchOfficialTenderDetail} from '../src/services/tenderApi.js';
|
||||
test('detail loading rejects empty source, supports retry and stops on timeout/cancel',async()=>{
|
||||
const original=globalThis.fetch;
|
||||
try {
|
||||
@@ -36,3 +36,17 @@ test('search-only detail uses IKN endpoint and warns when official announcement
|
||||
await assert.rejects(fetchTenderDetail('ekap-2026/123'),/İKN/);
|
||||
} finally {globalThis.fetch=original;}
|
||||
});
|
||||
|
||||
test('official tender detail keeps EKAP date authoritative and validates IKN',async()=>{
|
||||
const original=globalThis.fetch;
|
||||
try {
|
||||
globalThis.fetch=async url=>{
|
||||
assert.equal(url,'/api/documents/ilan?ikn=2026%2F1573235');
|
||||
return Response.json({success:true,ikn:'2026/1573235',tarih:'16.09.2026',saat:'10:00',sourceDateTime:'16.09.2026 10:00',metin:'EKAP ilanı'});
|
||||
};
|
||||
const detail=await fetchOfficialTenderDetail(' 2026/1573235 ');
|
||||
assert.equal(detail.tarih,'16.09.2026');
|
||||
globalThis.fetch=async()=>Response.json({success:true,ikn:'2026/999',tarih:'10.09.2026',saat:'10:00'});
|
||||
await assert.rejects(()=>fetchOfficialTenderDetail('2026/1573235'),/İKN/);
|
||||
} finally {globalThis.fetch=original;}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user