HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
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);
        });
    });
});