import { expect } from 'chai'; import { rm } from 'fs/promises'; import { basename } from 'path'; import { handleFiles } from '../../src/handle-file'; import { readCsvFile } from '../../src/utils/csv'; import { createFile } from '../../src/utils/file'; import { getTestPath, randomString } from '../utils/utils'; describe('handle-file/index', () => { const inputFilePath: string[] = []; const contents: string[][] = []; let outputFilePath = ''; beforeEach(async () => { outputFilePath = getTestPath('files-info.csv'); ['a', 'b', 'c'].forEach((item, index) => { inputFilePath[index] = getTestPath(`${randomString()}.log`); contents.push([]); for (let i = 0; i < 20; i += 1) { contents[index].push(`${item} ${i}`); } }); await createFile(inputFilePath[0], contents[0]); await createFile(inputFilePath[1], contents[1]); await createFile(inputFilePath[2], contents[2]); }); afterEach(async () => { await rm(inputFilePath[0]); await rm(inputFilePath[1]); await rm(inputFilePath[2]); await rm(outputFilePath); }); it('输出文件信息到目录', async () => { await handleFiles({ inputDir: getTestPath(), outputFilePath, }); const filesInfo = await readCsvFile(outputFilePath); expect(filesInfo).to.have.deep.members([ { name: basename(inputFilePath[0]), fullPath: inputFilePath[0], size: '89.00 B', rowCount: '19', head: 'a 0\na 1\na 2', middle: 'a 7\na 8\na 9', tail: 'a 17\na 18\na 19', }, { name: basename(inputFilePath[1]), fullPath: inputFilePath[1], size: '89.00 B', rowCount: '19', head: 'b 0\nb 1\nb 2', middle: 'b 7\nb 8\nb 9', tail: 'b 17\nb 18\nb 19', }, { name: basename(inputFilePath[2]), fullPath: inputFilePath[2], size: '89.00 B', rowCount: '19', head: 'c 0\nc 1\nc 2', middle: 'c 7\nc 8\nc 9', tail: 'c 17\nc 18\nc 19', }, ]); }); });