shift73k/assets_old/node_modules/@nodelib/fs.walk/out/index.spec.js

99 lines
4 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const assert = require("assert");
const fs = require("fs");
const rimraf = require("rimraf");
const _1 = require(".");
const entryFilter = (entry) => !entry.dirent.isDirectory();
function streamToPromise(stream) {
const entries = [];
return new Promise((resolve, reject) => {
stream.on('data', (entry) => entries.push(entry));
stream.once('error', reject);
stream.once('end', () => resolve(entries));
});
}
describe('Package', () => {
before(() => {
rimraf.sync('fixtures');
fs.mkdirSync('fixtures');
fs.writeFileSync('fixtures/file.txt', '');
fs.mkdirSync('fixtures/nested');
fs.writeFileSync('fixtures/nested/file.txt', '');
});
after(() => {
rimraf.sync('fixtures');
});
describe('.walk', () => {
it('should throw an error for non-exist directory', (done) => {
_1.walk('non-exist-directory', (error, entries) => {
assert.strictEqual(error.code, 'ENOENT');
assert.strictEqual(entries, undefined);
done();
});
});
it('should work without options or settings', (done) => {
_1.walk('fixtures', (error, entries) => {
assert.strictEqual(error, null);
assert.strictEqual(entries.length, 3);
done();
});
});
it('should work with options', (done) => {
_1.walk('fixtures', { entryFilter }, (error, entries) => {
assert.strictEqual(error, null);
assert.strictEqual(entries.length, 2);
done();
});
});
it('should work with settings', (done) => {
const settings = new _1.Settings({ entryFilter });
_1.walk('fixtures', settings, (error, entries) => {
assert.strictEqual(error, null);
assert.strictEqual(entries.length, 2);
done();
});
});
});
describe('.walkStream', () => {
it('should throw an error for non-exist directory', async () => {
const stream = _1.walkStream('non-exist-directory');
await assert.rejects(() => streamToPromise(stream), (error) => error.code === 'ENOENT');
});
it('should work without options or settings', async () => {
const stream = _1.walkStream('fixtures');
const actual = await streamToPromise(stream);
assert.strictEqual(actual.length, 3);
});
it('should work with options', async () => {
const stream = _1.walkStream('fixtures', { entryFilter });
const actual = await streamToPromise(stream);
assert.strictEqual(actual.length, 2);
});
it('should work with settings', async () => {
const settings = new _1.Settings({ entryFilter });
const stream = _1.walkStream('fixtures', settings);
const actual = await streamToPromise(stream);
assert.strictEqual(actual.length, 2);
});
});
describe('.walkSync', () => {
it('should throw an error for non-exist directory', () => {
const matcher = (error) => error.code === 'ENOENT';
assert.throws(() => _1.walkSync('non-exist-directory'), matcher);
});
it('should work without options or settings', () => {
const actual = _1.walkSync('fixtures');
assert.strictEqual(actual.length, 3);
});
it('should work with options', () => {
const actual = _1.walkSync('fixtures', { entryFilter });
assert.strictEqual(actual.length, 2);
});
it('should work with settings', () => {
const settings = new _1.Settings({ entryFilter });
const actual = _1.walkSync('fixtures', settings);
assert.strictEqual(actual.length, 2);
});
});
});