MCPcopy Create free account
hub / github.com/modelcontextprotocol/typescript-sdk / createMockTaskStore

Function createMockTaskStore

test/shared/protocol.test.ts:52–109  ·  view source on GitHub ↗
(options?: {
    onStatus?: (status: Task['status']) => void;
    onList?: () => void;
})

Source from the content-addressed store, hash-verified

50}
51
52function createMockTaskStore(options?: {
53 onStatus?: (status: Task['status']) => void;
54 onList?: () => void;
55}): TaskStore & { [K in keyof TaskStore]: MockInstance } {
56 const tasks: Record<string, Task & { result?: Result }> = {};
57 return {
58 createTask: vi.fn((taskParams: TaskCreationParams, _1: RequestId, _2: Request) => {
59 // Generate a unique task ID
60 const taskId = `test-task-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
61 const createdAt = new Date().toISOString();
62 const task = (tasks[taskId] = {
63 taskId,
64 status: 'working',
65 ttl: taskParams.ttl ?? null,
66 createdAt,
67 lastUpdatedAt: createdAt,
68 pollInterval: taskParams.pollInterval ?? 1000
69 });
70 options?.onStatus?.('working');
71 return Promise.resolve(task);
72 }),
73 getTask: vi.fn((taskId: string) => {
74 return Promise.resolve(tasks[taskId] ?? null);
75 }),
76 updateTaskStatus: vi.fn((taskId, status, statusMessage) => {
77 const task = tasks[taskId];
78 if (task) {
79 task.status = status;
80 task.statusMessage = statusMessage;
81 options?.onStatus?.(task.status);
82 }
83 return Promise.resolve();
84 }),
85 storeTaskResult: vi.fn((taskId: string, status: 'completed' | 'failed', result: Result) => {
86 const task = tasks[taskId];
87 if (task) {
88 task.status = status;
89 task.result = result;
90 options?.onStatus?.(status);
91 }
92 return Promise.resolve();
93 }),
94 getTaskResult: vi.fn((taskId: string) => {
95 const task = tasks[taskId];
96 if (task?.result) {
97 return Promise.resolve(task.result);
98 }
99 throw new Error('Task result not found');
100 }),
101 listTasks: vi.fn(() => {
102 const result = {
103 tasks: Object.values(tasks)
104 };
105 options?.onList?.();
106 return Promise.resolve(result);
107 })
108 };
109}

Callers 1

protocol.test.tsFile · 0.85

Calls 1

toStringMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…