UNPKG

@xingqitian/each-dir-tree

Version:

遍历指定的目录树

66 lines (54 loc) 2.27 kB
const assert = require('assert'); const { dirFileList } = require("../src/each-dir-tree"); const path = require("path"); const fs = require("fs"); const generateFilePaths = (files) => files.map(file => path.join(__dirname, file)); describe('src/each-dir-tree.js/dirFileList', function () { // 创建临时目录和文件用于测试 before(() => { fs.mkdirSync(path.resolve(__dirname, './target')); fs.writeFileSync(path.resolve(__dirname, './target/1-1.txt'), '1-1.txt'); fs.writeFileSync(path.resolve(__dirname, './target/1-3.txt'), '1-3.txt'); fs.mkdirSync(path.resolve(__dirname, './target/1-2')); fs.writeFileSync(path.resolve(__dirname, './target/1-2/1-2-1.txt'), '1-2-1.txt'); }); // 删除临时目录和文件 after(() => { fs.unlinkSync(path.resolve(__dirname, './target/1-2/1-2-1.txt')); fs.unlinkSync(path.resolve(__dirname, './target/1-1.txt')); fs.unlinkSync(path.resolve(__dirname, './target/1-3.txt')); fs.rmdirSync(path.resolve(__dirname, './target/1-2')); fs.rmdirSync(path.resolve(__dirname, './target')); }); it('传入正确的文件夹地址', function () { const fileList = dirFileList(path.join(__dirname, 'target')); const result = generateFilePaths([ 'target/1-1.txt', 'target/1-2/1-2-1.txt', 'target/1-3.txt', ]); assert.deepStrictEqual(fileList.sort(), result.sort()); }); it('忽略文件', function () { const fileList = dirFileList(path.join(__dirname, 'target'), ['1-3.txt']); const result = generateFilePaths([ 'target/1-1.txt', 'target/1-2/1-2-1.txt', ]); assert.deepStrictEqual(fileList.sort(), result.sort()); }); it('忽略文件夹', function () { const fileList = dirFileList(path.join(__dirname, 'target'), ['1-2']); const result = generateFilePaths([ 'target/1-1.txt', 'target/1-3.txt', ]); assert.deepStrictEqual(fileList.sort(), result.sort()); }); it('错误的文件夹地址', function () { assert.throws(() => dirFileList(path.join(__dirname, 'target1'), ['1-2']), Error); }); it('不传入文件夹地址', function () { assert.throws(() => dirFileList(), Error); }); });