@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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const utils_1 = require("../utils");
|
|
4
3
|
const yaml_1 = require("yaml");
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
5
|
describe("E2E File Validation", () => {
|
|
6
6
|
let testEnv;
|
|
7
7
|
let client;
|
|
@@ -21,7 +21,7 @@ describe("E2E File Validation", () => {
|
|
|
21
21
|
});
|
|
22
22
|
describe("YAML Front-matter Structure Validation", () => {
|
|
23
23
|
it("should validate required fields in project YAML", async () => {
|
|
24
|
-
const result = await client.callTool("
|
|
24
|
+
const result = await client.callTool("create_issue", {
|
|
25
25
|
type: "project",
|
|
26
26
|
title: "YAML Validation Project",
|
|
27
27
|
description: "Testing YAML structure",
|
|
@@ -39,24 +39,24 @@ describe("E2E File Validation", () => {
|
|
|
39
39
|
});
|
|
40
40
|
it("should validate all object types have correct YAML structure", async () => {
|
|
41
41
|
// Create hierarchy: Project -> Epic -> Feature -> Task
|
|
42
|
-
const projectResult = await client.callTool("
|
|
42
|
+
const projectResult = await client.callTool("create_issue", {
|
|
43
43
|
type: "project",
|
|
44
44
|
title: "Structure Test Project",
|
|
45
45
|
});
|
|
46
46
|
const projectId = projectResult.content[0].text.match(/ID: (P-[a-z-]+)/)[1];
|
|
47
|
-
const epicResult = await client.callTool("
|
|
47
|
+
const epicResult = await client.callTool("create_issue", {
|
|
48
48
|
type: "epic",
|
|
49
49
|
title: "Structure Test Epic",
|
|
50
50
|
parent: projectId,
|
|
51
51
|
});
|
|
52
52
|
const epicId = epicResult.content[0].text.match(/ID: (E-[a-z-]+)/)[1];
|
|
53
|
-
const featureResult = await client.callTool("
|
|
53
|
+
const featureResult = await client.callTool("create_issue", {
|
|
54
54
|
type: "feature",
|
|
55
55
|
title: "Structure Test Feature",
|
|
56
56
|
parent: epicId,
|
|
57
57
|
});
|
|
58
58
|
const featureId = featureResult.content[0].text.match(/ID: (F-[a-z-]+)/)[1];
|
|
59
|
-
const taskResult = await client.callTool("
|
|
59
|
+
const taskResult = await client.callTool("create_issue", {
|
|
60
60
|
type: "task",
|
|
61
61
|
title: "Structure Test Task",
|
|
62
62
|
parent: featureId,
|
|
@@ -73,7 +73,7 @@ describe("E2E File Validation", () => {
|
|
|
73
73
|
expect(taskFile.yaml.parent).toBe(featureId);
|
|
74
74
|
});
|
|
75
75
|
it("should handle empty and null values correctly", async () => {
|
|
76
|
-
const result = await client.callTool("
|
|
76
|
+
const result = await client.callTool("create_issue", {
|
|
77
77
|
type: "task",
|
|
78
78
|
title: "Empty Values Test",
|
|
79
79
|
prerequisites: [],
|
|
@@ -88,7 +88,7 @@ describe("E2E File Validation", () => {
|
|
|
88
88
|
});
|
|
89
89
|
describe("Special Characters Handling", () => {
|
|
90
90
|
it("should handle quotes in YAML fields", async () => {
|
|
91
|
-
const result = await client.callTool("
|
|
91
|
+
const result = await client.callTool("create_issue", {
|
|
92
92
|
type: "task",
|
|
93
93
|
title: "Task with \"double quotes\" and 'single quotes'",
|
|
94
94
|
description: 'Body with "quotes" and special chars',
|
|
@@ -102,7 +102,7 @@ describe("E2E File Validation", () => {
|
|
|
102
102
|
expect(() => (0, yaml_1.parse)(yamlString)).not.toThrow();
|
|
103
103
|
});
|
|
104
104
|
it("should handle colons and YAML special symbols", async () => {
|
|
105
|
-
const result = await client.callTool("
|
|
105
|
+
const result = await client.callTool("create_issue", {
|
|
106
106
|
type: "feature",
|
|
107
107
|
title: "Feature: with: colons: everywhere",
|
|
108
108
|
description: "key: value pairs in body\nshould: not: break: parsing",
|
|
@@ -114,7 +114,7 @@ describe("E2E File Validation", () => {
|
|
|
114
114
|
});
|
|
115
115
|
it("should handle multi-line content in arrays", async () => {
|
|
116
116
|
// First create a task
|
|
117
|
-
const createResult = await client.callTool("
|
|
117
|
+
const createResult = await client.callTool("create_issue", {
|
|
118
118
|
type: "task",
|
|
119
119
|
title: "Multi-line Log Test",
|
|
120
120
|
});
|
|
@@ -133,7 +133,7 @@ describe("E2E File Validation", () => {
|
|
|
133
133
|
expect(file.yaml.log).toContain("Another entry with:\n\nParagraph breaks\n\nAnd formatting");
|
|
134
134
|
});
|
|
135
135
|
it("should handle unicode and emojis", async () => {
|
|
136
|
-
const result = await client.callTool("
|
|
136
|
+
const result = await client.callTool("create_issue", {
|
|
137
137
|
type: "project",
|
|
138
138
|
title: "Unicode Project 🚀 你好世界",
|
|
139
139
|
description: "Testing émojis 😀 and spëcial çhars",
|
|
@@ -157,7 +157,7 @@ config:
|
|
|
157
157
|
\`\`\`
|
|
158
158
|
|
|
159
159
|
This should not confuse the parser.`;
|
|
160
|
-
const result = await client.callTool("
|
|
160
|
+
const result = await client.callTool("create_issue", {
|
|
161
161
|
type: "task",
|
|
162
162
|
title: "YAML in Body Test",
|
|
163
163
|
description: yamlLikeBody,
|
|
@@ -170,24 +170,24 @@ This should not confuse the parser.`;
|
|
|
170
170
|
describe("Directory Structure Validation", () => {
|
|
171
171
|
it("should create correct directory hierarchy for nested objects", async () => {
|
|
172
172
|
// Create complete hierarchy
|
|
173
|
-
const projectResult = await client.callTool("
|
|
173
|
+
const projectResult = await client.callTool("create_issue", {
|
|
174
174
|
type: "project",
|
|
175
175
|
title: "Hierarchy Test",
|
|
176
176
|
});
|
|
177
177
|
const projectId = projectResult.content[0].text.match(/ID: (P-[a-z-]+)/)[1];
|
|
178
|
-
const epicResult = await client.callTool("
|
|
178
|
+
const epicResult = await client.callTool("create_issue", {
|
|
179
179
|
type: "epic",
|
|
180
180
|
title: "Hierarchy Epic",
|
|
181
181
|
parent: projectId,
|
|
182
182
|
});
|
|
183
183
|
const epicId = epicResult.content[0].text.match(/ID: (E-[a-z-]+)/)[1];
|
|
184
|
-
const featureResult = await client.callTool("
|
|
184
|
+
const featureResult = await client.callTool("create_issue", {
|
|
185
185
|
type: "feature",
|
|
186
186
|
title: "Hierarchy Feature",
|
|
187
187
|
parent: epicId,
|
|
188
188
|
});
|
|
189
189
|
const featureId = featureResult.content[0].text.match(/ID: (F-[a-z-]+)/)[1];
|
|
190
|
-
const taskResult = await client.callTool("
|
|
190
|
+
const taskResult = await client.callTool("create_issue", {
|
|
191
191
|
type: "task",
|
|
192
192
|
title: "Hierarchy Task",
|
|
193
193
|
parent: featureId,
|
|
@@ -205,7 +205,7 @@ This should not confuse the parser.`;
|
|
|
205
205
|
expect(await (0, utils_1.fileExists)(testEnv.projectRoot, `p/${projectId}/e/${epicId}/f/${featureId}/t/open/${taskId}.md`)).toBe(true);
|
|
206
206
|
});
|
|
207
207
|
it("should handle standalone features correctly", async () => {
|
|
208
|
-
const result = await client.callTool("
|
|
208
|
+
const result = await client.callTool("create_issue", {
|
|
209
209
|
type: "feature",
|
|
210
210
|
title: "Standalone Feature",
|
|
211
211
|
});
|
|
@@ -213,13 +213,13 @@ This should not confuse the parser.`;
|
|
|
213
213
|
expect(await (0, utils_1.fileExists)(testEnv.projectRoot, `f/${featureId}/${featureId}.md`)).toBe(true);
|
|
214
214
|
});
|
|
215
215
|
it("should handle standalone tasks correctly", async () => {
|
|
216
|
-
const openResult = await client.callTool("
|
|
216
|
+
const openResult = await client.callTool("create_issue", {
|
|
217
217
|
type: "task",
|
|
218
218
|
title: "Standalone Open Task",
|
|
219
219
|
status: "open",
|
|
220
220
|
});
|
|
221
221
|
const openTaskId = openResult.content[0].text.match(/ID: (T-[a-z-]+)/)[1];
|
|
222
|
-
const closedResult = await client.callTool("
|
|
222
|
+
const closedResult = await client.callTool("create_issue", {
|
|
223
223
|
type: "task",
|
|
224
224
|
title: "Standalone Closed Task",
|
|
225
225
|
status: "done",
|
|
@@ -232,7 +232,7 @@ This should not confuse the parser.`;
|
|
|
232
232
|
describe("Task Status Directory Transitions", () => {
|
|
233
233
|
it("should move task file when status changes from open to closed", async () => {
|
|
234
234
|
// Create task in open status
|
|
235
|
-
const createResult = await client.callTool("
|
|
235
|
+
const createResult = await client.callTool("create_issue", {
|
|
236
236
|
type: "task",
|
|
237
237
|
title: "Status Transition Task",
|
|
238
238
|
status: "open",
|
|
@@ -242,7 +242,7 @@ This should not confuse the parser.`;
|
|
|
242
242
|
expect(await (0, utils_1.fileExists)(testEnv.projectRoot, `t/open/${taskId}.md`)).toBe(true);
|
|
243
243
|
expect(await (0, utils_1.fileExists)(testEnv.projectRoot, `t/closed/${taskId}.md`)).toBe(false);
|
|
244
244
|
// Update status to done
|
|
245
|
-
await client.callTool("
|
|
245
|
+
await client.callTool("update_issue", {
|
|
246
246
|
id: taskId,
|
|
247
247
|
status: "done",
|
|
248
248
|
force: true,
|
|
@@ -253,7 +253,7 @@ This should not confuse the parser.`;
|
|
|
253
253
|
});
|
|
254
254
|
it("should move task file when status changes from closed to open", async () => {
|
|
255
255
|
// Create task in done status
|
|
256
|
-
const createResult = await client.callTool("
|
|
256
|
+
const createResult = await client.callTool("create_issue", {
|
|
257
257
|
type: "task",
|
|
258
258
|
title: "Reopen Task",
|
|
259
259
|
status: "done",
|
|
@@ -262,7 +262,7 @@ This should not confuse the parser.`;
|
|
|
262
262
|
// Verify initial location
|
|
263
263
|
expect(await (0, utils_1.fileExists)(testEnv.projectRoot, `t/closed/${taskId}.md`)).toBe(true);
|
|
264
264
|
// Update status to in-progress
|
|
265
|
-
await client.callTool("
|
|
265
|
+
await client.callTool("update_issue", {
|
|
266
266
|
id: taskId,
|
|
267
267
|
status: "in-progress",
|
|
268
268
|
force: true,
|
|
@@ -273,12 +273,12 @@ This should not confuse the parser.`;
|
|
|
273
273
|
});
|
|
274
274
|
it("should handle status transitions for tasks in hierarchy", async () => {
|
|
275
275
|
// Create feature with task
|
|
276
|
-
const featureResult = await client.callTool("
|
|
276
|
+
const featureResult = await client.callTool("create_issue", {
|
|
277
277
|
type: "feature",
|
|
278
278
|
title: "Parent Feature",
|
|
279
279
|
});
|
|
280
280
|
const featureId = featureResult.content[0].text.match(/ID: (F-[a-z-]+)/)[1];
|
|
281
|
-
const taskResult = await client.callTool("
|
|
281
|
+
const taskResult = await client.callTool("create_issue", {
|
|
282
282
|
type: "task",
|
|
283
283
|
title: "Hierarchical Task",
|
|
284
284
|
parent: featureId,
|
|
@@ -288,7 +288,7 @@ This should not confuse the parser.`;
|
|
|
288
288
|
// Verify initial location
|
|
289
289
|
expect(await (0, utils_1.fileExists)(testEnv.projectRoot, `f/${featureId}/t/open/${taskId}.md`)).toBe(true);
|
|
290
290
|
// First change status to in-progress
|
|
291
|
-
await client.callTool("
|
|
291
|
+
await client.callTool("update_issue", {
|
|
292
292
|
id: taskId,
|
|
293
293
|
status: "in-progress",
|
|
294
294
|
force: true,
|
|
@@ -341,7 +341,7 @@ Additional content after horizontal rule.
|
|
|
341
341
|
|
|
342
342
|

|
|
343
343
|
[Link text](https://example.com)`;
|
|
344
|
-
const createResult = await client.callTool("
|
|
344
|
+
const createResult = await client.callTool("create_issue", {
|
|
345
345
|
type: "feature",
|
|
346
346
|
title: "Complex Content Feature",
|
|
347
347
|
description: complexBody,
|
|
@@ -351,7 +351,7 @@ Additional content after horizontal rule.
|
|
|
351
351
|
const file = await (0, utils_1.readObjectFile)(testEnv.projectRoot, `f/${featureId}/${featureId}.md`);
|
|
352
352
|
expect(file.body).toBe(complexBody);
|
|
353
353
|
// Update the feature and verify content still preserved
|
|
354
|
-
await client.callTool("
|
|
354
|
+
await client.callTool("update_issue", {
|
|
355
355
|
id: featureId,
|
|
356
356
|
priority: "high",
|
|
357
357
|
});
|
|
@@ -361,7 +361,7 @@ Additional content after horizontal rule.
|
|
|
361
361
|
});
|
|
362
362
|
it("should handle file encoding and newlines correctly", async () => {
|
|
363
363
|
const mixedNewlines = "Line 1\nLine 2\r\nLine 3\rLine 4";
|
|
364
|
-
const result = await client.callTool("
|
|
364
|
+
const result = await client.callTool("create_issue", {
|
|
365
365
|
type: "task",
|
|
366
366
|
title: "Newline Test",
|
|
367
367
|
description: mixedNewlines,
|
|
@@ -383,19 +383,19 @@ Additional content after horizontal rule.
|
|
|
383
383
|
prerequisites: ["dep1", "dep2"],
|
|
384
384
|
};
|
|
385
385
|
// Need to create project first for epic
|
|
386
|
-
const projectResult = await client.callTool("
|
|
386
|
+
const projectResult = await client.callTool("create_issue", {
|
|
387
387
|
type: "project",
|
|
388
388
|
title: "Parent Project",
|
|
389
389
|
});
|
|
390
390
|
const projectId = projectResult.content[0].text.match(/ID: (P-[a-z-]+)/)[1];
|
|
391
|
-
const epicResult = await client.callTool("
|
|
391
|
+
const epicResult = await client.callTool("create_issue", {
|
|
392
392
|
type: "epic",
|
|
393
393
|
parent: projectId,
|
|
394
394
|
...testData,
|
|
395
395
|
});
|
|
396
396
|
const epicId = epicResult.content[0].text.match(/ID: (E-[a-z-]+)/)[1];
|
|
397
397
|
// Get the object through MCP
|
|
398
|
-
const getResult = await client.callTool("
|
|
398
|
+
const getResult = await client.callTool("get_issue", {
|
|
399
399
|
id: epicId,
|
|
400
400
|
});
|
|
401
401
|
// Verify all data preserved
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileValidation.e2e.test.js","sourceRoot":"","sources":["../../../../src/__tests__/e2e/crud/fileValidation.e2e.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fileValidation.e2e.test.js","sourceRoot":"","sources":["../../../../src/__tests__/e2e/crud/fileValidation.e2e.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,7 +81,7 @@ describe("E2E CRUD - getObject", () => {
|
|
|
81
81
|
};
|
|
82
82
|
const epicContent = (0, utils_1.createObjectContent)(epicData);
|
|
83
83
|
await (0, utils_1.createObjectFile)(testEnv.projectRoot, "epic", "E-child-epic", epicContent, { projectId: "P-test-project" });
|
|
84
|
-
const result = await client.callTool("
|
|
84
|
+
const result = await client.callTool("get_issue", {
|
|
85
85
|
id: "P-test-project",
|
|
86
86
|
});
|
|
87
87
|
expect(result.content[0].type).toBe("text");
|
|
@@ -93,7 +93,7 @@ describe("E2E CRUD - getObject", () => {
|
|
|
93
93
|
expect(object.priority).toBe("high");
|
|
94
94
|
expect(object.parent).toBeUndefined();
|
|
95
95
|
expect(object.prerequisites).toEqual(["P-dep1", "P-dep2"]);
|
|
96
|
-
expect(object.affectedFiles).toEqual({});
|
|
96
|
+
expect(object.affectedFiles).toEqual({ "src/index.ts": "Initial setup" });
|
|
97
97
|
expect(object.log).toEqual(["Created project", "Updated priority"]);
|
|
98
98
|
expect(object.schema).toBe("1.1");
|
|
99
99
|
expect(object.body).toBe("This is the project description");
|
|
@@ -109,7 +109,7 @@ describe("E2E CRUD - getObject", () => {
|
|
|
109
109
|
};
|
|
110
110
|
const content = (0, utils_1.createObjectContent)(epicData);
|
|
111
111
|
await (0, utils_1.createObjectFile)(testEnv.projectRoot, "epic", "E-test-epic", content, { projectId: "P-parent-project" });
|
|
112
|
-
const result = await client.callTool("
|
|
112
|
+
const result = await client.callTool("get_issue", {
|
|
113
113
|
id: "E-test-epic",
|
|
114
114
|
});
|
|
115
115
|
const object = (0, utils_1.parseGetObjectResponse)(result.content[0].text);
|
|
@@ -126,7 +126,7 @@ describe("E2E CRUD - getObject", () => {
|
|
|
126
126
|
};
|
|
127
127
|
const content = (0, utils_1.createObjectContent)(featureData);
|
|
128
128
|
await (0, utils_1.createObjectFile)(testEnv.projectRoot, "feature", "F-standalone-feature", content);
|
|
129
|
-
const result = await client.callTool("
|
|
129
|
+
const result = await client.callTool("get_issue", {
|
|
130
130
|
id: "F-standalone-feature",
|
|
131
131
|
});
|
|
132
132
|
const object = (0, utils_1.parseGetObjectResponse)(result.content[0].text);
|
|
@@ -149,12 +149,12 @@ describe("E2E CRUD - getObject", () => {
|
|
|
149
149
|
status: "done",
|
|
150
150
|
};
|
|
151
151
|
await (0, utils_1.createObjectFile)(testEnv.projectRoot, "task", "T-closed-task", (0, utils_1.createObjectContent)(closedTaskData), { status: "closed" });
|
|
152
|
-
const openResult = await client.callTool("
|
|
152
|
+
const openResult = await client.callTool("get_issue", {
|
|
153
153
|
id: "T-open-task",
|
|
154
154
|
});
|
|
155
155
|
const openObject = (0, utils_1.parseGetObjectResponse)(openResult.content[0].text);
|
|
156
156
|
expect(openObject.status).toBe("open");
|
|
157
|
-
const closedResult = await client.callTool("
|
|
157
|
+
const closedResult = await client.callTool("get_issue", {
|
|
158
158
|
id: "T-closed-task",
|
|
159
159
|
});
|
|
160
160
|
const closedObject = (0, utils_1.parseGetObjectResponse)(closedResult.content[0].text);
|
|
@@ -196,23 +196,23 @@ describe("E2E CRUD - getObject", () => {
|
|
|
196
196
|
prerequisites: [epicId, featureId],
|
|
197
197
|
}), { projectId, epicId, featureId, status: "open" });
|
|
198
198
|
// Verify each object can be retrieved and has correct parent/children
|
|
199
|
-
const projectResult = await client.callTool("
|
|
199
|
+
const projectResult = await client.callTool("get_issue", {
|
|
200
200
|
id: projectId,
|
|
201
201
|
});
|
|
202
202
|
const project = (0, utils_1.parseGetObjectResponse)(projectResult.content[0].text);
|
|
203
203
|
expect(project.childrenIds).toContain(epicId);
|
|
204
204
|
expect(project.parent).toBeUndefined();
|
|
205
|
-
const epicResult = await client.callTool("
|
|
205
|
+
const epicResult = await client.callTool("get_issue", { id: epicId });
|
|
206
206
|
const epic = (0, utils_1.parseGetObjectResponse)(epicResult.content[0].text);
|
|
207
207
|
expect(epic.parent).toBe(projectId);
|
|
208
208
|
expect(epic.childrenIds).toContain(featureId);
|
|
209
|
-
const featureResult = await client.callTool("
|
|
209
|
+
const featureResult = await client.callTool("get_issue", {
|
|
210
210
|
id: featureId,
|
|
211
211
|
});
|
|
212
212
|
const feature = (0, utils_1.parseGetObjectResponse)(featureResult.content[0].text);
|
|
213
213
|
expect(feature.parent).toBe(epicId);
|
|
214
214
|
expect(feature.childrenIds).toContain(taskId);
|
|
215
|
-
const taskResult = await client.callTool("
|
|
215
|
+
const taskResult = await client.callTool("get_issue", { id: taskId });
|
|
216
216
|
const task = (0, utils_1.parseGetObjectResponse)(taskResult.content[0].text);
|
|
217
217
|
expect(task.parent).toBe(featureId);
|
|
218
218
|
expect(task.prerequisites).toEqual([epicId, featureId]);
|
|
@@ -239,23 +239,71 @@ describe("E2E CRUD - getObject", () => {
|
|
|
239
239
|
parent: featureId,
|
|
240
240
|
status: "done",
|
|
241
241
|
}), { featureId, status: "closed" });
|
|
242
|
-
const featureResult = await client.callTool("
|
|
242
|
+
const featureResult = await client.callTool("get_issue", {
|
|
243
243
|
id: featureId,
|
|
244
244
|
});
|
|
245
245
|
const feature = (0, utils_1.parseGetObjectResponse)(featureResult.content[0].text);
|
|
246
246
|
expect(feature.childrenIds).toEqual([task1Id, task2Id]);
|
|
247
|
-
const task1Result = await client.callTool("
|
|
247
|
+
const task1Result = await client.callTool("get_issue", { id: task1Id });
|
|
248
248
|
const task1 = (0, utils_1.parseGetObjectResponse)(task1Result.content[0].text);
|
|
249
249
|
expect(task1.parent).toBe(featureId);
|
|
250
|
-
const task2Result = await client.callTool("
|
|
250
|
+
const task2Result = await client.callTool("get_issue", { id: task2Id });
|
|
251
251
|
const task2 = (0, utils_1.parseGetObjectResponse)(task2Result.content[0].text);
|
|
252
252
|
expect(task2.parent).toBe(featureId);
|
|
253
253
|
expect(task2.status).toBe("done");
|
|
254
254
|
});
|
|
255
|
+
it("should properly display affected files in response (regression test)", async () => {
|
|
256
|
+
// This test specifically validates the bug fix where affected files
|
|
257
|
+
// weren't being properly serialized due to Map JSON.stringify issue
|
|
258
|
+
const taskData = {
|
|
259
|
+
id: "T-affected-files-test",
|
|
260
|
+
title: "Task with Affected Files",
|
|
261
|
+
status: "in-progress",
|
|
262
|
+
priority: "high",
|
|
263
|
+
affectedFiles: {
|
|
264
|
+
"src/components/Button.tsx": "Added new button component",
|
|
265
|
+
"src/styles/theme.css": "Updated button theme",
|
|
266
|
+
"tests/Button.test.tsx": "Added comprehensive tests",
|
|
267
|
+
"docs/components.md": "Updated component documentation",
|
|
268
|
+
},
|
|
269
|
+
log: [
|
|
270
|
+
"Started implementation",
|
|
271
|
+
"Added component structure",
|
|
272
|
+
"Implemented styling",
|
|
273
|
+
"Added tests and documentation",
|
|
274
|
+
],
|
|
275
|
+
};
|
|
276
|
+
const content = (0, utils_1.createObjectContent)(taskData);
|
|
277
|
+
await (0, utils_1.createObjectFile)(testEnv.projectRoot, "task", "T-affected-files-test", content);
|
|
278
|
+
const result = await client.callTool("get_issue", {
|
|
279
|
+
id: "T-affected-files-test",
|
|
280
|
+
});
|
|
281
|
+
expect(result.content[0].type).toBe("text");
|
|
282
|
+
const object = (0, utils_1.parseGetObjectResponse)(result.content[0].text);
|
|
283
|
+
// Verify affected files are properly populated (not empty)
|
|
284
|
+
expect(object.affectedFiles).toBeDefined();
|
|
285
|
+
expect(typeof object.affectedFiles).toBe("object");
|
|
286
|
+
expect(Object.keys(object.affectedFiles)).toHaveLength(4);
|
|
287
|
+
// Verify specific affected files
|
|
288
|
+
expect(object.affectedFiles["src/components/Button.tsx"]).toBe("Added new button component");
|
|
289
|
+
expect(object.affectedFiles["src/styles/theme.css"]).toBe("Updated button theme");
|
|
290
|
+
expect(object.affectedFiles["tests/Button.test.tsx"]).toBe("Added comprehensive tests");
|
|
291
|
+
expect(object.affectedFiles["docs/components.md"]).toBe("Updated component documentation");
|
|
292
|
+
// Verify log is also properly populated
|
|
293
|
+
expect(object.log).toHaveLength(4);
|
|
294
|
+
expect(object.log).toContain("Started implementation");
|
|
295
|
+
expect(object.log).toContain("Added tests and documentation");
|
|
296
|
+
// Verify that the response text contains the affected files content
|
|
297
|
+
const responseText = result.content[0].text;
|
|
298
|
+
expect(responseText).toContain("src/components/Button.tsx");
|
|
299
|
+
expect(responseText).toContain("Added new button component");
|
|
300
|
+
expect(responseText).toContain("src/styles/theme.css");
|
|
301
|
+
expect(responseText).toContain("Updated button theme");
|
|
302
|
+
});
|
|
255
303
|
});
|
|
256
304
|
describe("Error Handling", () => {
|
|
257
305
|
it("should handle non-existent object IDs", async () => {
|
|
258
|
-
const result = await client.callTool("
|
|
306
|
+
const result = await client.callTool("get_issue", {
|
|
259
307
|
id: "P-nonexistent",
|
|
260
308
|
});
|
|
261
309
|
expect(result.content[0].type).toBe("text");
|
|
@@ -271,7 +319,7 @@ describe("E2E CRUD - getObject", () => {
|
|
|
271
319
|
"-missing-prefix",
|
|
272
320
|
];
|
|
273
321
|
for (const id of malformedIds) {
|
|
274
|
-
const result = await client.callTool("
|
|
322
|
+
const result = await client.callTool("get_issue", { id });
|
|
275
323
|
expect(result.content[0].type).toBe("text");
|
|
276
324
|
const text = result.content[0].text;
|
|
277
325
|
// Should either be "not found" or contain "Error"
|
|
@@ -286,7 +334,7 @@ describe("E2E CRUD - getObject", () => {
|
|
|
286
334
|
const filePath = path.join(testEnv.projectRoot, ".trellis", "p", "P-corrupted", "P-corrupted.md");
|
|
287
335
|
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
288
336
|
await fs.writeFile(filePath, corruptedContent, "utf-8");
|
|
289
|
-
const result = await client.callTool("
|
|
337
|
+
const result = await client.callTool("get_issue", {
|
|
290
338
|
id: "P-corrupted",
|
|
291
339
|
});
|
|
292
340
|
expect(result.content[0].type).toBe("text");
|
|
@@ -305,7 +353,7 @@ Body content`;
|
|
|
305
353
|
const filePath = path.join(testEnv.projectRoot, ".trellis", "p", "P-incomplete", "P-incomplete.md");
|
|
306
354
|
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
307
355
|
await fs.writeFile(filePath, incompleteContent, "utf-8");
|
|
308
|
-
const result = await client.callTool("
|
|
356
|
+
const result = await client.callTool("get_issue", {
|
|
309
357
|
id: "P-incomplete",
|
|
310
358
|
});
|
|
311
359
|
// The system should either not find it or report an error
|
|
@@ -334,7 +382,7 @@ Body content`;
|
|
|
334
382
|
parent: testCase.hierarchy?.projectId,
|
|
335
383
|
});
|
|
336
384
|
await (0, utils_1.createObjectFile)(testEnv.projectRoot, testCase.objectType, testCase.id, content, testCase.hierarchy);
|
|
337
|
-
const result = await client.callTool("
|
|
385
|
+
const result = await client.callTool("get_issue", {
|
|
338
386
|
id: testCase.id,
|
|
339
387
|
});
|
|
340
388
|
const object = (0, utils_1.parseGetObjectResponse)(result.content[0].text);
|
|
@@ -353,7 +401,7 @@ Body content`;
|
|
|
353
401
|
];
|
|
354
402
|
// Test that the system handles these IDs gracefully
|
|
355
403
|
for (const id of specialIds) {
|
|
356
|
-
const result = await client.callTool("
|
|
404
|
+
const result = await client.callTool("get_issue", { id });
|
|
357
405
|
expect(result.content[0].type).toBe("text");
|
|
358
406
|
// Should return "not found" since we haven't created these
|
|
359
407
|
expect(result.content[0].text).toContain("not found");
|
|
@@ -380,7 +428,7 @@ updated: "2024-01-01T00:00:00.000Z"
|
|
|
380
428
|
const filePath = path.join(testEnv.projectRoot, ".trellis", "p", "P-minimal", "P-minimal.md");
|
|
381
429
|
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
382
430
|
await fs.writeFile(filePath, minimalContent, "utf-8");
|
|
383
|
-
const result = await client.callTool("
|
|
431
|
+
const result = await client.callTool("get_issue", {
|
|
384
432
|
id: "P-minimal",
|
|
385
433
|
});
|
|
386
434
|
const object = (0, utils_1.parseGetObjectResponse)(result.content[0].text);
|
|
@@ -431,17 +479,90 @@ This is a complex task with extensive documentation.`,
|
|
|
431
479
|
};
|
|
432
480
|
const content = (0, utils_1.createObjectContent)(complexData);
|
|
433
481
|
await (0, utils_1.createObjectFile)(testEnv.projectRoot, "task", "T-complex", content, { featureId: "F-parent-feature", status: "open" });
|
|
434
|
-
const result = await client.callTool("
|
|
482
|
+
const result = await client.callTool("get_issue", {
|
|
435
483
|
id: "T-complex",
|
|
436
484
|
});
|
|
437
485
|
const object = (0, utils_1.parseGetObjectResponse)(result.content[0].text);
|
|
438
486
|
expect(object.id).toBe("T-complex");
|
|
439
487
|
expect(object.prerequisites).toHaveLength(4);
|
|
440
|
-
expect(Object.keys(object.affectedFiles)).toHaveLength(
|
|
488
|
+
expect(Object.keys(object.affectedFiles)).toHaveLength(3);
|
|
489
|
+
expect(object.affectedFiles).toEqual({
|
|
490
|
+
"src/index.ts": "Updated main entry",
|
|
491
|
+
"src/utils/helper.ts": "Added utility function",
|
|
492
|
+
"tests/index.test.ts": "Added test coverage",
|
|
493
|
+
});
|
|
441
494
|
expect(object.log).toHaveLength(4);
|
|
442
495
|
expect(object.body).toContain("# Complex Task Implementation");
|
|
443
496
|
expect(object.body).toContain("This is a complex task");
|
|
444
497
|
});
|
|
445
498
|
});
|
|
499
|
+
describe("Title Updates", () => {
|
|
500
|
+
it("should update task title and retrieve updated object", async () => {
|
|
501
|
+
// Create initial task
|
|
502
|
+
const taskData = {
|
|
503
|
+
id: "T-title-update-test",
|
|
504
|
+
title: "Original Task Title",
|
|
505
|
+
status: "open",
|
|
506
|
+
priority: "medium",
|
|
507
|
+
body: "Task body content",
|
|
508
|
+
};
|
|
509
|
+
const content = (0, utils_1.createObjectContent)(taskData);
|
|
510
|
+
await (0, utils_1.createObjectFile)(testEnv.projectRoot, "task", "T-title-update-test", content, { status: "open" });
|
|
511
|
+
// Update the title
|
|
512
|
+
const updateResult = await client.callTool("update_issue", {
|
|
513
|
+
id: "T-title-update-test",
|
|
514
|
+
title: "Updated Task Title",
|
|
515
|
+
});
|
|
516
|
+
expect(updateResult.content[0].type).toBe("text");
|
|
517
|
+
expect(updateResult.content[0].text).toContain("Successfully updated object");
|
|
518
|
+
// Retrieve and verify the updated object
|
|
519
|
+
const getResult = await client.callTool("get_issue", {
|
|
520
|
+
id: "T-title-update-test",
|
|
521
|
+
});
|
|
522
|
+
const object = (0, utils_1.parseGetObjectResponse)(getResult.content[0].text);
|
|
523
|
+
expect(object.id).toBe("T-title-update-test");
|
|
524
|
+
expect(object.title).toBe("Updated Task Title");
|
|
525
|
+
expect(object.body).toBe("Task body content"); // Other fields should remain unchanged
|
|
526
|
+
expect(object.status).toBe("open");
|
|
527
|
+
expect(object.priority).toBe("medium");
|
|
528
|
+
});
|
|
529
|
+
it("should update project title while preserving other properties", async () => {
|
|
530
|
+
// Create initial project with complex data
|
|
531
|
+
const projectData = {
|
|
532
|
+
id: "P-title-update-project",
|
|
533
|
+
title: "Original Project Title",
|
|
534
|
+
status: "in-progress",
|
|
535
|
+
priority: "high",
|
|
536
|
+
prerequisites: ["P-dep1"],
|
|
537
|
+
affectedFiles: { "src/main.ts": "Main implementation" },
|
|
538
|
+
log: ["Project created", "Initial setup"],
|
|
539
|
+
body: "Project description",
|
|
540
|
+
};
|
|
541
|
+
const content = (0, utils_1.createObjectContent)(projectData);
|
|
542
|
+
await (0, utils_1.createObjectFile)(testEnv.projectRoot, "project", "P-title-update-project", content);
|
|
543
|
+
// Update only the title
|
|
544
|
+
const updateResult = await client.callTool("update_issue", {
|
|
545
|
+
id: "P-title-update-project",
|
|
546
|
+
title: "New Project Title",
|
|
547
|
+
});
|
|
548
|
+
expect(updateResult.content[0].type).toBe("text");
|
|
549
|
+
expect(updateResult.content[0].text).toContain("Successfully updated object");
|
|
550
|
+
// Retrieve and verify all properties are preserved except title
|
|
551
|
+
const getResult = await client.callTool("get_issue", {
|
|
552
|
+
id: "P-title-update-project",
|
|
553
|
+
});
|
|
554
|
+
const object = (0, utils_1.parseGetObjectResponse)(getResult.content[0].text);
|
|
555
|
+
expect(object.id).toBe("P-title-update-project"); // ID should remain unchanged
|
|
556
|
+
expect(object.title).toBe("New Project Title"); // Title should be updated
|
|
557
|
+
expect(object.status).toBe("in-progress"); // All other properties preserved
|
|
558
|
+
expect(object.priority).toBe("high");
|
|
559
|
+
expect(object.prerequisites).toEqual(["P-dep1"]);
|
|
560
|
+
expect(object.affectedFiles).toEqual({
|
|
561
|
+
"src/main.ts": "Main implementation",
|
|
562
|
+
});
|
|
563
|
+
expect(object.log).toEqual(["Project created", "Initial setup"]);
|
|
564
|
+
expect(object.body).toBe("Project description");
|
|
565
|
+
});
|
|
566
|
+
});
|
|
446
567
|
});
|
|
447
568
|
//# sourceMappingURL=getObject.e2e.test.js.map
|