File: //usr/share/nodejs/fast-glob/out/providers/provider.spec.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getProvider = exports.TestProvider = void 0;
const assert = require("assert");
const path = require("path");
const settings_1 = require("../settings");
const tests = require("../tests");
const provider_1 = require("./provider");
class TestProvider extends provider_1.default {
read() {
return [];
}
getRootDirectory(task) {
return this._getRootDirectory(task);
}
getReaderOptions(task) {
return this._getReaderOptions(task);
}
getMicromatchOptions() {
return this._getMicromatchOptions();
}
}
exports.TestProvider = TestProvider;
function getProvider(options) {
const settings = new settings_1.default(options);
return new TestProvider(settings);
}
exports.getProvider = getProvider;
describe('Providers → Provider', () => {
describe('Constructor', () => {
it('should create instance of class', () => {
const provider = getProvider();
assert.ok(provider instanceof provider_1.default);
});
});
describe('.getRootDirectory', () => {
it('should return root directory for reader with global base (.)', () => {
const provider = getProvider();
const task = tests.task.builder().base('.').build();
const expected = process.cwd();
const actual = provider.getRootDirectory(task);
assert.strictEqual(actual, expected);
});
it('should return root directory for reader with non-global base (fixtures)', () => {
const provider = getProvider();
const task = tests.task.builder().base('root').build();
const expected = path.join(process.cwd(), 'root');
const actual = provider.getRootDirectory(task);
assert.strictEqual(actual, expected);
});
});
describe('.getReaderOptions', () => {
it('should return options for reader with global base (.)', () => {
const settings = new settings_1.default();
const provider = getProvider(settings);
const task = tests.task.builder().base('.').positive('*').build();
const actual = provider.getReaderOptions(task);
assert.strictEqual(actual.basePath, '');
assert.strictEqual(actual.concurrency, settings.concurrency);
assert.strictEqual(typeof actual.deepFilter, 'function');
assert.strictEqual(typeof actual.entryFilter, 'function');
assert.strictEqual(typeof actual.errorFilter, 'function');
assert.ok(actual.followSymbolicLinks);
assert.strictEqual(typeof actual.fs, 'object');
assert.ok(!actual.stats);
assert.ok(actual.throwErrorOnBrokenSymbolicLink === false);
assert.strictEqual(typeof actual.transform, 'function');
});
it('should return options for reader with non-global base', () => {
const provider = getProvider();
const task = tests.task.builder().base('root').positive('*').build();
const actual = provider.getReaderOptions(task);
assert.strictEqual(actual.basePath, 'root');
});
});
describe('.getMicromatchOptions', () => {
it('should return options for micromatch', () => {
const provider = getProvider();
const expected = {
dot: false,
matchBase: false,
nobrace: false,
nocase: false,
noext: false,
noglobstar: false,
posix: true,
strictSlashes: false
};
const actual = provider.getMicromatchOptions();
assert.deepStrictEqual(actual, expected);
});
});
});