Skip to main content
Glama

Superglue MCP

Official
by superglue-ai
queue.test.ts1.54 kB
import { describe, expect, it } from 'vitest'; import { Queue } from './queue.js'; describe('Queue', () => { it('should process jobs in order', async () => { const queue = new Queue('test', { orgId: '' }); const results: number[] = []; const task1 = async () => { await new Promise(resolve => setTimeout(resolve, 10)); results.push(1); }; const task2 = async () => { results.push(2); }; queue.enqueue('1', task1); queue.enqueue('2', task2); // Wait for queue to process await new Promise(resolve => setTimeout(resolve, 50)); expect(results).toEqual([1, 2]); }); it('should not add duplicate jobs', () => { const queue = new Queue('test', { orgId: '' }); const task = async () => { await new Promise(resolve => setTimeout(resolve, 100000)); }; queue.enqueue('1', task); queue.enqueue('1', task); // @ts-ignore - accessing private property for testing expect(queue.queue.length).toBe(0); }); it('should handle job errors without stopping the queue', async () => { const queue = new Queue('test', { orgId: '' }); const results: string[] = []; const failingTask = async () => { throw new Error('Task failed'); }; const successTask = async () => { results.push('success'); }; queue.enqueue('1', failingTask); queue.enqueue('2', successTask); // Wait for queue to process await new Promise(resolve => setTimeout(resolve, 50)); expect(results).toEqual(['success']); }); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/superglue-ai/superglue'

If you have feedback or need assistance with the MCP directory API, please join our Discord server