Skip to content

Commit da1ae97

Browse files
Version bump
1 parent c41e323 commit da1ae97

File tree

4 files changed

+6
-181
lines changed

4 files changed

+6
-181
lines changed

index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { ListToolsRequestSchema, CallToolRequestSchema } from "@modelcontextprot
1010
const server = new Server(
1111
{
1212
name: "task-manager-server",
13-
version: "1.0.7"
13+
version: "1.0.8"
1414
},
1515
{
1616
capabilities: {

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "taskqueue-mcp",
3-
"version": "1.0.7",
3+
"version": "1.0.8",
44
"description": "Task Queue MCP Server",
55
"author": "Christopher C. Smith ([email protected])",
66
"main": "dist/index.js",

tests/integration/TaskManagertest.ts

Lines changed: 2 additions & 177 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { ALL_TOOLS } from '../../src/server/tools.js';
21
import { TaskManager } from '../../src/server/TaskManager.js';
32
import * as os from 'node:os';
43
import * as path from 'node:path';
@@ -29,181 +28,6 @@ describe('TaskManager Integration', () => {
2928
}
3029
});
3130

32-
it('should handle project tool actions', async () => {
33-
// Test project creation
34-
const createResult = await server.createProject(
35-
'Test project',
36-
[
37-
{
38-
title: 'Test task',
39-
description: 'Test description'
40-
}
41-
],
42-
'Test plan'
43-
) as {
44-
status: string;
45-
projectId: string;
46-
totalTasks: number;
47-
tasks: { id: string; title: string; description: string }[];
48-
message: string
49-
};
50-
51-
expect(createResult.status).toBe('planned');
52-
expect(createResult.projectId).toBeDefined();
53-
expect(createResult.totalTasks).toBe(1);
54-
55-
// Test project listing
56-
const listResult = await server.listProjects() as {
57-
status: string;
58-
message: string;
59-
projects: { projectId: string; initialPrompt: string; totalTasks: number; completedTasks: number; approvedTasks: number }[];
60-
};
61-
expect(listResult.status).toBe('projects_listed');
62-
expect(listResult.projects).toHaveLength(1);
63-
64-
// Test project deletion
65-
const projectId = createResult.projectId;
66-
const projectIndex = server["data"].projects.findIndex((p) => p.projectId === projectId);
67-
server["data"].projects.splice(projectIndex, 1);
68-
await server["saveTasks"]();
69-
70-
// Verify deletion
71-
const listAfterDelete = await server.listProjects() as {
72-
status: string;
73-
message: string;
74-
projects: { projectId: string; initialPrompt: string; totalTasks: number; completedTasks: number; approvedTasks: number }[];
75-
};
76-
expect(listAfterDelete.projects).toHaveLength(0);
77-
});
78-
79-
it('should handle task tool actions', async () => {
80-
// Create a project first
81-
const createResult = await server.createProject(
82-
'Test project',
83-
[
84-
{
85-
title: 'Test task',
86-
description: 'Test description'
87-
}
88-
],
89-
'Test plan'
90-
) as {
91-
status: string;
92-
projectId: string;
93-
totalTasks: number;
94-
tasks: { id: string; title: string; description: string }[];
95-
message: string
96-
};
97-
98-
const projectId = createResult.projectId;
99-
const taskId = createResult.tasks[0].id;
100-
101-
// Test task reading
102-
const readResult = await server.openTaskDetails(taskId);
103-
expect(readResult.status).toBe('task_details');
104-
if (readResult.status === 'task_details' && readResult.task) {
105-
expect(readResult.task.id).toBe(taskId);
106-
}
107-
108-
// Test task updating
109-
const updatedTask = await server.updateTask(projectId, taskId, {
110-
title: "Updated task",
111-
description: "Updated description"
112-
});
113-
expect(updatedTask.title).toBe("Updated task");
114-
expect(updatedTask.description).toBe("Updated description");
115-
expect(updatedTask.status).toBe("not started");
116-
117-
// Also update the status directly
118-
const task = server["data"].projects.find(p => p.projectId === projectId)?.tasks.find(t => t.id === taskId);
119-
if (task) {
120-
task.status = 'in progress';
121-
await server["saveTasks"]();
122-
}
123-
124-
// Test task deletion
125-
const deleteResult = await server.deleteTask(
126-
projectId,
127-
taskId
128-
) as {
129-
status: string;
130-
message: string;
131-
};
132-
expect(deleteResult.status).toBe('task_deleted');
133-
134-
// Verify deletion
135-
const readAfterDelete = await server.openTaskDetails(taskId) as {
136-
status: string;
137-
message?: string;
138-
};
139-
expect(readAfterDelete.status).toBe('task_not_found');
140-
});
141-
142-
it('should get the next task in a project', async () => {
143-
// Create a project with multiple tasks
144-
const createResult = await server.createProject(
145-
'Test project with multiple tasks',
146-
[
147-
{
148-
title: 'Task 1',
149-
description: 'Description 1'
150-
},
151-
{
152-
title: 'Task 2',
153-
description: 'Description 2'
154-
}
155-
]
156-
) as {
157-
projectId: string;
158-
tasks: { id: string }[];
159-
};
160-
161-
const projectId = createResult.projectId;
162-
163-
// Get the next task
164-
const nextTaskResult = await server.getNextTask(projectId);
165-
166-
expect(nextTaskResult.status).toBe('next_task');
167-
if (nextTaskResult.status === 'next_task' && nextTaskResult.task) {
168-
expect(nextTaskResult.task.id).toBe(createResult.tasks[0].id);
169-
}
170-
});
171-
172-
it('should approve a completed task', async () => {
173-
// Create a project with a task
174-
const createResult = await server.createProject(
175-
'Test project for approval',
176-
[
177-
{
178-
title: 'Task to approve',
179-
description: 'Description of task to approve'
180-
}
181-
]
182-
) as {
183-
projectId: string;
184-
tasks: { id: string }[];
185-
};
186-
187-
const projectId = createResult.projectId;
188-
const taskId = createResult.tasks[0].id;
189-
190-
// Mark the task as done
191-
const task = server["data"].projects.find(p => p.projectId === projectId)?.tasks.find(t => t.id === taskId);
192-
if (task) {
193-
task.status = 'done';
194-
task.completedDetails = 'Completed task details';
195-
await server["saveTasks"]();
196-
}
197-
198-
// Approve the task
199-
const approveResult = await server.approveTaskCompletion(projectId, taskId);
200-
201-
expect(approveResult.status).toBe('task_approved');
202-
if (approveResult.status === 'task_approved' && approveResult.task) {
203-
expect(approveResult.task.approved).toBe(true);
204-
}
205-
});
206-
20731
it('should handle file persistence correctly', async () => {
20832
// Create initial data
20933
const project = await server.createProject("Persistent Project", [
@@ -587,4 +411,5 @@ describe('TaskManager Integration', () => {
587411
const projectState = await server1.listProjects("completed");
588412
expect(projectState.projects.find(p => p.projectId === project.projectId)).toBeDefined();
589413
});
590-
});
414+
});
415+

0 commit comments

Comments
 (0)