update at 2026-02-13 22:26:53
This commit is contained in:
44
tests/miniapp.spec.ts
Normal file
44
tests/miniapp.spec.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import { readFileSync } from 'node:fs';
|
||||
import { createRequire } from 'node:module';
|
||||
import { resolve } from 'node:path';
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
const require = createRequire(import.meta.url);
|
||||
const { parseTableByFileName, parseXlsxBuffer } = require('../miniapp/utils/sankey.js') as {
|
||||
parseTableByFileName: (fileName: string, payload: string | ArrayBuffer) => {
|
||||
headers: string[];
|
||||
rows: string[][];
|
||||
};
|
||||
parseXlsxBuffer: (buffer: ArrayBuffer) => {
|
||||
headers: string[];
|
||||
rows: string[][];
|
||||
};
|
||||
};
|
||||
|
||||
describe('miniapp utils sankey', () => {
|
||||
it('按文件后缀分流解析 csv', () => {
|
||||
const table = parseTableByFileName('demo.csv', 'source,value,target\nA,12,T1');
|
||||
expect(table.headers).toEqual(['source', 'value', 'target']);
|
||||
expect(table.rows).toEqual([['A', '12', 'T1']]);
|
||||
});
|
||||
|
||||
it('按文件后缀分流解析 xlsx', () => {
|
||||
const filePath = resolve(process.cwd(), 'data/example0.xlsx');
|
||||
const buffer = readFileSync(filePath);
|
||||
const arrayBuffer = buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
|
||||
const table = parseTableByFileName('demo.xlsx', arrayBuffer);
|
||||
|
||||
expect(table.headers.length).toBeGreaterThan(1);
|
||||
expect(table.rows.length).toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it('直接解析 xlsx buffer', () => {
|
||||
const filePath = resolve(process.cwd(), 'data/example0.xlsx');
|
||||
const buffer = readFileSync(filePath);
|
||||
const arrayBuffer = buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
|
||||
const table = parseXlsxBuffer(arrayBuffer);
|
||||
|
||||
expect(table.headers.length).toBeGreaterThan(1);
|
||||
expect(table.rows.length).toBeGreaterThan(0);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user