import { describe, it, expect } from 'vitest';
import { csv } from '@/lib/csv';

const BOM = String.fromCharCode(0xfeff);

describe('CSV dışa aktarma', () => {
  it('Excel için BOM, noktalı virgül ve satır sonu', () => {
    expect(csv([['a', 'b'], [1, null]])).toBe(`${BOM}a;b\r\n1;`);
  });
  it('ayraç, tırnak ve satır sonu içeren hücreleri tırnaklar', () => {
    expect(csv([['x;y', 'say "merhaba"', 'iki\nsatır']])).toBe(`${BOM}"x;y";"say ""merhaba""";"iki\nsatır"`);
  });
  it('formül gibi başlayan metin hücrelerini etkisizleştirir', () => {
    expect(csv([['=HYPERLINK("x")', '+90 555', '-1', '@a']])).toBe(`${BOM}"'=HYPERLINK(""x"")";'+90 555;'-1;'@a`);
  });
  it('negatif sayılar metne çevrilmez', () => {
    expect(csv([[-5, 0]])).toBe(`${BOM}-5;0`);
  });
});
