fix: export filtered tender list as real XLSX
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import ExcelJS from 'exceljs';
|
||||
import {createTenderWorkbook} from '../src/services/tenderWorkbook.js';
|
||||
test('list XLSX roundtrip preserves all rows, Turkish text, special characters and text-only cells',async()=>{
|
||||
const rows=Array.from({length:125},(_,i)=>({ikn:`2026/00${i}`,baslik:i===0?'=1+1':'İğdır, "Kit"\nTest # &',
|
||||
kurum:'Sağlık',sehir:'Iğdır',tarih:'01.10.2026',saat:'09:30',cpv:['001','002'],kaynakUrl:'https://example.test/?a=1&b=2#ilan'}));
|
||||
const bytes=await createTenderWorkbook(rows);
|
||||
assert.equal(Buffer.from(bytes).subarray(0,2).toString(),'PK');
|
||||
const book=new ExcelJS.Workbook();await book.xlsx.load(bytes);
|
||||
const sheet=book.getWorksheet('İhale Listesi');
|
||||
assert.equal(sheet.rowCount,126);
|
||||
assert.equal(sheet.getCell('A2').value,'2026/000');
|
||||
assert.equal(sheet.getCell('B2').value,'=1+1');
|
||||
assert.equal(sheet.getCell('B2').type,ExcelJS.ValueType.String);
|
||||
assert.equal(sheet.getCell('B126').value,rows[124].baslik);
|
||||
assert.equal(sheet.getCell('F2').value,'09:30');
|
||||
assert.equal(sheet.getCell('I2').value,'001, 002');
|
||||
assert.equal(sheet.getCell('J2').value,rows[0].kaynakUrl);
|
||||
await assert.rejects(()=>createTenderWorkbook([]),/bulunamadı/);
|
||||
});
|
||||
Reference in New Issue
Block a user