ai-functions
Version:
A powerful TypeScript library for building AI-powered applications with template literals and structured outputs
52 lines • 1.87 kB
JavaScript
import { describe, expect, it } from 'vitest';
import { createQueue, queueGenerator } from './manager';
describe('Queue Manager', () => {
describe('createQueue', () => {
it('should create a queue with specified concurrency', () => {
const options = {
concurrency: 2
};
const queue = createQueue(options);
expect(queue).toBeDefined();
expect(queue?.concurrency).toBe(2);
});
it('should return undefined when no concurrency specified', () => {
const options = {};
const queue = createQueue(options);
expect(queue).toBeUndefined();
});
});
describe('queueGenerator', () => {
it('should process items through queue', async () => {
const options = {
concurrency: 2
};
const queue = createQueue(options);
const items = ['a', 'b', 'c'];
const processed = [];
async function* generator() {
for (const item of items) {
yield item;
}
}
for await (const item of queueGenerator(generator, queue)) {
processed.push(item);
}
expect(processed).toEqual(items);
});
it('should process items directly when no queue provided', async () => {
const items = ['a', 'b', 'c'];
const processed = [];
async function* generator() {
for (const item of items) {
yield item;
}
}
for await (const item of queueGenerator(generator, undefined)) {
processed.push(item);
}
expect(processed).toEqual(items);
});
});
});
//# sourceMappingURL=manager.test.js.map