@langadventurellc/task-trellis-mcp 1.0.1 → 1.1.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.
Files changed (207) hide show
  1. package/README.md +47 -67
  2. package/dist/__tests__/e2e/crud/createObject.e2e.test.js +64 -12
  3. package/dist/__tests__/e2e/crud/createObject.e2e.test.js.map +1 -1
  4. package/dist/__tests__/e2e/crud/listObjects.e2e.test.js +260 -90
  5. package/dist/__tests__/e2e/crud/listObjects.e2e.test.js.map +1 -1
  6. package/dist/__tests__/e2e/utils/extractObjectIds.d.ts +5 -0
  7. package/dist/__tests__/e2e/utils/extractObjectIds.d.ts.map +1 -0
  8. package/dist/__tests__/e2e/utils/extractObjectIds.js +12 -0
  9. package/dist/__tests__/e2e/utils/extractObjectIds.js.map +1 -0
  10. package/dist/__tests__/e2e/utils/index.d.ts +1 -0
  11. package/dist/__tests__/e2e/utils/index.d.ts.map +1 -1
  12. package/dist/__tests__/e2e/utils/index.js +3 -1
  13. package/dist/__tests__/e2e/utils/index.js.map +1 -1
  14. package/dist/__tests__/e2e/utils/mcpTestClient.d.ts +2 -1
  15. package/dist/__tests__/e2e/utils/mcpTestClient.d.ts.map +1 -1
  16. package/dist/__tests__/e2e/utils/mcpTestClient.js +14 -8
  17. package/dist/__tests__/e2e/utils/mcpTestClient.js.map +1 -1
  18. package/dist/__tests__/e2e/utils/parseListObjectsResponse.d.ts +3 -1
  19. package/dist/__tests__/e2e/utils/parseListObjectsResponse.d.ts.map +1 -1
  20. package/dist/__tests__/e2e/utils/parseListObjectsResponse.js +1 -0
  21. package/dist/__tests__/e2e/utils/parseListObjectsResponse.js.map +1 -1
  22. package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.d.ts +2 -0
  23. package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.d.ts.map +1 -0
  24. package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js +597 -0
  25. package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js.map +1 -0
  26. package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js +189 -0
  27. package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js.map +1 -1
  28. package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js +446 -0
  29. package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js.map +1 -1
  30. package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js +3 -7
  31. package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js.map +1 -1
  32. package/dist/configuration/ServerConfig.d.ts +1 -0
  33. package/dist/configuration/ServerConfig.d.ts.map +1 -1
  34. package/dist/models/TrellisObjectSummary.d.ts +16 -0
  35. package/dist/models/TrellisObjectSummary.d.ts.map +1 -0
  36. package/dist/models/TrellisObjectSummary.js +3 -0
  37. package/dist/models/TrellisObjectSummary.js.map +1 -0
  38. package/dist/models/index.d.ts +1 -0
  39. package/dist/models/index.d.ts.map +1 -1
  40. package/dist/models/index.js.map +1 -1
  41. package/dist/repositories/local/__tests__/getObjectFilePath.test.js +9 -6
  42. package/dist/repositories/local/__tests__/getObjectFilePath.test.js.map +1 -1
  43. package/dist/repositories/local/__tests__/getObjects.test.js +40 -10
  44. package/dist/repositories/local/__tests__/getObjects.test.js.map +1 -1
  45. package/dist/repositories/local/getObjectFilePath.d.ts.map +1 -1
  46. package/dist/repositories/local/getObjectFilePath.js +8 -4
  47. package/dist/repositories/local/getObjectFilePath.js.map +1 -1
  48. package/dist/repositories/local/getObjects.d.ts.map +1 -1
  49. package/dist/repositories/local/getObjects.js +6 -1
  50. package/dist/repositories/local/getObjects.js.map +1 -1
  51. package/dist/server.js +23 -9
  52. package/dist/server.js.map +1 -1
  53. package/dist/services/TaskTrellisService.d.ts +87 -0
  54. package/dist/services/TaskTrellisService.d.ts.map +1 -0
  55. package/dist/services/TaskTrellisService.js +3 -0
  56. package/dist/services/TaskTrellisService.js.map +1 -0
  57. package/dist/services/local/LocalTaskTrellisService.d.ts +61 -0
  58. package/dist/services/local/LocalTaskTrellisService.d.ts.map +1 -0
  59. package/dist/services/local/LocalTaskTrellisService.js +77 -0
  60. package/dist/services/local/LocalTaskTrellisService.js.map +1 -0
  61. package/dist/services/local/__tests__/appendAffectedFiles.test.d.ts +2 -0
  62. package/dist/services/local/__tests__/appendAffectedFiles.test.d.ts.map +1 -0
  63. package/dist/services/local/__tests__/appendAffectedFiles.test.js +202 -0
  64. package/dist/services/local/__tests__/appendAffectedFiles.test.js.map +1 -0
  65. package/dist/services/local/__tests__/appendModifiedFiles.test.d.ts +2 -0
  66. package/dist/services/local/__tests__/appendModifiedFiles.test.d.ts.map +1 -0
  67. package/dist/services/local/__tests__/appendModifiedFiles.test.js +161 -0
  68. package/dist/services/local/__tests__/appendModifiedFiles.test.js.map +1 -0
  69. package/dist/services/local/__tests__/appendObjectLog.test.d.ts +2 -0
  70. package/dist/services/local/__tests__/appendObjectLog.test.d.ts.map +1 -0
  71. package/dist/services/local/__tests__/appendObjectLog.test.js +104 -0
  72. package/dist/services/local/__tests__/appendObjectLog.test.js.map +1 -0
  73. package/dist/services/local/__tests__/claimTask.test.d.ts +2 -0
  74. package/dist/services/local/__tests__/claimTask.test.d.ts.map +1 -0
  75. package/dist/services/local/__tests__/claimTask.test.js +463 -0
  76. package/dist/services/local/__tests__/claimTask.test.js.map +1 -0
  77. package/dist/services/local/__tests__/completeTask.test.d.ts +2 -0
  78. package/dist/services/local/__tests__/completeTask.test.d.ts.map +1 -0
  79. package/dist/services/local/__tests__/completeTask.test.js +468 -0
  80. package/dist/services/local/__tests__/completeTask.test.js.map +1 -0
  81. package/dist/services/local/__tests__/createObject.test.d.ts +2 -0
  82. package/dist/services/local/__tests__/createObject.test.d.ts.map +1 -0
  83. package/dist/services/local/__tests__/createObject.test.js +332 -0
  84. package/dist/services/local/__tests__/createObject.test.js.map +1 -0
  85. package/dist/services/local/__tests__/listObjects.test.d.ts +2 -0
  86. package/dist/services/local/__tests__/listObjects.test.d.ts.map +1 -0
  87. package/dist/services/local/__tests__/listObjects.test.js +226 -0
  88. package/dist/services/local/__tests__/listObjects.test.js.map +1 -0
  89. package/dist/services/local/__tests__/pruneClosed.test.d.ts +2 -0
  90. package/dist/services/local/__tests__/pruneClosed.test.d.ts.map +1 -0
  91. package/dist/services/local/__tests__/pruneClosed.test.js +213 -0
  92. package/dist/services/local/__tests__/pruneClosed.test.js.map +1 -0
  93. package/dist/services/local/__tests__/replaceObjectBodyRegex.test.d.ts +2 -0
  94. package/dist/services/local/__tests__/replaceObjectBodyRegex.test.d.ts.map +1 -0
  95. package/dist/services/local/__tests__/replaceObjectBodyRegex.test.js +283 -0
  96. package/dist/services/local/__tests__/replaceObjectBodyRegex.test.js.map +1 -0
  97. package/dist/services/local/__tests__/updateObject.test.d.ts +2 -0
  98. package/dist/services/local/__tests__/updateObject.test.d.ts.map +1 -0
  99. package/dist/services/local/__tests__/updateObject.test.js +314 -0
  100. package/dist/services/local/__tests__/updateObject.test.js.map +1 -0
  101. package/dist/services/local/appendAffectedFiles.d.ts +12 -0
  102. package/dist/services/local/appendAffectedFiles.d.ts.map +1 -0
  103. package/dist/services/local/appendAffectedFiles.js +34 -0
  104. package/dist/services/local/appendAffectedFiles.js.map +1 -0
  105. package/dist/services/local/appendModifiedFiles.d.ts +15 -0
  106. package/dist/services/local/appendModifiedFiles.d.ts.map +1 -0
  107. package/dist/services/local/appendModifiedFiles.js +39 -0
  108. package/dist/services/local/appendModifiedFiles.js.map +1 -0
  109. package/dist/services/local/appendObjectLog.d.ts +8 -0
  110. package/dist/services/local/appendObjectLog.d.ts.map +1 -0
  111. package/dist/services/local/appendObjectLog.js +45 -0
  112. package/dist/services/local/appendObjectLog.js.map +1 -0
  113. package/dist/services/local/claimTask.d.ts +8 -0
  114. package/dist/services/local/claimTask.d.ts.map +1 -0
  115. package/dist/services/local/claimTask.js +118 -0
  116. package/dist/services/local/claimTask.js.map +1 -0
  117. package/dist/services/local/completeTask.d.ts +9 -0
  118. package/dist/services/local/completeTask.d.ts.map +1 -0
  119. package/dist/services/local/completeTask.js +74 -0
  120. package/dist/services/local/completeTask.js.map +1 -0
  121. package/dist/services/local/createObject.d.ts +9 -0
  122. package/dist/services/local/createObject.d.ts.map +1 -0
  123. package/dist/services/local/createObject.js +44 -0
  124. package/dist/services/local/createObject.js.map +1 -0
  125. package/dist/services/local/listObjects.d.ts +9 -0
  126. package/dist/services/local/listObjects.d.ts.map +1 -0
  127. package/dist/services/local/listObjects.js +43 -0
  128. package/dist/services/local/listObjects.js.map +1 -0
  129. package/dist/services/local/pruneClosed.d.ts +8 -0
  130. package/dist/services/local/pruneClosed.d.ts.map +1 -0
  131. package/dist/services/local/pruneClosed.js +55 -0
  132. package/dist/services/local/pruneClosed.js.map +1 -0
  133. package/dist/services/local/replaceObjectBodyRegex.d.ts +8 -0
  134. package/dist/services/local/replaceObjectBodyRegex.d.ts.map +1 -0
  135. package/dist/services/local/replaceObjectBodyRegex.js +85 -0
  136. package/dist/services/local/replaceObjectBodyRegex.js.map +1 -0
  137. package/dist/services/local/updateObject.d.ts +9 -0
  138. package/dist/services/local/updateObject.d.ts.map +1 -0
  139. package/dist/services/local/updateObject.js +53 -0
  140. package/dist/services/local/updateObject.js.map +1 -0
  141. package/dist/tools/__tests__/appendModifiedFilesTool.test.d.ts +2 -0
  142. package/dist/tools/__tests__/appendModifiedFilesTool.test.d.ts.map +1 -0
  143. package/dist/tools/__tests__/appendModifiedFilesTool.test.js +177 -0
  144. package/dist/tools/__tests__/appendModifiedFilesTool.test.js.map +1 -0
  145. package/dist/tools/__tests__/appendObjectLogTool.test.js +33 -101
  146. package/dist/tools/__tests__/appendObjectLogTool.test.js.map +1 -1
  147. package/dist/tools/__tests__/claimTaskTool.test.js +98 -311
  148. package/dist/tools/__tests__/claimTaskTool.test.js.map +1 -1
  149. package/dist/tools/__tests__/completeTaskTool.test.js +134 -184
  150. package/dist/tools/__tests__/completeTaskTool.test.js.map +1 -1
  151. package/dist/tools/__tests__/createObjectTool.test.js +61 -325
  152. package/dist/tools/__tests__/createObjectTool.test.js.map +1 -1
  153. package/dist/tools/__tests__/listObjectsTool.test.js +70 -109
  154. package/dist/tools/__tests__/listObjectsTool.test.js.map +1 -1
  155. package/dist/tools/__tests__/pruneClosedTool.test.js +87 -146
  156. package/dist/tools/__tests__/pruneClosedTool.test.js.map +1 -1
  157. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js +56 -225
  158. package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js.map +1 -1
  159. package/dist/tools/__tests__/updateObjectTool.test.js +48 -166
  160. package/dist/tools/__tests__/updateObjectTool.test.js.map +1 -1
  161. package/dist/tools/appendModifiedFilesTool.d.ts +30 -0
  162. package/dist/tools/appendModifiedFilesTool.d.ts.map +1 -0
  163. package/dist/tools/appendModifiedFilesTool.js +55 -0
  164. package/dist/tools/appendModifiedFilesTool.js.map +1 -0
  165. package/dist/tools/appendObjectLogTool.d.ts +4 -3
  166. package/dist/tools/appendObjectLogTool.d.ts.map +1 -1
  167. package/dist/tools/appendObjectLogTool.js +2 -40
  168. package/dist/tools/appendObjectLogTool.js.map +1 -1
  169. package/dist/tools/claimTaskTool.d.ts +4 -3
  170. package/dist/tools/claimTaskTool.d.ts.map +1 -1
  171. package/dist/tools/claimTaskTool.js +2 -80
  172. package/dist/tools/claimTaskTool.js.map +1 -1
  173. package/dist/tools/completeTaskTool.d.ts +5 -3
  174. package/dist/tools/completeTaskTool.d.ts.map +1 -1
  175. package/dist/tools/completeTaskTool.js +3 -29
  176. package/dist/tools/completeTaskTool.js.map +1 -1
  177. package/dist/tools/createObjectTool.d.ts +7 -6
  178. package/dist/tools/createObjectTool.d.ts.map +1 -1
  179. package/dist/tools/createObjectTool.js +11 -44
  180. package/dist/tools/createObjectTool.js.map +1 -1
  181. package/dist/tools/index.d.ts +1 -0
  182. package/dist/tools/index.d.ts.map +1 -1
  183. package/dist/tools/index.js +4 -1
  184. package/dist/tools/index.js.map +1 -1
  185. package/dist/tools/listObjectsTool.d.ts +5 -4
  186. package/dist/tools/listObjectsTool.d.ts.map +1 -1
  187. package/dist/tools/listObjectsTool.js +5 -13
  188. package/dist/tools/listObjectsTool.js.map +1 -1
  189. package/dist/tools/pruneClosedTool.d.ts +4 -3
  190. package/dist/tools/pruneClosedTool.d.ts.map +1 -1
  191. package/dist/tools/pruneClosedTool.js +2 -51
  192. package/dist/tools/pruneClosedTool.js.map +1 -1
  193. package/dist/tools/replaceObjectBodyRegexTool.d.ts +4 -3
  194. package/dist/tools/replaceObjectBodyRegexTool.d.ts.map +1 -1
  195. package/dist/tools/replaceObjectBodyRegexTool.js +2 -80
  196. package/dist/tools/replaceObjectBodyRegexTool.js.map +1 -1
  197. package/dist/tools/updateObjectTool.d.ts +5 -4
  198. package/dist/tools/updateObjectTool.d.ts.map +1 -1
  199. package/dist/tools/updateObjectTool.js +3 -49
  200. package/dist/tools/updateObjectTool.js.map +1 -1
  201. package/dist/validation/__tests__/validateParentType.test.js +5 -5
  202. package/dist/validation/__tests__/validateParentType.test.js.map +1 -1
  203. package/dist/validation/validateParentType.d.ts +1 -1
  204. package/dist/validation/validateParentType.d.ts.map +1 -1
  205. package/dist/validation/validateParentType.js +2 -5
  206. package/dist/validation/validateParentType.js.map +1 -1
  207. package/package.json +1 -1
@@ -1,361 +1,84 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const models_1 = require("../../models");
4
- const generateUniqueId_1 = require("../../utils/generateUniqueId");
5
4
  const createObjectTool_1 = require("../createObjectTool");
6
- // Mock the generateUniqueId utility
7
- jest.mock("../../utils/generateUniqueId");
8
- const mockGenerateUniqueId = generateUniqueId_1.generateUniqueId;
9
5
  describe("createObjectTool", () => {
6
+ let mockService;
10
7
  let mockRepository;
11
8
  beforeEach(() => {
9
+ mockService = {
10
+ createObject: jest.fn(),
11
+ };
12
12
  mockRepository = {
13
13
  getObjectById: jest.fn(),
14
14
  getObjects: jest.fn(),
15
15
  saveObject: jest.fn(),
16
16
  deleteObject: jest.fn(),
17
17
  };
18
- // Reset mocks
19
18
  jest.clearAllMocks();
20
19
  });
21
20
  describe("handleCreateObject", () => {
22
- const existingObjects = [
23
- {
24
- id: "P-existing-project",
25
- type: models_1.TrellisObjectType.PROJECT,
26
- title: "Existing Project",
27
- status: models_1.TrellisObjectStatus.OPEN,
28
- priority: models_1.TrellisObjectPriority.MEDIUM,
29
- prerequisites: [],
30
- affectedFiles: new Map(),
31
- log: [],
32
- schema: "v1.0",
33
- childrenIds: [],
34
- body: "Existing project body",
35
- created: "2025-01-15T10:00:00Z",
36
- updated: "2025-01-15T10:00:00Z",
37
- },
38
- ];
21
+ const mockResult = {
22
+ content: [
23
+ {
24
+ type: "text",
25
+ text: "Created object with ID: T-generated-id",
26
+ },
27
+ ],
28
+ };
39
29
  beforeEach(() => {
40
- mockRepository.getObjects.mockResolvedValue(existingObjects);
41
- mockGenerateUniqueId.mockReturnValue("T-generated-id");
30
+ mockService.createObject.mockResolvedValue(mockResult);
42
31
  });
43
- it("should create a task with minimal required parameters", async () => {
32
+ it("should delegate to service.createObject with minimal required parameters", async () => {
44
33
  const args = {
45
34
  type: "task",
46
35
  title: "Test Task",
47
36
  };
48
- const result = await (0, createObjectTool_1.handleCreateObject)(mockRepository, args);
49
- expect(mockRepository.getObjects).toHaveBeenCalledWith(true);
50
- expect(mockGenerateUniqueId).toHaveBeenCalledWith("Test Task", models_1.TrellisObjectType.TASK, ["P-existing-project"]);
51
- expect(mockRepository.saveObject).toHaveBeenCalledWith({
52
- id: "T-generated-id",
53
- type: models_1.TrellisObjectType.TASK,
54
- title: "Test Task",
55
- status: models_1.TrellisObjectStatus.DRAFT,
56
- priority: models_1.TrellisObjectPriority.MEDIUM,
57
- parent: undefined,
58
- prerequisites: [],
59
- affectedFiles: new Map(),
60
- log: [],
61
- schema: "v1.0",
62
- childrenIds: [],
63
- body: "",
64
- created: expect.any(String),
65
- updated: expect.any(String),
66
- });
67
- expect(result).toEqual({
68
- content: [
69
- {
70
- type: "text",
71
- text: "Created object with ID: T-generated-id",
72
- },
73
- ],
74
- });
37
+ const result = await (0, createObjectTool_1.handleCreateObject)(mockService, mockRepository, args);
38
+ expect(mockService.createObject).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.TASK, "Test Task", undefined, models_1.TrellisObjectPriority.MEDIUM, models_1.TrellisObjectStatus.OPEN, [], "");
39
+ expect(result).toEqual(mockResult);
75
40
  });
76
- it("should create a project with all parameters specified", async () => {
77
- mockGenerateUniqueId.mockReturnValue("P-new-project");
41
+ it("should delegate to service.createObject with all parameters specified", async () => {
78
42
  const args = {
79
43
  type: "project",
80
44
  title: "New Project",
45
+ parent: "P-parent",
81
46
  priority: "high",
82
- status: "open",
47
+ status: "in-progress",
83
48
  prerequisites: ["P-dependency1", "P-dependency2"],
84
49
  description: "This is a new project description",
85
50
  };
86
- const result = await (0, createObjectTool_1.handleCreateObject)(mockRepository, args);
87
- expect(mockGenerateUniqueId).toHaveBeenCalledWith("New Project", models_1.TrellisObjectType.PROJECT, ["P-existing-project"]);
88
- expect(mockRepository.saveObject).toHaveBeenCalledWith({
89
- id: "P-new-project",
90
- type: models_1.TrellisObjectType.PROJECT,
91
- title: "New Project",
92
- status: models_1.TrellisObjectStatus.OPEN,
93
- priority: models_1.TrellisObjectPriority.HIGH,
94
- parent: undefined,
95
- prerequisites: ["P-dependency1", "P-dependency2"],
96
- affectedFiles: new Map(),
97
- log: [],
98
- schema: "v1.0",
99
- childrenIds: [],
100
- body: "This is a new project description",
101
- created: expect.any(String),
102
- updated: expect.any(String),
103
- });
104
- expect(result).toEqual({
105
- content: [
106
- {
107
- type: "text",
108
- text: "Created object with ID: P-new-project",
109
- },
110
- ],
111
- });
51
+ const result = await (0, createObjectTool_1.handleCreateObject)(mockService, mockRepository, args);
52
+ expect(mockService.createObject).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.PROJECT, "New Project", "P-parent", models_1.TrellisObjectPriority.HIGH, models_1.TrellisObjectStatus.IN_PROGRESS, ["P-dependency1", "P-dependency2"], "This is a new project description");
53
+ expect(result).toEqual(mockResult);
112
54
  });
113
- it("should create an epic with default values", async () => {
114
- mockGenerateUniqueId.mockReturnValue("E-epic-id");
115
- // Mock parent object to exist for validation
116
- const mockParentObject = {
117
- id: "P-project",
118
- type: models_1.TrellisObjectType.PROJECT,
119
- title: "Parent Project",
120
- status: models_1.TrellisObjectStatus.OPEN,
121
- priority: models_1.TrellisObjectPriority.MEDIUM,
122
- prerequisites: [],
123
- affectedFiles: new Map(),
124
- log: [],
125
- schema: "v1.0",
126
- childrenIds: [],
127
- body: "Parent project description",
128
- created: "2025-01-15T10:00:00Z",
129
- updated: "2025-01-15T10:00:00Z",
130
- };
131
- mockRepository.getObjectById.mockResolvedValue(mockParentObject);
55
+ it("should handle default values correctly", async () => {
132
56
  const args = {
133
57
  type: "epic",
134
58
  title: "Epic Title",
135
59
  parent: "P-project",
136
60
  };
137
- const result = await (0, createObjectTool_1.handleCreateObject)(mockRepository, args);
138
- expect(mockRepository.saveObject).toHaveBeenCalledWith({
139
- id: "E-epic-id",
140
- type: models_1.TrellisObjectType.EPIC,
141
- title: "Epic Title",
142
- status: models_1.TrellisObjectStatus.DRAFT,
143
- priority: models_1.TrellisObjectPriority.MEDIUM,
144
- parent: "P-project",
145
- prerequisites: [],
146
- affectedFiles: new Map(),
147
- log: [],
148
- schema: "v1.0",
149
- childrenIds: [],
150
- body: "",
151
- created: expect.any(String),
152
- updated: expect.any(String),
153
- });
154
- expect(result).toEqual({
155
- content: [
156
- {
157
- type: "text",
158
- text: "Created object with ID: E-epic-id",
159
- },
160
- ],
161
- });
162
- });
163
- it("should create a feature with low priority", async () => {
164
- mockGenerateUniqueId.mockReturnValue("F-feature-id");
165
- const args = {
166
- type: "feature",
167
- title: "Feature Title",
168
- priority: "low",
169
- status: "in-progress",
170
- description: "Feature description",
171
- };
172
- const result = await (0, createObjectTool_1.handleCreateObject)(mockRepository, args);
173
- expect(mockRepository.saveObject).toHaveBeenCalledWith({
174
- id: "F-feature-id",
175
- type: models_1.TrellisObjectType.FEATURE,
176
- title: "Feature Title",
177
- status: models_1.TrellisObjectStatus.IN_PROGRESS,
178
- priority: models_1.TrellisObjectPriority.LOW,
179
- parent: undefined,
180
- prerequisites: [],
181
- affectedFiles: new Map(),
182
- log: [],
183
- schema: "v1.0",
184
- childrenIds: [],
185
- body: "Feature description",
186
- created: expect.any(String),
187
- updated: expect.any(String),
188
- });
189
- expect(result).toEqual({
190
- content: [
191
- {
192
- type: "text",
193
- text: "Created object with ID: F-feature-id",
194
- },
195
- ],
196
- });
61
+ await (0, createObjectTool_1.handleCreateObject)(mockService, mockRepository, args);
62
+ expect(mockService.createObject).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.EPIC, "Epic Title", "P-project", models_1.TrellisObjectPriority.MEDIUM, models_1.TrellisObjectStatus.OPEN, [], "");
197
63
  });
198
- it("should handle objects with prerequisites", async () => {
199
- mockGenerateUniqueId.mockReturnValue("T-task-with-prereqs");
200
- const args = {
201
- type: "task",
202
- title: "Task with Prerequisites",
203
- prerequisites: ["T-setup", "T-config", "F-auth"],
204
- };
205
- const result = await (0, createObjectTool_1.handleCreateObject)(mockRepository, args);
206
- expect(mockRepository.saveObject).toHaveBeenCalledWith(expect.objectContaining({
207
- prerequisites: ["T-setup", "T-config", "F-auth"],
208
- }));
209
- expect(result).toEqual({
210
- content: [
211
- {
212
- type: "text",
213
- text: "Created object with ID: T-task-with-prereqs",
214
- },
215
- ],
216
- });
217
- });
218
- it("should pass existing IDs to generateUniqueId for uniqueness checking", async () => {
219
- const multipleExistingObjects = [
220
- {
221
- id: "T-task-1",
222
- type: models_1.TrellisObjectType.TASK,
223
- title: "Task 1",
224
- status: models_1.TrellisObjectStatus.OPEN,
225
- priority: models_1.TrellisObjectPriority.MEDIUM,
226
- prerequisites: [],
227
- affectedFiles: new Map(),
228
- log: [],
229
- schema: "v1.0",
230
- childrenIds: [],
231
- body: "",
232
- created: "2025-01-15T10:00:00Z",
233
- updated: "2025-01-15T10:00:00Z",
234
- },
235
- {
236
- id: "F-feature-1",
237
- type: models_1.TrellisObjectType.FEATURE,
238
- title: "Feature 1",
239
- status: models_1.TrellisObjectStatus.DRAFT,
240
- priority: models_1.TrellisObjectPriority.HIGH,
241
- prerequisites: [],
242
- affectedFiles: new Map(),
243
- log: [],
244
- schema: "v1.0",
245
- childrenIds: [],
246
- body: "",
247
- created: "2025-01-15T10:00:00Z",
248
- updated: "2025-01-15T10:00:00Z",
249
- },
250
- ];
251
- mockRepository.getObjects.mockResolvedValue(multipleExistingObjects);
252
- mockGenerateUniqueId.mockReturnValue("P-unique-project");
253
- const args = {
254
- type: "project",
255
- title: "Unique Project",
256
- };
257
- await (0, createObjectTool_1.handleCreateObject)(mockRepository, args);
258
- expect(mockGenerateUniqueId).toHaveBeenCalledWith("Unique Project", models_1.TrellisObjectType.PROJECT, ["T-task-1", "F-feature-1"]);
259
- });
260
- it("should handle repository getObjects error gracefully", async () => {
261
- const errorMessage = "Failed to fetch existing objects";
262
- mockRepository.getObjects.mockRejectedValue(new Error(errorMessage));
263
- const args = {
264
- type: "task",
265
- title: "Test Task",
266
- };
267
- await expect((0, createObjectTool_1.handleCreateObject)(mockRepository, args)).rejects.toThrow(errorMessage);
268
- expect(mockRepository.getObjects).toHaveBeenCalledWith(true);
269
- expect(mockRepository.saveObject).not.toHaveBeenCalled();
270
- });
271
- it("should handle repository saveObject error gracefully", async () => {
272
- const errorMessage = "Failed to save object";
273
- mockRepository.saveObject.mockRejectedValue(new Error(errorMessage));
274
- const args = {
275
- type: "task",
276
- title: "Test Task",
277
- };
278
- await expect((0, createObjectTool_1.handleCreateObject)(mockRepository, args)).rejects.toThrow(errorMessage);
279
- expect(mockRepository.getObjects).toHaveBeenCalledWith(true);
280
- expect(mockRepository.saveObject).toHaveBeenCalled();
281
- });
282
- it("should handle empty existing objects array", async () => {
283
- mockRepository.getObjects.mockResolvedValue([]);
284
- mockGenerateUniqueId.mockReturnValue("T-first-task");
285
- const args = {
286
- type: "task",
287
- title: "First Task",
288
- };
289
- const result = await (0, createObjectTool_1.handleCreateObject)(mockRepository, args);
290
- expect(mockGenerateUniqueId).toHaveBeenCalledWith("First Task", models_1.TrellisObjectType.TASK, []);
291
- expect(result).toEqual({
292
- content: [
293
- {
294
- type: "text",
295
- text: "Created object with ID: T-first-task",
296
- },
297
- ],
298
- });
299
- });
300
- it("should handle all object types correctly", async () => {
64
+ it("should convert all object types correctly", async () => {
301
65
  const testCases = [
302
- {
303
- type: "project",
304
- expectedType: models_1.TrellisObjectType.PROJECT,
305
- expectedId: "P-project",
306
- },
307
- {
308
- type: "epic",
309
- expectedType: models_1.TrellisObjectType.EPIC,
310
- expectedId: "E-epic",
311
- parent: "P-existing-project",
312
- },
313
- {
314
- type: "feature",
315
- expectedType: models_1.TrellisObjectType.FEATURE,
316
- expectedId: "F-feature",
317
- },
318
- {
319
- type: "task",
320
- expectedType: models_1.TrellisObjectType.TASK,
321
- expectedId: "T-task",
322
- },
66
+ { type: "project", expectedType: models_1.TrellisObjectType.PROJECT },
67
+ { type: "epic", expectedType: models_1.TrellisObjectType.EPIC },
68
+ { type: "feature", expectedType: models_1.TrellisObjectType.FEATURE },
69
+ { type: "task", expectedType: models_1.TrellisObjectType.TASK },
323
70
  ];
324
71
  for (const testCase of testCases) {
325
- mockRepository.saveObject.mockClear();
326
- mockRepository.getObjectById.mockClear();
327
- mockGenerateUniqueId.mockReturnValue(testCase.expectedId);
328
- // Mock parent object if needed
329
- if (testCase.parent) {
330
- const mockParentObject = {
331
- id: testCase.parent,
332
- type: models_1.TrellisObjectType.PROJECT,
333
- title: "Parent Project",
334
- status: models_1.TrellisObjectStatus.OPEN,
335
- priority: models_1.TrellisObjectPriority.MEDIUM,
336
- prerequisites: [],
337
- affectedFiles: new Map(),
338
- log: [],
339
- schema: "v1.0",
340
- childrenIds: [],
341
- body: "Parent project description",
342
- created: "2025-01-15T10:00:00Z",
343
- updated: "2025-01-15T10:00:00Z",
344
- };
345
- mockRepository.getObjectById.mockResolvedValue(mockParentObject);
346
- }
72
+ mockService.createObject.mockClear();
347
73
  const args = {
348
74
  type: testCase.type,
349
75
  title: `Test ${testCase.type}`,
350
- ...(testCase.parent && { parent: testCase.parent }),
351
76
  };
352
- await (0, createObjectTool_1.handleCreateObject)(mockRepository, args);
353
- expect(mockRepository.saveObject).toHaveBeenCalledWith(expect.objectContaining({
354
- type: testCase.expectedType,
355
- }));
77
+ await (0, createObjectTool_1.handleCreateObject)(mockService, mockRepository, args);
78
+ expect(mockService.createObject).toHaveBeenCalledWith(mockRepository, testCase.expectedType, `Test ${testCase.type}`, undefined, models_1.TrellisObjectPriority.MEDIUM, models_1.TrellisObjectStatus.OPEN, [], "");
356
79
  }
357
80
  });
358
- it("should handle all status types correctly", async () => {
81
+ it("should convert all status types correctly", async () => {
359
82
  const testCases = [
360
83
  { status: "draft", expectedStatus: models_1.TrellisObjectStatus.DRAFT },
361
84
  { status: "open", expectedStatus: models_1.TrellisObjectStatus.OPEN },
@@ -367,39 +90,52 @@ describe("createObjectTool", () => {
367
90
  { status: "wont-do", expectedStatus: models_1.TrellisObjectStatus.WONT_DO },
368
91
  ];
369
92
  for (const testCase of testCases) {
370
- mockRepository.saveObject.mockClear();
371
- mockGenerateUniqueId.mockReturnValue(`T-status-test`);
93
+ mockService.createObject.mockClear();
372
94
  const args = {
373
95
  type: "task",
374
96
  title: "Status Test",
375
97
  status: testCase.status,
376
98
  };
377
- await (0, createObjectTool_1.handleCreateObject)(mockRepository, args);
378
- expect(mockRepository.saveObject).toHaveBeenCalledWith(expect.objectContaining({
379
- status: testCase.expectedStatus,
380
- }));
99
+ await (0, createObjectTool_1.handleCreateObject)(mockService, mockRepository, args);
100
+ expect(mockService.createObject).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.TASK, "Status Test", undefined, models_1.TrellisObjectPriority.MEDIUM, testCase.expectedStatus, [], "");
381
101
  }
382
102
  });
383
- it("should handle all priority types correctly", async () => {
103
+ it("should convert all priority types correctly", async () => {
384
104
  const testCases = [
385
105
  { priority: "high", expectedPriority: models_1.TrellisObjectPriority.HIGH },
386
106
  { priority: "medium", expectedPriority: models_1.TrellisObjectPriority.MEDIUM },
387
107
  { priority: "low", expectedPriority: models_1.TrellisObjectPriority.LOW },
388
108
  ];
389
109
  for (const testCase of testCases) {
390
- mockRepository.saveObject.mockClear();
391
- mockGenerateUniqueId.mockReturnValue(`T-priority-test`);
110
+ mockService.createObject.mockClear();
392
111
  const args = {
393
112
  type: "task",
394
113
  title: "Priority Test",
395
114
  priority: testCase.priority,
396
115
  };
397
- await (0, createObjectTool_1.handleCreateObject)(mockRepository, args);
398
- expect(mockRepository.saveObject).toHaveBeenCalledWith(expect.objectContaining({
399
- priority: testCase.expectedPriority,
400
- }));
116
+ await (0, createObjectTool_1.handleCreateObject)(mockService, mockRepository, args);
117
+ expect(mockService.createObject).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.TASK, "Priority Test", undefined, testCase.expectedPriority, models_1.TrellisObjectStatus.OPEN, [], "");
401
118
  }
402
119
  });
120
+ it("should handle prerequisites array", async () => {
121
+ const args = {
122
+ type: "task",
123
+ title: "Task with Prerequisites",
124
+ prerequisites: ["T-setup", "T-config", "F-auth"],
125
+ };
126
+ await (0, createObjectTool_1.handleCreateObject)(mockService, mockRepository, args);
127
+ expect(mockService.createObject).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.TASK, "Task with Prerequisites", undefined, models_1.TrellisObjectPriority.MEDIUM, models_1.TrellisObjectStatus.OPEN, ["T-setup", "T-config", "F-auth"], "");
128
+ });
129
+ it("should propagate service errors", async () => {
130
+ const errorMessage = "Service error occurred";
131
+ mockService.createObject.mockRejectedValue(new Error(errorMessage));
132
+ const args = {
133
+ type: "task",
134
+ title: "Test Task",
135
+ };
136
+ await expect((0, createObjectTool_1.handleCreateObject)(mockService, mockRepository, args)).rejects.toThrow(errorMessage);
137
+ expect(mockService.createObject).toHaveBeenCalledWith(mockRepository, models_1.TrellisObjectType.TASK, "Test Task", undefined, models_1.TrellisObjectPriority.MEDIUM, models_1.TrellisObjectStatus.OPEN, [], "");
138
+ });
403
139
  });
404
140
  });
405
141
  //# sourceMappingURL=createObjectTool.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createObjectTool.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/createObjectTool.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createObjectTool.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/createObjectTool.test.ts"],"names":[],"mappings":"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"}