@langadventurellc/task-trellis-mcp 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -212
- package/dist/__tests__/e2e/autoPrune.e2e.test.d.ts +2 -0
- package/dist/__tests__/e2e/autoPrune.e2e.test.d.ts.map +1 -0
- package/dist/__tests__/e2e/autoPrune.e2e.test.js +533 -0
- package/dist/__tests__/e2e/autoPrune.e2e.test.js.map +1 -0
- package/dist/__tests__/e2e/configuration/activation.e2e.test.js +6 -6
- package/dist/__tests__/e2e/configuration/activation.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/configuration/commandLineArgs.e2e.test.js +55 -6
- package/dist/__tests__/e2e/configuration/commandLineArgs.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/configuration/directorySetup.e2e.test.js +19 -19
- package/dist/__tests__/e2e/configuration/directorySetup.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/configuration/invalidConfig.e2e.test.js +9 -9
- package/dist/__tests__/e2e/configuration/invalidConfig.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/configuration/preActivation.e2e.test.js +15 -15
- package/dist/__tests__/e2e/configuration/preActivation.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/createObject.e2e.test.js +34 -34
- package/dist/__tests__/e2e/crud/createObject.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/deleteObject.e2e.test.js +19 -19
- package/dist/__tests__/e2e/crud/deleteObject.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/fileValidation.e2e.test.js +32 -32
- package/dist/__tests__/e2e/crud/fileValidation.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/getObject.e2e.test.js +143 -22
- package/dist/__tests__/e2e/crud/getObject.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/listObjects.e2e.test.js +561 -42
- package/dist/__tests__/e2e/crud/listObjects.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/updateObject.e2e.test.js +497 -25
- package/dist/__tests__/e2e/crud/updateObject.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.d.ts +2 -0
- package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.d.ts.map +1 -0
- package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.js +319 -0
- package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.js.map +1 -0
- package/dist/__tests__/e2e/infrastructure/client.e2e.test.js +4 -4
- package/dist/__tests__/e2e/infrastructure/client.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/infrastructure/server.e2e.test.js +6 -6
- package/dist/__tests__/e2e/infrastructure/server.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/utils/extractObjectIds.d.ts +1 -1
- package/dist/__tests__/e2e/utils/extractObjectIds.js +1 -1
- package/dist/__tests__/e2e/utils/mcpTestClient.d.ts.map +1 -1
- package/dist/__tests__/e2e/utils/mcpTestClient.js +3 -2
- package/dist/__tests__/e2e/utils/mcpTestClient.js.map +1 -1
- package/dist/__tests__/e2e/utils/parseListObjectsResponse.d.ts +1 -1
- package/dist/__tests__/e2e/utils/parseListObjectsResponse.js +1 -1
- package/dist/__tests__/e2e/utils/parseUpdateObjectResponse.d.ts +1 -1
- package/dist/__tests__/e2e/utils/parseUpdateObjectResponse.js +1 -1
- package/dist/__tests__/e2e/workflow/appendLog.e2e.test.js +4 -4
- package/dist/__tests__/e2e/workflow/appendLog.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js +15 -15
- package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js +44 -0
- package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js +4 -4
- package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/prerequisites.e2e.test.js +43 -43
- package/dist/__tests__/e2e/workflow/prerequisites.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js +19 -19
- package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js.map +1 -1
- package/dist/__tests__/serverStartup.test.d.ts +2 -0
- package/dist/__tests__/serverStartup.test.d.ts.map +1 -0
- package/dist/__tests__/serverStartup.test.js +171 -0
- package/dist/__tests__/serverStartup.test.js.map +1 -0
- package/dist/configuration/ServerConfig.d.ts +2 -1
- package/dist/configuration/ServerConfig.d.ts.map +1 -1
- package/dist/repositories/Repository.d.ts +2 -1
- package/dist/repositories/Repository.d.ts.map +1 -1
- package/dist/repositories/local/LocalRepository.d.ts +2 -1
- package/dist/repositories/local/LocalRepository.d.ts.map +1 -1
- package/dist/repositories/local/LocalRepository.js +4 -0
- package/dist/repositories/local/LocalRepository.js.map +1 -1
- package/dist/repositories/local/__tests__/getChildrenOf.test.d.ts +2 -0
- package/dist/repositories/local/__tests__/getChildrenOf.test.d.ts.map +1 -0
- package/dist/repositories/local/__tests__/getChildrenOf.test.js +306 -0
- package/dist/repositories/local/__tests__/getChildrenOf.test.js.map +1 -0
- package/dist/repositories/local/__tests__/getObjects.test.js +309 -0
- package/dist/repositories/local/__tests__/getObjects.test.js.map +1 -1
- package/dist/repositories/local/deleteObjectById.d.ts.map +1 -1
- package/dist/repositories/local/deleteObjectById.js +2 -0
- package/dist/repositories/local/deleteObjectById.js.map +1 -1
- package/dist/repositories/local/getChildrenOf.d.ts +11 -0
- package/dist/repositories/local/getChildrenOf.d.ts.map +1 -0
- package/dist/repositories/local/getChildrenOf.js +73 -0
- package/dist/repositories/local/getChildrenOf.js.map +1 -0
- package/dist/repositories/local/getObjects.d.ts +1 -1
- package/dist/repositories/local/getObjects.d.ts.map +1 -1
- package/dist/repositories/local/getObjects.js +25 -6
- package/dist/repositories/local/getObjects.js.map +1 -1
- package/dist/server.js +39 -15
- package/dist/server.js.map +1 -1
- package/dist/services/TaskTrellisService.d.ts +4 -13
- package/dist/services/TaskTrellisService.d.ts.map +1 -1
- package/dist/services/local/LocalTaskTrellisService.d.ts +3 -9
- package/dist/services/local/LocalTaskTrellisService.d.ts.map +1 -1
- package/dist/services/local/LocalTaskTrellisService.js +4 -8
- package/dist/services/local/LocalTaskTrellisService.js.map +1 -1
- package/dist/services/local/__tests__/appendModifiedFiles.test.js +1 -0
- package/dist/services/local/__tests__/appendModifiedFiles.test.js.map +1 -1
- package/dist/services/local/__tests__/appendObjectLog.test.js +1 -0
- package/dist/services/local/__tests__/appendObjectLog.test.js.map +1 -1
- package/dist/services/local/__tests__/claimTask.test.js +127 -131
- package/dist/services/local/__tests__/claimTask.test.js.map +1 -1
- package/dist/services/local/__tests__/completeTask.test.js +30 -28
- package/dist/services/local/__tests__/completeTask.test.js.map +1 -1
- package/dist/services/local/__tests__/createObject.test.js +1 -0
- package/dist/services/local/__tests__/createObject.test.js.map +1 -1
- package/dist/services/local/__tests__/listObjects.test.js +135 -10
- package/dist/services/local/__tests__/listObjects.test.js.map +1 -1
- package/dist/services/local/__tests__/pruneClosed.test.js +446 -186
- package/dist/services/local/__tests__/pruneClosed.test.js.map +1 -1
- package/dist/services/local/__tests__/updateObject.test.js +234 -27
- package/dist/services/local/__tests__/updateObject.test.js.map +1 -1
- package/dist/services/local/claimTask.d.ts.map +1 -1
- package/dist/services/local/claimTask.js +25 -34
- package/dist/services/local/claimTask.js.map +1 -1
- package/dist/services/local/completeTask.d.ts +1 -1
- package/dist/services/local/completeTask.d.ts.map +1 -1
- package/dist/services/local/completeTask.js +4 -40
- package/dist/services/local/completeTask.js.map +1 -1
- package/dist/services/local/listObjects.d.ts +1 -1
- package/dist/services/local/listObjects.d.ts.map +1 -1
- package/dist/services/local/listObjects.js +10 -1
- package/dist/services/local/listObjects.js.map +1 -1
- package/dist/services/local/pruneClosed.d.ts.map +1 -1
- package/dist/services/local/pruneClosed.js +63 -6
- package/dist/services/local/pruneClosed.js.map +1 -1
- package/dist/services/local/updateObject.d.ts +2 -1
- package/dist/services/local/updateObject.d.ts.map +1 -1
- package/dist/services/local/updateObject.js +28 -1
- package/dist/services/local/updateObject.js.map +1 -1
- package/dist/tools/__tests__/appendModifiedFilesTool.test.js +1 -0
- package/dist/tools/__tests__/appendModifiedFilesTool.test.js.map +1 -1
- package/dist/tools/__tests__/appendObjectLogTool.test.js +1 -0
- package/dist/tools/__tests__/appendObjectLogTool.test.js.map +1 -1
- package/dist/tools/__tests__/claimTaskTool.test.js +1 -1
- package/dist/tools/__tests__/claimTaskTool.test.js.map +1 -1
- package/dist/tools/__tests__/completeTaskTool.test.js +23 -16
- package/dist/tools/__tests__/completeTaskTool.test.js.map +1 -1
- package/dist/tools/__tests__/createObjectTool.test.js +1 -0
- package/dist/tools/__tests__/createObjectTool.test.js.map +1 -1
- package/dist/tools/__tests__/deleteObjectTool.test.js +1 -0
- package/dist/tools/__tests__/deleteObjectTool.test.js.map +1 -1
- package/dist/tools/__tests__/getObjectTool.test.js +1 -0
- package/dist/tools/__tests__/getObjectTool.test.js.map +1 -1
- package/dist/tools/__tests__/listObjectsTool.test.js +160 -1
- package/dist/tools/__tests__/listObjectsTool.test.js.map +1 -1
- package/dist/tools/__tests__/updateObjectTool.test.js +39 -10
- package/dist/tools/__tests__/updateObjectTool.test.js.map +1 -1
- package/dist/tools/appendModifiedFilesTool.d.ts +2 -2
- package/dist/tools/appendModifiedFilesTool.js +4 -4
- package/dist/tools/appendModifiedFilesTool.js.map +1 -1
- package/dist/tools/appendObjectLogTool.d.ts +3 -3
- package/dist/tools/appendObjectLogTool.js +4 -4
- package/dist/tools/appendObjectLogTool.js.map +1 -1
- package/dist/tools/completeTaskTool.d.ts +1 -1
- package/dist/tools/completeTaskTool.d.ts.map +1 -1
- package/dist/tools/completeTaskTool.js +1 -1
- package/dist/tools/completeTaskTool.js.map +1 -1
- package/dist/tools/createObjectTool.d.ts +8 -8
- package/dist/tools/createObjectTool.js +13 -13
- package/dist/tools/createObjectTool.js.map +1 -1
- package/dist/tools/deleteObjectTool.d.ts +3 -3
- package/dist/tools/deleteObjectTool.js +12 -12
- package/dist/tools/deleteObjectTool.js.map +1 -1
- package/dist/tools/getObjectTool.d.ts +3 -3
- package/dist/tools/getObjectTool.d.ts.map +1 -1
- package/dist/tools/getObjectTool.js +12 -7
- package/dist/tools/getObjectTool.js.map +1 -1
- package/dist/tools/index.d.ts +7 -9
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +22 -28
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/listObjectsTool.d.ts +20 -11
- package/dist/tools/listObjectsTool.d.ts.map +1 -1
- package/dist/tools/listObjectsTool.js +112 -40
- package/dist/tools/listObjectsTool.js.map +1 -1
- package/dist/tools/updateObjectTool.d.ts +12 -7
- package/dist/tools/updateObjectTool.d.ts.map +1 -1
- package/dist/tools/updateObjectTool.js +20 -14
- package/dist/tools/updateObjectTool.js.map +1 -1
- package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.d.ts +2 -0
- package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.d.ts.map +1 -0
- package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.js +206 -0
- package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.js.map +1 -0
- package/dist/utils/__tests__/checkPrerequisitesComplete.test.js +5 -0
- package/dist/utils/__tests__/checkPrerequisitesComplete.test.js.map +1 -1
- package/dist/utils/__tests__/filterUnavailableObjects.test.js +51 -25
- package/dist/utils/__tests__/filterUnavailableObjects.test.js.map +1 -1
- package/dist/utils/__tests__/isRequiredForOtherObjects.test.js +5 -0
- package/dist/utils/__tests__/isRequiredForOtherObjects.test.js.map +1 -1
- package/dist/utils/__tests__/updateParentHierarchy.test.d.ts +2 -0
- package/dist/utils/__tests__/updateParentHierarchy.test.d.ts.map +1 -0
- package/dist/utils/__tests__/updateParentHierarchy.test.js +137 -0
- package/dist/utils/__tests__/updateParentHierarchy.test.js.map +1 -0
- package/dist/utils/autoCompleteParentHierarchy.d.ts +11 -0
- package/dist/utils/autoCompleteParentHierarchy.d.ts.map +1 -0
- package/dist/utils/autoCompleteParentHierarchy.js +49 -0
- package/dist/utils/autoCompleteParentHierarchy.js.map +1 -0
- package/dist/utils/checkHierarchicalPrerequisitesComplete.d.ts +14 -0
- package/dist/utils/checkHierarchicalPrerequisitesComplete.d.ts.map +1 -0
- package/dist/utils/checkHierarchicalPrerequisitesComplete.js +47 -0
- package/dist/utils/checkHierarchicalPrerequisitesComplete.js.map +1 -0
- package/dist/utils/filterUnavailableObjects.d.ts +6 -4
- package/dist/utils/filterUnavailableObjects.d.ts.map +1 -1
- package/dist/utils/filterUnavailableObjects.js +16 -22
- package/dist/utils/filterUnavailableObjects.js.map +1 -1
- package/dist/utils/index.d.ts +3 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +7 -3
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/updateParentHierarchy.d.ts +11 -0
- package/dist/utils/updateParentHierarchy.d.ts.map +1 -0
- package/dist/utils/updateParentHierarchy.js +40 -0
- package/dist/utils/updateParentHierarchy.js.map +1 -0
- package/dist/validation/__tests__/validateObjectCreation.test.js +1 -0
- package/dist/validation/__tests__/validateObjectCreation.test.js.map +1 -1
- package/dist/validation/__tests__/validateParentExists.test.js +1 -0
- package/dist/validation/__tests__/validateParentExists.test.js.map +1 -1
- package/dist/validation/__tests__/validateStatusTransition.test.js +1 -0
- package/dist/validation/__tests__/validateStatusTransition.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.d.ts +0 -2
- package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.d.ts.map +0 -1
- package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.js +0 -693
- package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.js.map +0 -1
- package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.d.ts +0 -2
- package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.d.ts.map +0 -1
- package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.js +0 -352
- package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.js.map +0 -1
- package/dist/services/local/__tests__/replaceObjectBodyRegex.test.d.ts +0 -2
- package/dist/services/local/__tests__/replaceObjectBodyRegex.test.d.ts.map +0 -1
- package/dist/services/local/__tests__/replaceObjectBodyRegex.test.js +0 -283
- package/dist/services/local/__tests__/replaceObjectBodyRegex.test.js.map +0 -1
- package/dist/services/local/replaceObjectBodyRegex.d.ts +0 -8
- package/dist/services/local/replaceObjectBodyRegex.d.ts.map +0 -1
- package/dist/services/local/replaceObjectBodyRegex.js +0 -85
- package/dist/services/local/replaceObjectBodyRegex.js.map +0 -1
- package/dist/tools/__tests__/pruneClosedTool.test.d.ts +0 -2
- package/dist/tools/__tests__/pruneClosedTool.test.d.ts.map +0 -1
- package/dist/tools/__tests__/pruneClosedTool.test.js +0 -112
- package/dist/tools/__tests__/pruneClosedTool.test.js.map +0 -1
- package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.d.ts +0 -2
- package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.d.ts.map +0 -1
- package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js +0 -89
- package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js.map +0 -1
- package/dist/tools/pruneClosedTool.d.ts +0 -27
- package/dist/tools/pruneClosedTool.d.ts.map +0 -1
- package/dist/tools/pruneClosedTool.js +0 -57
- package/dist/tools/pruneClosedTool.js.map +0 -1
- package/dist/tools/replaceObjectBodyRegexTool.d.ts +0 -36
- package/dist/tools/replaceObjectBodyRegexTool.d.ts.map +0 -1
- package/dist/tools/replaceObjectBodyRegexTool.js +0 -67
- package/dist/tools/replaceObjectBodyRegexTool.js.map +0 -1
- package/dist/utils/ReplaceStringOptions.d.ts +0 -12
- package/dist/utils/ReplaceStringOptions.d.ts.map +0 -1
- package/dist/utils/ReplaceStringOptions.js +0 -3
- package/dist/utils/ReplaceStringOptions.js.map +0 -1
- package/dist/utils/__tests__/replaceStringWithRegex.test.d.ts +0 -2
- package/dist/utils/__tests__/replaceStringWithRegex.test.d.ts.map +0 -1
- package/dist/utils/__tests__/replaceStringWithRegex.test.js +0 -281
- package/dist/utils/__tests__/replaceStringWithRegex.test.js.map +0 -1
- package/dist/utils/replaceStringWithRegex.d.ts +0 -45
- package/dist/utils/replaceStringWithRegex.d.ts.map +0 -1
- package/dist/utils/replaceStringWithRegex.js +0 -91
- package/dist/utils/replaceStringWithRegex.js.map +0 -1
|
@@ -0,0 +1,533 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const index_js_1 = require("@modelcontextprotocol/sdk/client/index.js");
|
|
4
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/client/stdio.js");
|
|
5
|
+
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
describe("E2E Auto-Prune Feature", () => {
|
|
8
|
+
let testEnv;
|
|
9
|
+
let client = null;
|
|
10
|
+
let transport = null;
|
|
11
|
+
beforeEach(() => {
|
|
12
|
+
testEnv = new utils_1.TestEnvironment();
|
|
13
|
+
testEnv.setup();
|
|
14
|
+
});
|
|
15
|
+
afterEach(async () => {
|
|
16
|
+
if (client) {
|
|
17
|
+
await client.close();
|
|
18
|
+
client = null;
|
|
19
|
+
}
|
|
20
|
+
if (transport) {
|
|
21
|
+
await transport.close();
|
|
22
|
+
transport = null;
|
|
23
|
+
}
|
|
24
|
+
testEnv?.cleanup();
|
|
25
|
+
});
|
|
26
|
+
async function startServerWithArgs(args) {
|
|
27
|
+
transport = new stdio_js_1.StdioClientTransport({
|
|
28
|
+
command: "node",
|
|
29
|
+
args: ["dist/server.js", ...args],
|
|
30
|
+
});
|
|
31
|
+
client = new index_js_1.Client({ name: "test-client", version: "1.0.0" }, { capabilities: {} });
|
|
32
|
+
await client.connect(transport);
|
|
33
|
+
}
|
|
34
|
+
async function callTool(name, args = {}) {
|
|
35
|
+
if (!client) {
|
|
36
|
+
throw new Error("Client not connected");
|
|
37
|
+
}
|
|
38
|
+
return client.request({
|
|
39
|
+
method: "tools/call",
|
|
40
|
+
params: { name, arguments: args },
|
|
41
|
+
}, types_js_1.CallToolResultSchema);
|
|
42
|
+
}
|
|
43
|
+
function createObjectWithAge(type, title, daysOld, status = "done", parent) {
|
|
44
|
+
const ageInMs = daysOld * 24 * 60 * 60 * 1000;
|
|
45
|
+
const pastDate = new Date(Date.now() - ageInMs);
|
|
46
|
+
// Generate a unique ID based on title
|
|
47
|
+
const prefix = type.charAt(0).toUpperCase();
|
|
48
|
+
const slug = title.toLowerCase().replace(/\s+/g, "-");
|
|
49
|
+
const objectId = `${prefix}-${slug}`;
|
|
50
|
+
// Create the markdown content with past timestamps
|
|
51
|
+
const markdownContent = `---
|
|
52
|
+
id: ${objectId}
|
|
53
|
+
title: ${title}
|
|
54
|
+
status: ${status}
|
|
55
|
+
priority: medium
|
|
56
|
+
schema: v1.0
|
|
57
|
+
created: ${pastDate.toISOString()}
|
|
58
|
+
updated: ${pastDate.toISOString()}
|
|
59
|
+
${parent ? `parent: ${parent}` : ""}
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
# ${title}
|
|
63
|
+
|
|
64
|
+
Test object created for auto-prune testing.
|
|
65
|
+
`;
|
|
66
|
+
// Create the appropriate directory structure and file
|
|
67
|
+
const fs = require("fs");
|
|
68
|
+
const path = require("path");
|
|
69
|
+
let filePath;
|
|
70
|
+
if (type === "task") {
|
|
71
|
+
const statusDir = status === "done" ? "closed" : "open";
|
|
72
|
+
const dir = path.join(testEnv.projectRoot, ".trellis", "t", statusDir);
|
|
73
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
74
|
+
filePath = path.join(dir, `${objectId}.md`);
|
|
75
|
+
}
|
|
76
|
+
else if (type === "feature") {
|
|
77
|
+
const dir = path.join(testEnv.projectRoot, ".trellis", "f", objectId);
|
|
78
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
79
|
+
filePath = path.join(dir, `${objectId}.md`);
|
|
80
|
+
}
|
|
81
|
+
else if (type === "epic") {
|
|
82
|
+
const dir = path.join(testEnv.projectRoot, ".trellis", "e", objectId);
|
|
83
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
84
|
+
filePath = path.join(dir, `${objectId}.md`);
|
|
85
|
+
}
|
|
86
|
+
else if (type === "project") {
|
|
87
|
+
const dir = path.join(testEnv.projectRoot, ".trellis", "p", objectId);
|
|
88
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
89
|
+
filePath = path.join(dir, `${objectId}.md`);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
throw new Error(`Unsupported object type: ${type}`);
|
|
93
|
+
}
|
|
94
|
+
fs.writeFileSync(filePath, markdownContent);
|
|
95
|
+
return objectId;
|
|
96
|
+
}
|
|
97
|
+
describe("Basic Auto-Prune Functionality", () => {
|
|
98
|
+
it("should delete closed objects older than threshold", async () => {
|
|
99
|
+
// Start server with auto-prune disabled first to set up objects
|
|
100
|
+
await startServerWithArgs([
|
|
101
|
+
"--mode",
|
|
102
|
+
"local",
|
|
103
|
+
"--projectRootFolder",
|
|
104
|
+
testEnv.projectRoot,
|
|
105
|
+
"--auto-prune",
|
|
106
|
+
"0",
|
|
107
|
+
]);
|
|
108
|
+
// Create objects with various ages
|
|
109
|
+
const oldTaskId = createObjectWithAge("task", "Old Task", 10, "done");
|
|
110
|
+
const newTaskId = createObjectWithAge("task", "New Task", 3, "done");
|
|
111
|
+
const veryOldTaskId = createObjectWithAge("task", "Very Old Task", 30, "done");
|
|
112
|
+
// Close connection and restart with auto-prune enabled
|
|
113
|
+
await client.close();
|
|
114
|
+
await transport.close();
|
|
115
|
+
// Start server with auto-prune threshold of 7 days
|
|
116
|
+
await startServerWithArgs([
|
|
117
|
+
"--mode",
|
|
118
|
+
"local",
|
|
119
|
+
"--projectRootFolder",
|
|
120
|
+
testEnv.projectRoot,
|
|
121
|
+
"--auto-prune",
|
|
122
|
+
"7",
|
|
123
|
+
]);
|
|
124
|
+
// Verify objects older than 7 days are deleted
|
|
125
|
+
const listResult = await callTool("list_issues", {
|
|
126
|
+
type: ["task", "feature", "epic", "project"],
|
|
127
|
+
includeClosed: true,
|
|
128
|
+
});
|
|
129
|
+
const remainingObjects = listResult.content[0].text;
|
|
130
|
+
expect(remainingObjects).toContain(newTaskId); // 3 days old - should remain
|
|
131
|
+
expect(remainingObjects).not.toContain(oldTaskId); // 10 days old - should be deleted
|
|
132
|
+
expect(remainingObjects).not.toContain(veryOldTaskId); // 30 days old - should be deleted
|
|
133
|
+
});
|
|
134
|
+
it("should not delete any objects when auto-prune is disabled", async () => {
|
|
135
|
+
// Start server with auto-prune disabled
|
|
136
|
+
await startServerWithArgs([
|
|
137
|
+
"--mode",
|
|
138
|
+
"local",
|
|
139
|
+
"--projectRootFolder",
|
|
140
|
+
testEnv.projectRoot,
|
|
141
|
+
"--auto-prune",
|
|
142
|
+
"0",
|
|
143
|
+
]);
|
|
144
|
+
// Create old closed objects
|
|
145
|
+
const oldTaskId = createObjectWithAge("task", "Old Task", 30, "done");
|
|
146
|
+
const veryOldTaskId = createObjectWithAge("task", "Very Old Task", 100, "done");
|
|
147
|
+
// Close and restart with auto-prune still disabled
|
|
148
|
+
await client.close();
|
|
149
|
+
await transport.close();
|
|
150
|
+
await startServerWithArgs([
|
|
151
|
+
"--mode",
|
|
152
|
+
"local",
|
|
153
|
+
"--projectRootFolder",
|
|
154
|
+
testEnv.projectRoot,
|
|
155
|
+
"--auto-prune",
|
|
156
|
+
"0",
|
|
157
|
+
]);
|
|
158
|
+
// Verify all objects remain
|
|
159
|
+
const listResult = await callTool("list_issues", {
|
|
160
|
+
type: ["task", "feature", "epic", "project"],
|
|
161
|
+
includeClosed: true,
|
|
162
|
+
});
|
|
163
|
+
const remainingObjects = listResult.content[0].text;
|
|
164
|
+
expect(remainingObjects).toContain(oldTaskId);
|
|
165
|
+
expect(remainingObjects).toContain(veryOldTaskId);
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
describe("Hierarchical Validation Tests", () => {
|
|
169
|
+
it("should not delete closed parent with open child", async () => {
|
|
170
|
+
// Start server with auto-prune disabled to set up hierarchy
|
|
171
|
+
await startServerWithArgs([
|
|
172
|
+
"--mode",
|
|
173
|
+
"local",
|
|
174
|
+
"--projectRootFolder",
|
|
175
|
+
testEnv.projectRoot,
|
|
176
|
+
"--auto-prune",
|
|
177
|
+
"0",
|
|
178
|
+
]);
|
|
179
|
+
// Create closed parent that's old
|
|
180
|
+
const parentId = createObjectWithAge("feature", "Old Parent Feature", 10, "done");
|
|
181
|
+
// Create open child under the parent
|
|
182
|
+
const childResult = await callTool("create_issue", {
|
|
183
|
+
type: "task",
|
|
184
|
+
title: "Open Child Task",
|
|
185
|
+
status: "open",
|
|
186
|
+
parent: parentId,
|
|
187
|
+
});
|
|
188
|
+
const childId = childResult.content[0].text.match(/ID: ([A-Z]-[a-z0-9-]+)/)[1];
|
|
189
|
+
// Restart with auto-prune enabled
|
|
190
|
+
await client.close();
|
|
191
|
+
await transport.close();
|
|
192
|
+
await startServerWithArgs([
|
|
193
|
+
"--mode",
|
|
194
|
+
"local",
|
|
195
|
+
"--projectRootFolder",
|
|
196
|
+
testEnv.projectRoot,
|
|
197
|
+
"--auto-prune",
|
|
198
|
+
"7",
|
|
199
|
+
]);
|
|
200
|
+
// Verify parent is NOT deleted because it has open child
|
|
201
|
+
const listResult = await callTool("list_issues", {
|
|
202
|
+
type: ["task", "feature", "epic", "project"],
|
|
203
|
+
includeClosed: true,
|
|
204
|
+
});
|
|
205
|
+
const remainingObjects = listResult.content[0].text;
|
|
206
|
+
expect(remainingObjects).toContain(parentId); // Should be skipped due to open child
|
|
207
|
+
expect(remainingObjects).toContain(childId); // Open child should remain
|
|
208
|
+
});
|
|
209
|
+
it("should delete closed parent with closed children", async () => {
|
|
210
|
+
// Start server with auto-prune disabled to set up hierarchy
|
|
211
|
+
await startServerWithArgs([
|
|
212
|
+
"--mode",
|
|
213
|
+
"local",
|
|
214
|
+
"--projectRootFolder",
|
|
215
|
+
testEnv.projectRoot,
|
|
216
|
+
"--auto-prune",
|
|
217
|
+
"0",
|
|
218
|
+
]);
|
|
219
|
+
// Create closed parent that's old
|
|
220
|
+
const parentId = createObjectWithAge("feature", "Old Parent Feature", 10, "done");
|
|
221
|
+
// Create closed child under the parent (also old)
|
|
222
|
+
const childId = createObjectWithAge("task", "Old Child Task", 10, "done", parentId);
|
|
223
|
+
// Restart with auto-prune enabled
|
|
224
|
+
await client.close();
|
|
225
|
+
await transport.close();
|
|
226
|
+
await startServerWithArgs([
|
|
227
|
+
"--mode",
|
|
228
|
+
"local",
|
|
229
|
+
"--projectRootFolder",
|
|
230
|
+
testEnv.projectRoot,
|
|
231
|
+
"--auto-prune",
|
|
232
|
+
"7",
|
|
233
|
+
]);
|
|
234
|
+
// Verify both parent and child are deleted
|
|
235
|
+
const listResult = await callTool("list_issues", {
|
|
236
|
+
type: ["task", "feature", "epic", "project"],
|
|
237
|
+
includeClosed: true,
|
|
238
|
+
});
|
|
239
|
+
const remainingObjects = listResult.content[0].text;
|
|
240
|
+
expect(remainingObjects).not.toContain(parentId); // Should be deleted
|
|
241
|
+
expect(remainingObjects).not.toContain(childId); // Should be deleted
|
|
242
|
+
});
|
|
243
|
+
it("should handle multi-level hierarchy with open descendant", async () => {
|
|
244
|
+
// Start server with auto-prune disabled to set up complex hierarchy
|
|
245
|
+
await startServerWithArgs([
|
|
246
|
+
"--mode",
|
|
247
|
+
"local",
|
|
248
|
+
"--projectRootFolder",
|
|
249
|
+
testEnv.projectRoot,
|
|
250
|
+
"--auto-prune",
|
|
251
|
+
"0",
|
|
252
|
+
]);
|
|
253
|
+
// Create grandparent (closed, old)
|
|
254
|
+
const grandparentId = createObjectWithAge("project", "Old Grandparent Project", 15, "done");
|
|
255
|
+
// Create parent under grandparent (closed, old)
|
|
256
|
+
const parentId = createObjectWithAge("epic", "Old Parent Epic", 12, "done", grandparentId);
|
|
257
|
+
// Create open child under parent
|
|
258
|
+
const childResult = await callTool("create_issue", {
|
|
259
|
+
type: "feature",
|
|
260
|
+
title: "Open Child Feature",
|
|
261
|
+
status: "open",
|
|
262
|
+
parent: parentId,
|
|
263
|
+
});
|
|
264
|
+
const childId = childResult.content[0].text.match(/ID: ([A-Z]-[a-z0-9-]+)/)[1];
|
|
265
|
+
// Restart with auto-prune enabled
|
|
266
|
+
await client.close();
|
|
267
|
+
await transport.close();
|
|
268
|
+
await startServerWithArgs([
|
|
269
|
+
"--mode",
|
|
270
|
+
"local",
|
|
271
|
+
"--projectRootFolder",
|
|
272
|
+
testEnv.projectRoot,
|
|
273
|
+
"--auto-prune",
|
|
274
|
+
"7",
|
|
275
|
+
]);
|
|
276
|
+
// Verify neither grandparent nor parent are deleted due to open descendant
|
|
277
|
+
const listResult = await callTool("list_issues", {
|
|
278
|
+
type: ["task", "feature", "epic", "project"],
|
|
279
|
+
includeClosed: true,
|
|
280
|
+
});
|
|
281
|
+
const remainingObjects = listResult.content[0].text;
|
|
282
|
+
expect(remainingObjects).toContain(grandparentId); // Should be skipped
|
|
283
|
+
expect(remainingObjects).toContain(parentId); // Should be skipped
|
|
284
|
+
expect(remainingObjects).toContain(childId); // Open child should remain
|
|
285
|
+
});
|
|
286
|
+
});
|
|
287
|
+
describe("CLI Integration Tests", () => {
|
|
288
|
+
it("should handle various auto-prune day values", async () => {
|
|
289
|
+
// Test with large value
|
|
290
|
+
await startServerWithArgs([
|
|
291
|
+
"--mode",
|
|
292
|
+
"local",
|
|
293
|
+
"--projectRootFolder",
|
|
294
|
+
testEnv.projectRoot,
|
|
295
|
+
"--auto-prune",
|
|
296
|
+
"365",
|
|
297
|
+
]);
|
|
298
|
+
const toolsResponse = await client.request({ method: "tools/list" }, types_js_1.ListToolsResultSchema);
|
|
299
|
+
expect(toolsResponse).toBeDefined();
|
|
300
|
+
expect(Array.isArray(toolsResponse.tools)).toBe(true);
|
|
301
|
+
});
|
|
302
|
+
it("should start server with valid auto-prune values", async () => {
|
|
303
|
+
const testValues = ["1", "7", "30", "90"];
|
|
304
|
+
for (const value of testValues) {
|
|
305
|
+
// Close existing connection if any
|
|
306
|
+
if (client) {
|
|
307
|
+
await client.close();
|
|
308
|
+
client = null;
|
|
309
|
+
}
|
|
310
|
+
if (transport) {
|
|
311
|
+
await transport.close();
|
|
312
|
+
transport = null;
|
|
313
|
+
}
|
|
314
|
+
await startServerWithArgs([
|
|
315
|
+
"--mode",
|
|
316
|
+
"local",
|
|
317
|
+
"--projectRootFolder",
|
|
318
|
+
testEnv.projectRoot,
|
|
319
|
+
"--auto-prune",
|
|
320
|
+
value,
|
|
321
|
+
]);
|
|
322
|
+
const toolsResponse = await client.request({ method: "tools/list" }, types_js_1.ListToolsResultSchema);
|
|
323
|
+
expect(toolsResponse).toBeDefined();
|
|
324
|
+
expect(Array.isArray(toolsResponse.tools)).toBe(true);
|
|
325
|
+
}
|
|
326
|
+
});
|
|
327
|
+
});
|
|
328
|
+
describe("Server Startup Integration", () => {
|
|
329
|
+
it("should run auto-prune before accepting requests", async () => {
|
|
330
|
+
// Create old objects first
|
|
331
|
+
await startServerWithArgs([
|
|
332
|
+
"--mode",
|
|
333
|
+
"local",
|
|
334
|
+
"--projectRootFolder",
|
|
335
|
+
testEnv.projectRoot,
|
|
336
|
+
"--auto-prune",
|
|
337
|
+
"0",
|
|
338
|
+
]);
|
|
339
|
+
const oldTaskId = createObjectWithAge("task", "Old Task", 15, "done");
|
|
340
|
+
await client.close();
|
|
341
|
+
await transport.close();
|
|
342
|
+
// Start with auto-prune enabled - auto-prune should run during startup
|
|
343
|
+
await startServerWithArgs([
|
|
344
|
+
"--mode",
|
|
345
|
+
"local",
|
|
346
|
+
"--projectRootFolder",
|
|
347
|
+
testEnv.projectRoot,
|
|
348
|
+
"--auto-prune",
|
|
349
|
+
"7",
|
|
350
|
+
]);
|
|
351
|
+
// First request should show the object is already deleted
|
|
352
|
+
const listResult = await callTool("list_issues", {
|
|
353
|
+
type: ["task", "feature", "epic", "project"],
|
|
354
|
+
includeClosed: true,
|
|
355
|
+
});
|
|
356
|
+
const remainingObjects = listResult.content[0].text;
|
|
357
|
+
expect(remainingObjects).not.toContain(oldTaskId);
|
|
358
|
+
});
|
|
359
|
+
it("should continue startup even if auto-prune encounters errors", async () => {
|
|
360
|
+
// Start server with auto-prune in a directory with potential permission issues
|
|
361
|
+
// This should not crash the server
|
|
362
|
+
await startServerWithArgs([
|
|
363
|
+
"--mode",
|
|
364
|
+
"local",
|
|
365
|
+
"--projectRootFolder",
|
|
366
|
+
testEnv.projectRoot,
|
|
367
|
+
"--auto-prune",
|
|
368
|
+
"7",
|
|
369
|
+
]);
|
|
370
|
+
// Server should still be functional
|
|
371
|
+
const toolsResponse = await client.request({ method: "tools/list" }, types_js_1.ListToolsResultSchema);
|
|
372
|
+
expect(toolsResponse).toBeDefined();
|
|
373
|
+
expect(Array.isArray(toolsResponse.tools)).toBe(true);
|
|
374
|
+
});
|
|
375
|
+
});
|
|
376
|
+
describe("Complex Workflow Tests", () => {
|
|
377
|
+
it("should handle complex object hierarchy with mixed statuses and ages", async () => {
|
|
378
|
+
// Start server with auto-prune disabled to set up complex scenario
|
|
379
|
+
await startServerWithArgs([
|
|
380
|
+
"--mode",
|
|
381
|
+
"local",
|
|
382
|
+
"--projectRootFolder",
|
|
383
|
+
testEnv.projectRoot,
|
|
384
|
+
"--auto-prune",
|
|
385
|
+
"0",
|
|
386
|
+
]);
|
|
387
|
+
// Create a complex hierarchy
|
|
388
|
+
const projectId = createObjectWithAge("project", "Old Project", 20, "done");
|
|
389
|
+
const epic1Id = createObjectWithAge("epic", "Old Epic 1", 15, "done", projectId);
|
|
390
|
+
const epic2Id = createObjectWithAge("epic", "Old Epic 2", 10, "done", projectId);
|
|
391
|
+
// Epic 1 has closed children (should allow deletion)
|
|
392
|
+
const feature1Id = createObjectWithAge("feature", "Old Feature 1", 12, "done", epic1Id);
|
|
393
|
+
const task1Id = createObjectWithAge("task", "Old Task 1", 8, "done", feature1Id);
|
|
394
|
+
// Epic 2 has open child (should prevent deletion)
|
|
395
|
+
const feature2Result = await callTool("create_issue", {
|
|
396
|
+
type: "feature",
|
|
397
|
+
title: "Open Feature 2",
|
|
398
|
+
status: "open",
|
|
399
|
+
parent: epic2Id,
|
|
400
|
+
});
|
|
401
|
+
const feature2Id = feature2Result.content[0].text.match(/ID: ([A-Z]-[a-z0-9-]+)/)[1];
|
|
402
|
+
// Restart with auto-prune enabled (7-day threshold)
|
|
403
|
+
await client.close();
|
|
404
|
+
await transport.close();
|
|
405
|
+
await startServerWithArgs([
|
|
406
|
+
"--mode",
|
|
407
|
+
"local",
|
|
408
|
+
"--projectRootFolder",
|
|
409
|
+
testEnv.projectRoot,
|
|
410
|
+
"--auto-prune",
|
|
411
|
+
"7",
|
|
412
|
+
]);
|
|
413
|
+
// Verify expected behavior
|
|
414
|
+
const listResult = await callTool("list_issues", {
|
|
415
|
+
type: ["task", "feature", "epic", "project"],
|
|
416
|
+
includeClosed: true,
|
|
417
|
+
});
|
|
418
|
+
const remainingObjects = listResult.content[0].text;
|
|
419
|
+
// Epic 1 and its children should be deleted (all closed and old)
|
|
420
|
+
expect(remainingObjects).not.toContain(epic1Id);
|
|
421
|
+
expect(remainingObjects).not.toContain(feature1Id);
|
|
422
|
+
expect(remainingObjects).not.toContain(task1Id);
|
|
423
|
+
// Project, Epic 2, and Feature 2 should remain (Epic 2 has open child)
|
|
424
|
+
expect(remainingObjects).toContain(projectId); // Should be skipped due to Epic 2's open child
|
|
425
|
+
expect(remainingObjects).toContain(epic2Id); // Should be skipped due to open child
|
|
426
|
+
expect(remainingObjects).toContain(feature2Id); // Open, should remain
|
|
427
|
+
});
|
|
428
|
+
it("should be idempotent on multiple runs", async () => {
|
|
429
|
+
// Create test objects
|
|
430
|
+
await startServerWithArgs([
|
|
431
|
+
"--mode",
|
|
432
|
+
"local",
|
|
433
|
+
"--projectRootFolder",
|
|
434
|
+
testEnv.projectRoot,
|
|
435
|
+
"--auto-prune",
|
|
436
|
+
"0",
|
|
437
|
+
]);
|
|
438
|
+
const oldTaskId = createObjectWithAge("task", "Old Task", 10, "done");
|
|
439
|
+
const newTaskId = createObjectWithAge("task", "New Task", 3, "done");
|
|
440
|
+
// First auto-prune run
|
|
441
|
+
await client.close();
|
|
442
|
+
await transport.close();
|
|
443
|
+
await startServerWithArgs([
|
|
444
|
+
"--mode",
|
|
445
|
+
"local",
|
|
446
|
+
"--projectRootFolder",
|
|
447
|
+
testEnv.projectRoot,
|
|
448
|
+
"--auto-prune",
|
|
449
|
+
"7",
|
|
450
|
+
]);
|
|
451
|
+
const firstResult = await callTool("list_issues", {
|
|
452
|
+
type: ["task", "feature", "epic", "project"],
|
|
453
|
+
includeClosed: true,
|
|
454
|
+
});
|
|
455
|
+
const firstRemaining = firstResult.content[0].text;
|
|
456
|
+
// Second auto-prune run (restart server)
|
|
457
|
+
await client.close();
|
|
458
|
+
await transport.close();
|
|
459
|
+
await startServerWithArgs([
|
|
460
|
+
"--mode",
|
|
461
|
+
"local",
|
|
462
|
+
"--projectRootFolder",
|
|
463
|
+
testEnv.projectRoot,
|
|
464
|
+
"--auto-prune",
|
|
465
|
+
"7",
|
|
466
|
+
]);
|
|
467
|
+
const secondResult = await callTool("list_issues", {
|
|
468
|
+
type: ["task", "feature", "epic", "project"],
|
|
469
|
+
includeClosed: true,
|
|
470
|
+
});
|
|
471
|
+
const secondRemaining = secondResult.content[0].text;
|
|
472
|
+
// Results should be identical
|
|
473
|
+
expect(firstRemaining).toBe(secondRemaining);
|
|
474
|
+
expect(secondRemaining).toContain(newTaskId);
|
|
475
|
+
expect(secondRemaining).not.toContain(oldTaskId);
|
|
476
|
+
});
|
|
477
|
+
});
|
|
478
|
+
describe("Performance and Edge Cases", () => {
|
|
479
|
+
it("should handle reasonable data volumes efficiently", async () => {
|
|
480
|
+
// Start server and create multiple objects
|
|
481
|
+
await startServerWithArgs([
|
|
482
|
+
"--mode",
|
|
483
|
+
"local",
|
|
484
|
+
"--projectRootFolder",
|
|
485
|
+
testEnv.projectRoot,
|
|
486
|
+
"--auto-prune",
|
|
487
|
+
"0",
|
|
488
|
+
]);
|
|
489
|
+
// Create 20 objects of varying ages
|
|
490
|
+
const objectIds = [];
|
|
491
|
+
for (let i = 0; i < 20; i++) {
|
|
492
|
+
const age = i < 10 ? 5 : 15; // Half young, half old
|
|
493
|
+
const status = i % 3 === 0 ? "open" : "done"; // Most closed, some open
|
|
494
|
+
const id = createObjectWithAge("task", `Task ${i}`, age, status);
|
|
495
|
+
objectIds.push(id);
|
|
496
|
+
}
|
|
497
|
+
const startTime = Date.now();
|
|
498
|
+
// Restart with auto-prune enabled
|
|
499
|
+
await client.close();
|
|
500
|
+
await transport.close();
|
|
501
|
+
await startServerWithArgs([
|
|
502
|
+
"--mode",
|
|
503
|
+
"local",
|
|
504
|
+
"--projectRootFolder",
|
|
505
|
+
testEnv.projectRoot,
|
|
506
|
+
"--auto-prune",
|
|
507
|
+
"10",
|
|
508
|
+
]);
|
|
509
|
+
const endTime = Date.now();
|
|
510
|
+
const duration = endTime - startTime;
|
|
511
|
+
// Should complete within reasonable time (< 30 seconds)
|
|
512
|
+
expect(duration).toBeLessThan(30000);
|
|
513
|
+
// Verify server is responsive
|
|
514
|
+
const toolsResponse = await client.request({ method: "tools/list" }, types_js_1.ListToolsResultSchema);
|
|
515
|
+
expect(toolsResponse).toBeDefined();
|
|
516
|
+
});
|
|
517
|
+
it("should handle edge case with zero objects", async () => {
|
|
518
|
+
// Start server with auto-prune on empty project
|
|
519
|
+
await startServerWithArgs([
|
|
520
|
+
"--mode",
|
|
521
|
+
"local",
|
|
522
|
+
"--projectRootFolder",
|
|
523
|
+
testEnv.projectRoot,
|
|
524
|
+
"--auto-prune",
|
|
525
|
+
"7",
|
|
526
|
+
]);
|
|
527
|
+
// Should start normally
|
|
528
|
+
const toolsResponse = await client.request({ method: "tools/list" }, types_js_1.ListToolsResultSchema);
|
|
529
|
+
expect(toolsResponse).toBeDefined();
|
|
530
|
+
});
|
|
531
|
+
});
|
|
532
|
+
});
|
|
533
|
+
//# sourceMappingURL=autoPrune.e2e.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoPrune.e2e.test.js","sourceRoot":"","sources":["../../../src/__tests__/e2e/autoPrune.e2e.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const index_js_1 = require("@modelcontextprotocol/sdk/client/index.js");
|
|
7
7
|
const stdio_js_1 = require("@modelcontextprotocol/sdk/client/stdio.js");
|
|
8
8
|
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
9
|
-
const utils_1 = require("../utils");
|
|
10
9
|
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const utils_1 = require("../utils");
|
|
11
11
|
describe("E2E Configuration - Activation", () => {
|
|
12
12
|
let testEnv;
|
|
13
13
|
let client = null;
|
|
@@ -56,7 +56,7 @@ describe("E2E Configuration - Activation", () => {
|
|
|
56
56
|
expect(response.content[0].text).toContain(testEnv.projectRoot);
|
|
57
57
|
expect(response.content[0].text).toContain("planningRootFolder");
|
|
58
58
|
// Verify .trellis directory exists after creating an object
|
|
59
|
-
await callTool("
|
|
59
|
+
await callTool("create_issue", {
|
|
60
60
|
type: "project",
|
|
61
61
|
title: "Test Project",
|
|
62
62
|
});
|
|
@@ -66,7 +66,7 @@ describe("E2E Configuration - Activation", () => {
|
|
|
66
66
|
it("should allow tool usage after activation", async () => {
|
|
67
67
|
await connectWithoutProjectRoot();
|
|
68
68
|
// Try to use tool before activation - should fail
|
|
69
|
-
const errorResponse = await callTool("
|
|
69
|
+
const errorResponse = await callTool("list_issues", {});
|
|
70
70
|
expect(errorResponse.content[0].text).toContain("Planning root folder is not configured");
|
|
71
71
|
// Activate
|
|
72
72
|
await callTool("activate", {
|
|
@@ -74,7 +74,7 @@ describe("E2E Configuration - Activation", () => {
|
|
|
74
74
|
projectRoot: testEnv.projectRoot,
|
|
75
75
|
});
|
|
76
76
|
// Should now work
|
|
77
|
-
const response = await callTool("
|
|
77
|
+
const response = await callTool("list_issues", { type: "project" });
|
|
78
78
|
expect(response.content[0].text).not.toContain("not configured");
|
|
79
79
|
});
|
|
80
80
|
it("should handle multiple activations with different paths", async () => {
|
|
@@ -85,7 +85,7 @@ describe("E2E Configuration - Activation", () => {
|
|
|
85
85
|
projectRoot: testEnv.projectRoot,
|
|
86
86
|
});
|
|
87
87
|
// Create an object
|
|
88
|
-
await callTool("
|
|
88
|
+
await callTool("create_issue", {
|
|
89
89
|
type: "project",
|
|
90
90
|
title: "Test Project",
|
|
91
91
|
});
|
|
@@ -96,7 +96,7 @@ describe("E2E Configuration - Activation", () => {
|
|
|
96
96
|
projectRoot: newPath,
|
|
97
97
|
});
|
|
98
98
|
// Objects from first activation should not be visible
|
|
99
|
-
const response = await callTool("
|
|
99
|
+
const response = await callTool("list_issues", { type: "project" });
|
|
100
100
|
expect(response.content[0].text).toBe("[]");
|
|
101
101
|
});
|
|
102
102
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activation.e2e.test.js","sourceRoot":"","sources":["../../../../src/__tests__/e2e/configuration/activation.e2e.test.ts"],"names":[],"mappings":";;;;;AAAA,wEAAmE;AACnE,wEAAiF;AACjF,iEAA0E;AAC1E,
|
|
1
|
+
{"version":3,"file":"activation.e2e.test.js","sourceRoot":"","sources":["../../../../src/__tests__/e2e/configuration/activation.e2e.test.ts"],"names":[],"mappings":"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"}
|