checklist-mcp-server
Version:
An MCP server for hierarchical checklist management with HTTP streamable transport support.
92 lines (91 loc) • 3.38 kB
JavaScript
;
/**
* Test Helper Utilities
* Provides shared utilities for test files to ensure consistency
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.createUniqueIdGenerator = exports.generateMultipleTaskIds = exports.generateTaskId = void 0;
exports.createTestTasks = createTestTasks;
exports.createSimpleTask = createSimpleTask;
exports.createHierarchicalTask = createHierarchicalTask;
exports.createMultipleTasks = createMultipleTasks;
exports.generateTestSessionId = generateTestSessionId;
const taskIdGenerator_1 = require("../utils/taskIdGenerator");
Object.defineProperty(exports, "generateTaskId", { enumerable: true, get: function () { return taskIdGenerator_1.generateTaskId; } });
Object.defineProperty(exports, "generateMultipleTaskIds", { enumerable: true, get: function () { return taskIdGenerator_1.generateMultipleTaskIds; } });
Object.defineProperty(exports, "createUniqueIdGenerator", { enumerable: true, get: function () { return taskIdGenerator_1.createUniqueIdGenerator; } });
/**
* Interface for final task with generated IDs
*/
/**
* Creates test tasks with automatically generated valid task IDs
* @param tasks Array of test task definitions
* @returns Array of tasks with valid generated IDs
*/
function createTestTasks(tasks) {
const idGenerator = (0, taskIdGenerator_1.createUniqueIdGenerator)();
function processTask(task) {
const processedTask = {
taskId: task.taskId || idGenerator(),
description: task.description,
status: task.status || 'TODO'
};
if (task.children && task.children.length > 0) {
processedTask.children = task.children.map(processTask);
}
return processedTask;
}
return tasks.map(processTask);
}
/**
* Creates a simple test task with generated ID
* @param description Task description
* @param status Task status (defaults to TODO)
* @returns Task with generated ID
*/
function createSimpleTask(description, status = 'TODO') {
return {
taskId: (0, taskIdGenerator_1.generateTaskId)(),
description,
status
};
}
/**
* Creates a hierarchical test task structure
* @param rootDescription Root task description
* @param childDescriptions Array of child task descriptions
* @returns Hierarchical task structure with generated IDs
*/
function createHierarchicalTask(rootDescription, childDescriptions) {
const idGenerator = (0, taskIdGenerator_1.createUniqueIdGenerator)();
return {
taskId: idGenerator(),
description: rootDescription,
status: 'TODO',
children: childDescriptions.map(desc => ({
taskId: idGenerator(),
description: desc,
status: 'TODO'
}))
};
}
/**
* Creates multiple simple tasks with generated IDs
* @param descriptions Array of task descriptions
* @returns Array of tasks with generated IDs
*/
function createMultipleTasks(descriptions) {
const ids = (0, taskIdGenerator_1.generateMultipleTaskIds)(descriptions.length);
return descriptions.map((desc, index) => ({
taskId: ids[index],
description: desc,
status: 'TODO'
}));
}
/**
* Session ID generator for tests
*/
let sessionCounter = 0;
function generateTestSessionId(prefix = 'test-session') {
return `${prefix}-${++sessionCounter}-${Date.now()}`;
}