File: //usr/share/nodejs/fast-glob/out/managers/tasks.spec.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const assert = require("assert");
const settings_1 = require("../settings");
const tests = require("../tests");
const manager = require("./tasks");
describe('Managers → Task', () => {
describe('.generate', () => {
it('should return task with negative patterns from «ignore» option', () => {
const settings = new settings_1.default({ ignore: ['*.txt'] });
const expected = [
tests.task.builder().base('a').positive('a/*').negative('*.md').negative('*.txt').build()
];
const actual = manager.generate(['a/*', '!*.md'], settings);
assert.deepStrictEqual(actual, expected);
});
it('should return static and dynamic tasks', () => {
const settings = new settings_1.default({ ignore: ['*.txt'] });
const expected = [
tests.task.builder().base('a').static().positive('a/file.json').negative('b/*.md').negative('*.txt').build(),
tests.task.builder().base('b').positive('b/*').negative('b/*.md').negative('*.txt').build()
];
const actual = manager.generate(['a/file.json', 'b/*', '!b/*.md'], settings);
assert.deepStrictEqual(actual, expected);
});
it('should return only dynamic tasks when the `caseSensitiveMatch` option is enabled', () => {
const settings = new settings_1.default({ caseSensitiveMatch: false });
const expected = [
tests.task.builder().base('a').positive('a/file.json').negative('b/*.md').build(),
tests.task.builder().base('b').positive('b/*').negative('b/*.md').build()
];
const actual = manager.generate(['a/file.json', 'b/*', '!b/*.md'], settings);
assert.deepStrictEqual(actual, expected);
});
});
describe('.convertPatternsToTasks', () => {
it('should return one task when positive patterns have a global pattern', () => {
const expected = [
tests.task.builder().base('.').positive('*').negative('*.md').build()
];
const actual = manager.convertPatternsToTasks(['*'], ['*.md'], /* dynamic */ true);
assert.deepStrictEqual(actual, expected);
});
it('should return two tasks', () => {
const expected = [
tests.task.builder().base('a').positive('a/*').negative('b/*.md').build(),
tests.task.builder().base('b').positive('b/*').negative('b/*.md').build()
];
const actual = manager.convertPatternsToTasks(['a/*', 'b/*'], ['b/*.md'], /* dynamic */ true);
assert.deepStrictEqual(actual, expected);
});
});
describe('.getPositivePatterns', () => {
it('should return only positive patterns', () => {
const expected = ['*'];
const actual = manager.getPositivePatterns(['*', '!*.md']);
assert.deepStrictEqual(actual, expected);
});
});
describe('.getNegativePatternsAsPositive', () => {
it('should return negative patterns as positive', () => {
const expected = ['*.md'];
const actual = manager.getNegativePatternsAsPositive(['*', '!*.md'], []);
assert.deepStrictEqual(actual, expected);
});
it('should return negative patterns as positive with patterns from ignore option', () => {
const expected = ['*.md', '*.txt', '*.json'];
const actual = manager.getNegativePatternsAsPositive(['*', '!*.md'], ['*.txt', '!*.json']);
assert.deepStrictEqual(actual, expected);
});
});
describe('.groupPatternsByBaseDirectory', () => {
it('should return empty object', () => {
const expected = {};
const actual = manager.groupPatternsByBaseDirectory([]);
assert.deepStrictEqual(actual, expected);
});
it('should return grouped patterns', () => {
const expected = {
'.': ['*'],
a: ['a/*']
};
const actual = manager.groupPatternsByBaseDirectory(['*', 'a/*']);
assert.deepStrictEqual(actual, expected);
});
});
describe('.convertPatternGroupsToTasks', () => {
it('should return two tasks', () => {
const expected = [
tests.task.builder().base('a').positive('a/*').negative('b/*.md').build(),
tests.task.builder().base('b').positive('b/*').negative('b/*.md').build()
];
const actual = manager.convertPatternGroupsToTasks({ a: ['a/*'], b: ['b/*'] }, ['b/*.md'], /* dynamic */ true);
assert.deepStrictEqual(actual, expected);
});
});
describe('.convertPatternGroupToTask', () => {
it('should return created dynamic task', () => {
const expected = tests.task.builder().base('.').positive('*').negative('*.md').build();
const actual = manager.convertPatternGroupToTask('.', ['*'], ['*.md'], /* dynamic */ true);
assert.deepStrictEqual(actual, expected);
});
it('should return created static task', () => {
const expected = tests.task.builder().base('.').static().positive('.gitignore').negative('.git*').build();
const actual = manager.convertPatternGroupToTask('.', ['.gitignore'], ['.git*'], /* dynamic */ false);
assert.deepStrictEqual(actual, expected);
});
it('should normalize the base path', () => {
const expected = tests.task.builder().base('root/directory').build();
const actual = manager.convertPatternGroupToTask('root/directory', [], [], /* dynamic */ true);
assert.deepStrictEqual(actual, expected);
});
});
});