mirror of
https://github.com/PeWu/topola-viewer.git
synced 2026-07-18 01:31:47 +00:00
31 lines
1.1 KiB
TypeScript
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);
|
|
});
|
|
});
|