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/providers/async.spec.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const assert = require("assert");
const stream_1 = require("stream");
const sinon = require("sinon");
const stream_2 = require("../readers/stream");
const settings_1 = require("../settings");
const tests = require("../tests");
const async_1 = require("./async");
class TestProvider extends async_1.default {
    constructor(options) {
        super(new settings_1.default(options));
        this._reader = sinon.createStubInstance(stream_2.default);
    }
    get reader() {
        return this._reader;
    }
}
function getProvider(options) {
    return new TestProvider(options);
}
function getEntries(provider, task, entry) {
    const reader = new stream_1.PassThrough({ objectMode: true });
    provider.reader.dynamic.returns(reader);
    provider.reader.static.returns(reader);
    reader.push(entry);
    reader.push(null);
    return provider.read(task);
}
describe('Providers → ProviderAsync', () => {
    describe('Constructor', () => {
        it('should create instance of class', () => {
            const provider = getProvider();
            assert.ok(provider instanceof async_1.default);
        });
    });
    describe('.read', () => {
        it('should return entries for dynamic task', async () => {
            const provider = getProvider();
            const task = tests.task.builder().base('.').positive('*').build();
            const entry = tests.entry.builder().path('root/file.txt').build();
            const expected = ['root/file.txt'];
            const actual = await getEntries(provider, task, entry);
            assert.strictEqual(provider.reader.dynamic.callCount, 1);
            assert.deepStrictEqual(actual, expected);
        });
        it('should return entries for static task', async () => {
            const provider = getProvider();
            const task = tests.task.builder().base('.').static().positive('*').build();
            const entry = tests.entry.builder().path('root/file.txt').build();
            const expected = ['root/file.txt'];
            const actual = await getEntries(provider, task, entry);
            assert.strictEqual(provider.reader.static.callCount, 1);
            assert.deepStrictEqual(actual, expected);
        });
        it('should throw error', async () => {
            const provider = getProvider();
            const task = tests.task.builder().base('.').positive('*').build();
            const stream = new stream_1.PassThrough({
                read() {
                    stream.emit('error', tests.errno.getEnoent());
                }
            });
            provider.reader.dynamic.returns(stream);
            try {
                await provider.read(task);
                throw new Error('Wow');
            }
            catch (error) {
                assert.strictEqual(error.code, 'ENOENT');
            }
        });
    });
});