@xingqitian/each-dir-tree
Version:
遍历指定的目录树
66 lines (54 loc) • 2.27 kB
JavaScript
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);
});
});