Files
topola-viewer/src/datasource/load_data.spec.ts
2026-05-18 23:22:00 +02:00

31 lines
1.1 KiB
TypeScript

import {describe, expect, it} from '@jest/globals';
import {Blob, Buffer} from 'buffer';
import {zipSync} from 'fflate';
import {readFileSync} from 'fs';
import {loadFile} from './load_data';
describe('loadFile', () => {
global.URL.createObjectURL = jest.fn();
it('loads GEDCOM file', async () => {
const file = readFileSync('src/datasource/testdata/test.ged');
const blob = new Blob([file]) as globalThis.Blob;
const {gedcom, images} = await loadFile(blob);
// File length may differ between Linux and Windows due to line endings (\n vs \r\n)
// So, check for a set of values instead of exactly one value
expect([4408, 4765]).toContain(gedcom.length);
expect(images).toEqual(new Map());
});
it('loads GEDZIP file', async () => {
const file = zipSync({
'test.ged': readFileSync('src/datasource/testdata/test.ged'),
'topola.jpg': readFileSync('src/datasource/testdata/topola.jpg'),
});
const blob = new Blob([Buffer.from(file)]) as globalThis.Blob;
const {gedcom, images} = await loadFile(blob);
expect(gedcom.length).toBe(4408);
expect(images.size).toBe(1);
});
});