/
kreyndelHam
/
Konstructorium
Обзор
Документация
Войти
/
kreyndelHam
/
Konstructorium
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
1
CI/CD
Аналитика
Безопасность
dev
frontend/src/utils/csvExport.test.js
36 строк
1 KB
MihahamYT
Fixed CI
25 май 2026, 13:19
25 май 2026, 13:19
01c4f98
Код
Авторство
О чём код?
import { describe, expect, it, vi } from 'vitest' import { buildCsvContent, downloadCsvFile, escapeCsvField } from './csvExport' describe('csvExport', () => { it('escapeCsvField wraps and escapes quotes', () => { expect(escapeCsvField('hello')).toBe('"hello"') expect(escapeCsvField('say "hi"')).toBe('"say ""hi"""') expect(escapeCsvField(null)).toBe('""') }) it('buildCsvContent joins headers and rows', () => { const csv = buildCsvContent(['A', 'B'], [['1', '2']]) expect(csv).toBe('"A","B"\n"1","2"') }) it('downloadCsvFile triggers anchor click', () => { if (typeof URL.createObjectURL !== 'function') { global.URL.createObjectURL = vi.fn(() => 'blob:test') global.URL.revokeObjectURL = vi.fn() } const click = vi.fn() const revoke = vi.fn() vi.spyOn(URL, 'createObjectURL').mockReturnValue('blob:test') vi.spyOn(URL, 'revokeObjectURL').mockImplementation(revoke) const link = { click, setAttribute: vi.fn(), href: '' } vi.spyOn(document, 'createElement').mockReturnValue(link) vi.spyOn(document.body, 'appendChild').mockImplementation(() => {}) vi.spyOn(document.body, 'removeChild').mockImplementation(() => {}) downloadCsvFile('out.csv', ['H'], [['v']]) expect(click).toHaveBeenCalled() expect(revoke).toHaveBeenCalled() }) })