22 lines
1.2 KiB
JavaScript
22 lines
1.2 KiB
JavaScript
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ı/);
|
||
});
|