@kywi-software/mcp 0.14.0 → 0.15.1

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 (62) hide show
  1. package/AGENT-PATTERNS.md +200 -17
  2. package/README.md +39 -0
  3. package/dist/site/server.d.ts.map +1 -1
  4. package/dist/site/server.js +4 -3
  5. package/dist/site/server.js.map +1 -1
  6. package/dist/site/tools/components.d.ts.map +1 -1
  7. package/dist/site/tools/components.js +8 -4
  8. package/dist/site/tools/components.js.map +1 -1
  9. package/dist/site/tools/content.d.ts +2 -0
  10. package/dist/site/tools/content.d.ts.map +1 -1
  11. package/dist/site/tools/content.js +28 -6
  12. package/dist/site/tools/content.js.map +1 -1
  13. package/dist/site/tools/feeds.d.ts.map +1 -1
  14. package/dist/site/tools/feeds.js +5 -2
  15. package/dist/site/tools/feeds.js.map +1 -1
  16. package/dist/site/tools/layout.d.ts.map +1 -1
  17. package/dist/site/tools/layout.js +50 -4
  18. package/dist/site/tools/layout.js.map +1 -1
  19. package/dist/site/tools/media.d.ts +15 -0
  20. package/dist/site/tools/media.d.ts.map +1 -1
  21. package/dist/site/tools/media.js +50 -14
  22. package/dist/site/tools/media.js.map +1 -1
  23. package/dist/site/tools/menus.d.ts +13 -0
  24. package/dist/site/tools/menus.d.ts.map +1 -1
  25. package/dist/site/tools/menus.js +22 -4
  26. package/dist/site/tools/menus.js.map +1 -1
  27. package/dist/site/tools/users.d.ts +0 -2
  28. package/dist/site/tools/users.d.ts.map +1 -1
  29. package/dist/site/tools/users.js +8 -10
  30. package/dist/site/tools/users.js.map +1 -1
  31. package/dist/site/tools/webhooks.d.ts.map +1 -1
  32. package/dist/site/tools/webhooks.js +3 -0
  33. package/dist/site/tools/webhooks.js.map +1 -1
  34. package/package.json +4 -4
  35. package/dist/__tests__/auto-detect.test.d.ts +0 -2
  36. package/dist/__tests__/auto-detect.test.d.ts.map +0 -1
  37. package/dist/__tests__/auto-detect.test.js +0 -134
  38. package/dist/__tests__/auto-detect.test.js.map +0 -1
  39. package/dist/__tests__/config.test.d.ts +0 -2
  40. package/dist/__tests__/config.test.d.ts.map +0 -1
  41. package/dist/__tests__/config.test.js +0 -72
  42. package/dist/__tests__/config.test.js.map +0 -1
  43. package/dist/__tests__/developer-mutation.test.d.ts +0 -2
  44. package/dist/__tests__/developer-mutation.test.d.ts.map +0 -1
  45. package/dist/__tests__/developer-mutation.test.js +0 -511
  46. package/dist/__tests__/developer-mutation.test.js.map +0 -1
  47. package/dist/__tests__/developer-read-only.test.d.ts +0 -2
  48. package/dist/__tests__/developer-read-only.test.d.ts.map +0 -1
  49. package/dist/__tests__/developer-read-only.test.js +0 -192
  50. package/dist/__tests__/developer-read-only.test.js.map +0 -1
  51. package/dist/__tests__/site-content-tools.test.d.ts +0 -2
  52. package/dist/__tests__/site-content-tools.test.d.ts.map +0 -1
  53. package/dist/__tests__/site-content-tools.test.js +0 -446
  54. package/dist/__tests__/site-content-tools.test.js.map +0 -1
  55. package/dist/__tests__/site-layout-tools.test.d.ts +0 -2
  56. package/dist/__tests__/site-layout-tools.test.d.ts.map +0 -1
  57. package/dist/__tests__/site-layout-tools.test.js +0 -316
  58. package/dist/__tests__/site-layout-tools.test.js.map +0 -1
  59. package/dist/__tests__/site-other-tools.test.d.ts +0 -2
  60. package/dist/__tests__/site-other-tools.test.d.ts.map +0 -1
  61. package/dist/__tests__/site-other-tools.test.js +0 -318
  62. package/dist/__tests__/site-other-tools.test.js.map +0 -1
@@ -1,446 +0,0 @@
1
- import { describe, it, expect, vi } from 'vitest';
2
- import { handleGetContent, handleListContent, handleCreateContent, handleUpdateContent, handleDeleteContent, handlePublishContent, handleUnpublishContent, handleSubmitForReview, handleApproveContent, handleRejectContent, handleRestoreVersion, handleMoveContent, handleCopyContent, handleBulkCreate, handleBulkPublish, handleListPendingContent, getBuiltInContentTypes, } from '../site/tools/content.js';
3
- import { handleCreateWebhook, handleListWebhooks, } from '../site/tools/webhooks.js';
4
- function createMockSdk() {
5
- return {
6
- content: {
7
- getBySlug: vi.fn().mockResolvedValue({ id: '1', title: 'Test' }),
8
- getById: vi.fn().mockResolvedValue({ id: '1', title: 'Test' }),
9
- getChildren: vi.fn().mockResolvedValue([]),
10
- list: vi.fn().mockResolvedValue({ rows: [{ id: '1' }], total: 1 }),
11
- create: vi.fn().mockResolvedValue({ id: 'new', title: 'Created' }),
12
- update: vi.fn().mockResolvedValue({ id: '1', title: 'Updated' }),
13
- delete: vi.fn().mockResolvedValue(true),
14
- publish: vi.fn().mockResolvedValue({ id: '1', status: 'published' }),
15
- unpublish: vi.fn().mockResolvedValue({ id: '1', status: 'draft' }),
16
- },
17
- nav: { getTree: vi.fn(), getBreadcrumbs: vi.fn(), getChildren: vi.fn() },
18
- site: { getConfig: vi.fn(), list: vi.fn() },
19
- user: { getCurrent: vi.fn(), getById: vi.fn() },
20
- feeds: { query: vi.fn(), get: vi.fn() },
21
- };
22
- }
23
- describe('Site content tools', () => {
24
- // ─── get_content ────────────────────────────────────────────────────────────
25
- it('get_content by id', async () => {
26
- const sdk = createMockSdk();
27
- const result = await handleGetContent(sdk, { id: '1' });
28
- expect(sdk.content.getById).toHaveBeenCalledWith('1');
29
- expect(result.content[0].text).toContain('Test');
30
- });
31
- it('get_content by slug', async () => {
32
- const sdk = createMockSdk();
33
- const result = await handleGetContent(sdk, { slug: 'test-slug' });
34
- expect(sdk.content.getBySlug).toHaveBeenCalledWith('test-slug');
35
- expect(result.content[0].text).toContain('Test');
36
- });
37
- it('get_content returns error when neither id nor slug provided', async () => {
38
- const sdk = createMockSdk();
39
- const result = await handleGetContent(sdk, {});
40
- expect(result).toHaveProperty('isError', true);
41
- expect(result.content[0].text).toContain('Either id or slug must be provided');
42
- });
43
- it('get_content returns error when not found', async () => {
44
- const sdk = createMockSdk();
45
- vi.mocked(sdk.content.getById).mockResolvedValue(null);
46
- const result = await handleGetContent(sdk, { id: 'missing' });
47
- expect(result).toHaveProperty('isError', true);
48
- expect(result.content[0].text).toContain('Content not found');
49
- });
50
- // ─── list_content ───────────────────────────────────────────────────────────
51
- it('list_content returns rows and total', async () => {
52
- const sdk = createMockSdk();
53
- const result = await handleListContent(sdk, { type: 'page' });
54
- expect(sdk.content.list).toHaveBeenCalledWith('page', undefined, {});
55
- const data = JSON.parse(result.content[0].text);
56
- expect(data.rows).toHaveLength(1);
57
- expect(data.total).toBe(1);
58
- });
59
- it('list_content forwards filter options', async () => {
60
- const sdk = createMockSdk();
61
- await handleListContent(sdk, { type: 'post', status: 'draft', page: 2, limit: 10 });
62
- expect(sdk.content.list).toHaveBeenCalledWith('post', undefined, {
63
- status: 'draft',
64
- page: 2,
65
- limit: 10,
66
- });
67
- });
68
- // ─── create_content ─────────────────────────────────────────────────────────
69
- it('create_content calls sdk.content.create', async () => {
70
- const sdk = createMockSdk();
71
- const result = await handleCreateContent(sdk, { type: 'page', fields: { title: 'New' } });
72
- expect(sdk.content.create).toHaveBeenCalledWith('page', { title: 'New' });
73
- const data = JSON.parse(result.content[0].text);
74
- expect(data.id).toBe('new');
75
- });
76
- // ─── update_content ─────────────────────────────────────────────────────────
77
- it('update_content calls sdk.content.update', async () => {
78
- const sdk = createMockSdk();
79
- const result = await handleUpdateContent(sdk, { type: 'page', id: '1', fields: { title: 'Changed' } });
80
- expect(sdk.content.update).toHaveBeenCalledWith('page', '1', { title: 'Changed' });
81
- const data = JSON.parse(result.content[0].text);
82
- expect(data.id).toBe('1');
83
- });
84
- it('update_content returns error when not found', async () => {
85
- const sdk = createMockSdk();
86
- vi.mocked(sdk.content.update).mockResolvedValue(null);
87
- const result = await handleUpdateContent(sdk, { type: 'page', id: 'missing', fields: {} });
88
- expect(result).toHaveProperty('isError', true);
89
- });
90
- // ─── delete_content ─────────────────────────────────────────────────────────
91
- it('delete_content returns success', async () => {
92
- const sdk = createMockSdk();
93
- const result = await handleDeleteContent(sdk, { type: 'page', id: '1' });
94
- expect(sdk.content.delete).toHaveBeenCalledWith('1');
95
- const data = JSON.parse(result.content[0].text);
96
- expect(data.deleted).toBe(true);
97
- });
98
- it('delete_content returns error when not found', async () => {
99
- const sdk = createMockSdk();
100
- vi.mocked(sdk.content.delete).mockResolvedValue(false);
101
- const result = await handleDeleteContent(sdk, { type: 'page', id: 'missing' });
102
- expect(result).toHaveProperty('isError', true);
103
- });
104
- // ─── publish_content ────────────────────────────────────────────────────────
105
- it('publish_content calls sdk.content.publish', async () => {
106
- const sdk = createMockSdk();
107
- const result = await handlePublishContent(sdk, { type: 'page', id: '1' });
108
- expect(sdk.content.publish).toHaveBeenCalledWith('1');
109
- const data = JSON.parse(result.content[0].text);
110
- expect(data.status).toBe('published');
111
- });
112
- it('publish_content returns error when not found', async () => {
113
- const sdk = createMockSdk();
114
- vi.mocked(sdk.content.publish).mockResolvedValue(null);
115
- const result = await handlePublishContent(sdk, { type: 'page', id: 'missing' });
116
- expect(result).toHaveProperty('isError', true);
117
- });
118
- // ─── unpublish_content ──────────────────────────────────────────────────────
119
- it('unpublish_content calls sdk.content.unpublish', async () => {
120
- const sdk = createMockSdk();
121
- const result = await handleUnpublishContent(sdk, { type: 'page', id: '1' });
122
- expect(sdk.content.unpublish).toHaveBeenCalledWith('1');
123
- const data = JSON.parse(result.content[0].text);
124
- expect(data.status).toBe('draft');
125
- });
126
- it('unpublish_content returns error when not found', async () => {
127
- const sdk = createMockSdk();
128
- vi.mocked(sdk.content.unpublish).mockResolvedValue(null);
129
- const result = await handleUnpublishContent(sdk, { type: 'page', id: 'missing' });
130
- expect(result).toHaveProperty('isError', true);
131
- });
132
- // ─── Workflow tools (IU-40: stub removal — now calling real SDK) ────────────
133
- it('submit_for_review calls sdk.content.update with review status', async () => {
134
- const sdk = createMockSdk();
135
- const result = await handleSubmitForReview(sdk, { type: 'page', id: '1' });
136
- const data = JSON.parse(result.content[0].text);
137
- expect(data.submitted).toBe(true);
138
- expect(data.id).toBe('1');
139
- expect(sdk.content.update).toHaveBeenCalledWith('page', '1', { status: 'pending_review' });
140
- // Should NOT contain the old "pending in SDK" stub note
141
- expect(data.note).toBeUndefined();
142
- });
143
- it('submit_for_review returns error when content not found', async () => {
144
- const sdk = createMockSdk();
145
- vi.mocked(sdk.content.update).mockResolvedValue(null);
146
- const result = await handleSubmitForReview(sdk, { type: 'page', id: 'missing' });
147
- expect(result).toHaveProperty('isError', true);
148
- });
149
- it('approve_content calls sdk.content.update with approved status and publishes', async () => {
150
- const sdk = createMockSdk();
151
- const result = await handleApproveContent(sdk, { type: 'page', id: '1' });
152
- const data = JSON.parse(result.content[0].text);
153
- expect(data.approved).toBe(true);
154
- expect(data.id).toBe('1');
155
- expect(sdk.content.update).toHaveBeenCalledWith('page', '1', { status: 'approved' });
156
- expect(data.note).toBeUndefined();
157
- });
158
- it('approve_content returns error when content not found', async () => {
159
- const sdk = createMockSdk();
160
- vi.mocked(sdk.content.update).mockResolvedValue(null);
161
- const result = await handleApproveContent(sdk, { type: 'page', id: 'missing' });
162
- expect(result).toHaveProperty('isError', true);
163
- });
164
- it('reject_content calls sdk.content.update with rejected status and reason', async () => {
165
- const sdk = createMockSdk();
166
- const result = await handleRejectContent(sdk, { type: 'page', id: '1', reason: 'Needs revision' });
167
- const data = JSON.parse(result.content[0].text);
168
- expect(data.rejected).toBe(true);
169
- expect(data.reason).toBe('Needs revision');
170
- expect(sdk.content.update).toHaveBeenCalledWith('page', '1', { status: 'rejected', rejectionReason: 'Needs revision' });
171
- expect(data.note).toBeUndefined();
172
- });
173
- it('reject_content returns error when content not found', async () => {
174
- const sdk = createMockSdk();
175
- vi.mocked(sdk.content.update).mockResolvedValue(null);
176
- const result = await handleRejectContent(sdk, { type: 'page', id: 'missing', reason: 'Bad' });
177
- expect(result).toHaveProperty('isError', true);
178
- });
179
- it('restore_version calls sdk.content.update with versionId', async () => {
180
- const sdk = createMockSdk();
181
- const result = await handleRestoreVersion(sdk, { type: 'page', id: '1', versionId: 'v2' });
182
- const data = JSON.parse(result.content[0].text);
183
- expect(data.restored).toBe(true);
184
- expect(data.versionId).toBe('v2');
185
- expect(sdk.content.update).toHaveBeenCalledWith('page', '1', { restoreVersion: 'v2' });
186
- expect(data.note).toBeUndefined();
187
- });
188
- it('restore_version returns error when content not found', async () => {
189
- const sdk = createMockSdk();
190
- vi.mocked(sdk.content.update).mockResolvedValue(null);
191
- const result = await handleRestoreVersion(sdk, { type: 'page', id: 'missing', versionId: 'v1' });
192
- expect(result).toHaveProperty('isError', true);
193
- });
194
- it('list_pending_content calls sdk.content.list with pending_review status', async () => {
195
- const sdk = createMockSdk();
196
- const result = await handleListPendingContent(sdk, { siteId: 'site-1' });
197
- const data = JSON.parse(result.content[0].text);
198
- expect(sdk.content.list).toHaveBeenCalledWith('page', undefined, expect.objectContaining({ status: 'pending_review' }));
199
- expect(data.items).toBeDefined();
200
- expect(data.total).toBeDefined();
201
- // Should NOT contain the old "pending in SDK" stub note
202
- expect(data.note).toBeUndefined();
203
- });
204
- // ─── move_content ───────────────────────────────────────────────────────────
205
- it('move_content calls update with parentId', async () => {
206
- const sdk = createMockSdk();
207
- const result = await handleMoveContent(sdk, { type: 'page', id: '1', parentId: 'parent-2' });
208
- expect(sdk.content.update).toHaveBeenCalledWith('page', '1', { parentId: 'parent-2' });
209
- const data = JSON.parse(result.content[0].text);
210
- expect(data.id).toBe('1');
211
- });
212
- it('move_content passes sortOrder when provided', async () => {
213
- const sdk = createMockSdk();
214
- await handleMoveContent(sdk, { type: 'page', id: '1', parentId: 'p', sortOrder: 3 });
215
- expect(sdk.content.update).toHaveBeenCalledWith('page', '1', { parentId: 'p', sortOrder: 3 });
216
- });
217
- it('move_content returns error when not found', async () => {
218
- const sdk = createMockSdk();
219
- vi.mocked(sdk.content.update).mockResolvedValue(null);
220
- const result = await handleMoveContent(sdk, { type: 'page', id: 'missing', parentId: 'p' });
221
- expect(result).toHaveProperty('isError', true);
222
- });
223
- // ─── copy_content ───────────────────────────────────────────────────────────
224
- it('copy_content fetches source, creates copy with new parent', async () => {
225
- const sdk = createMockSdk();
226
- vi.mocked(sdk.content.getById).mockResolvedValue({
227
- id: 'src',
228
- title: 'Original',
229
- createdAt: '2024-01-01',
230
- updatedAt: '2024-01-02',
231
- publishedAt: '2024-01-03',
232
- body: 'content',
233
- });
234
- vi.mocked(sdk.content.create).mockResolvedValue({ id: 'copy-1', title: 'Original' });
235
- const result = await handleCopyContent(sdk, { type: 'page', id: 'src', parentId: 'new-parent' });
236
- expect(sdk.content.getById).toHaveBeenCalledWith('src');
237
- expect(sdk.content.create).toHaveBeenCalledWith('page', expect.objectContaining({
238
- title: 'Original',
239
- body: 'content',
240
- parentId: 'new-parent',
241
- status: 'draft',
242
- }));
243
- // Should not include stripped fields
244
- const createArgs = vi.mocked(sdk.content.create).mock.calls[0][1];
245
- expect(createArgs).not.toHaveProperty('id');
246
- expect(createArgs).not.toHaveProperty('createdAt');
247
- expect(createArgs).not.toHaveProperty('updatedAt');
248
- expect(createArgs).not.toHaveProperty('publishedAt');
249
- const data = JSON.parse(result.content[0].text);
250
- expect(data.id).toBe('copy-1');
251
- });
252
- it('copy_content returns error when source not found', async () => {
253
- const sdk = createMockSdk();
254
- vi.mocked(sdk.content.getById).mockResolvedValue(null);
255
- const result = await handleCopyContent(sdk, { type: 'page', id: 'missing', parentId: 'p' });
256
- expect(result).toHaveProperty('isError', true);
257
- expect(result.content[0].text).toContain('Source content not found');
258
- });
259
- // ─── copy_content deep mode (IU-40) ──────────────────────────────────────
260
- it('copy_content with deep=true copies children recursively', async () => {
261
- const sdk = createMockSdk();
262
- vi.mocked(sdk.content.getById)
263
- .mockResolvedValueOnce({
264
- id: 'src', title: 'Parent', body: 'parent content',
265
- createdAt: '2024-01-01', updatedAt: '2024-01-02', publishedAt: null,
266
- })
267
- .mockResolvedValueOnce({
268
- id: 'child-1', title: 'Child', body: 'child content',
269
- createdAt: '2024-01-01', updatedAt: '2024-01-02', publishedAt: null,
270
- });
271
- vi.mocked(sdk.content.getChildren).mockResolvedValueOnce([
272
- { id: 'child-1', title: 'Child' },
273
- ]).mockResolvedValueOnce([]);
274
- vi.mocked(sdk.content.create)
275
- .mockResolvedValueOnce({ id: 'copy-parent' })
276
- .mockResolvedValueOnce({ id: 'copy-child' });
277
- const result = await handleCopyContent(sdk, { type: 'page', id: 'src', parentId: 'new-parent', deep: true });
278
- const data = JSON.parse(result.content[0].text);
279
- expect(data.id).toBe('copy-parent');
280
- expect(data.childrenCopied).toBe(1);
281
- // Parent created first, then child
282
- expect(sdk.content.create).toHaveBeenCalledTimes(2);
283
- });
284
- it('copy_content without deep does not copy children', async () => {
285
- const sdk = createMockSdk();
286
- vi.mocked(sdk.content.getById).mockResolvedValue({
287
- id: 'src', title: 'Parent', body: 'content',
288
- createdAt: '2024-01-01', updatedAt: '2024-01-02', publishedAt: null,
289
- });
290
- vi.mocked(sdk.content.create).mockResolvedValue({ id: 'copy-1' });
291
- const result = await handleCopyContent(sdk, { type: 'page', id: 'src', parentId: 'new-parent' });
292
- const data = JSON.parse(result.content[0].text);
293
- expect(data.id).toBe('copy-1');
294
- expect(data.childrenCopied).toBeUndefined();
295
- expect(sdk.content.getChildren).not.toHaveBeenCalled();
296
- });
297
- // ─── bulk_create_content ────────────────────────────────────────────────────
298
- it('bulk_create_content creates all items', async () => {
299
- const sdk = createMockSdk();
300
- vi.mocked(sdk.content.create)
301
- .mockResolvedValueOnce({ id: 'a' })
302
- .mockResolvedValueOnce({ id: 'b' });
303
- const result = await handleBulkCreate(sdk, {
304
- type: 'page',
305
- items: [{ title: 'First' }, { title: 'Second' }],
306
- });
307
- expect(sdk.content.create).toHaveBeenCalledTimes(2);
308
- const data = JSON.parse(result.content[0].text);
309
- expect(data.created).toHaveLength(2);
310
- expect(data.errors).toHaveLength(0);
311
- });
312
- it('bulk_create_content captures individual errors', async () => {
313
- const sdk = createMockSdk();
314
- vi.mocked(sdk.content.create)
315
- .mockResolvedValueOnce({ id: 'a' })
316
- .mockRejectedValueOnce(new Error('Validation failed'));
317
- const result = await handleBulkCreate(sdk, {
318
- type: 'page',
319
- items: [{ title: 'OK' }, { title: 'Bad' }],
320
- });
321
- const data = JSON.parse(result.content[0].text);
322
- expect(data.created).toHaveLength(1);
323
- expect(data.errors).toHaveLength(1);
324
- expect(data.errors[0].index).toBe(1);
325
- });
326
- // ─── bulk_publish ───────────────────────────────────────────────────────────
327
- it('bulk_publish publishes all items', async () => {
328
- const sdk = createMockSdk();
329
- vi.mocked(sdk.content.publish)
330
- .mockResolvedValueOnce({ id: '1', status: 'published' })
331
- .mockResolvedValueOnce({ id: '2', status: 'published' });
332
- const result = await handleBulkPublish(sdk, { type: 'page', ids: ['1', '2'] });
333
- expect(sdk.content.publish).toHaveBeenCalledTimes(2);
334
- const data = JSON.parse(result.content[0].text);
335
- expect(data.published).toHaveLength(2);
336
- expect(data.errors).toHaveLength(0);
337
- });
338
- it('bulk_publish captures not-found errors', async () => {
339
- const sdk = createMockSdk();
340
- vi.mocked(sdk.content.publish)
341
- .mockResolvedValueOnce({ id: '1', status: 'published' })
342
- .mockResolvedValueOnce(null);
343
- const result = await handleBulkPublish(sdk, { type: 'page', ids: ['1', 'missing'] });
344
- const data = JSON.parse(result.content[0].text);
345
- expect(data.published).toHaveLength(1);
346
- expect(data.errors).toHaveLength(1);
347
- expect(data.errors[0].id).toBe('missing');
348
- });
349
- it('bulk_publish captures thrown errors', async () => {
350
- const sdk = createMockSdk();
351
- vi.mocked(sdk.content.publish)
352
- .mockRejectedValueOnce(new Error('Network error'));
353
- const result = await handleBulkPublish(sdk, { type: 'page', ids: ['1'] });
354
- const data = JSON.parse(result.content[0].text);
355
- expect(data.published).toHaveLength(0);
356
- expect(data.errors).toHaveLength(1);
357
- expect(data.errors[0].error).toContain('Network error');
358
- });
359
- });
360
- // ─── create_content tree placement params ────────────────────────────────────
361
- describe('create_content tree placement params', () => {
362
- it('merges parentId, isNav, and sortOrder into fields', async () => {
363
- const mockCreate = vi.fn().mockResolvedValue({ id: 'new-1', title: 'Child Page' });
364
- const mockSdk = { content: { create: mockCreate } };
365
- await handleCreateContent(mockSdk, {
366
- type: 'page',
367
- fields: { title: 'Child Page' },
368
- parentId: 'parent-uuid',
369
- isNav: true,
370
- sortOrder: 2,
371
- });
372
- expect(mockCreate).toHaveBeenCalledWith('page', {
373
- title: 'Child Page',
374
- parentId: 'parent-uuid',
375
- isNav: true,
376
- sortOrder: 2,
377
- });
378
- });
379
- });
380
- // ─── list_content_types built-ins ────────────────────────────────────────────
381
- describe('list_content_types built-ins', () => {
382
- it('always includes page and folder with isDefault: true', () => {
383
- const types = getBuiltInContentTypes();
384
- expect(types.find(t => t.name === 'page')).toMatchObject({ name: 'page', label: 'Page', isDefault: true });
385
- expect(types.find(t => t.name === 'folder')).toMatchObject({ name: 'folder', label: 'Folder', isDefault: true });
386
- expect(types).toHaveLength(2);
387
- });
388
- });
389
- // ─── Webhook tools (IU-40) ──────────────────────────────────────────────────
390
- describe('Webhook tools', () => {
391
- function createMockHttp() {
392
- return {
393
- get: vi.fn(),
394
- post: vi.fn(),
395
- put: vi.fn(),
396
- delete: vi.fn(),
397
- setToken: vi.fn(),
398
- };
399
- }
400
- it('create_webhook calls http.post with correct payload', async () => {
401
- const http = createMockHttp();
402
- vi.mocked(http.post).mockResolvedValue({ id: 'wh-1', url: 'https://example.com/hook', events: ['content.published'] });
403
- const result = await handleCreateWebhook(http, {
404
- url: 'https://example.com/hook',
405
- events: ['content.published'],
406
- secret: 'my-secret',
407
- });
408
- const data = JSON.parse(result.content[0].text);
409
- expect(data.id).toBe('wh-1');
410
- expect(data.url).toBe('https://example.com/hook');
411
- expect(http.post).toHaveBeenCalledWith('/webhooks', {
412
- url: 'https://example.com/hook',
413
- events: ['content.published'],
414
- secret: 'my-secret',
415
- });
416
- });
417
- it('create_webhook returns error on failure', async () => {
418
- const http = createMockHttp();
419
- vi.mocked(http.post).mockRejectedValue(new Error('Forbidden'));
420
- const result = await handleCreateWebhook(http, {
421
- url: 'https://example.com/hook',
422
- events: ['content.published'],
423
- });
424
- expect(result.isError).toBe(true);
425
- expect(result.content[0].text).toContain('Forbidden');
426
- });
427
- it('list_webhooks calls http.get and returns list', async () => {
428
- const http = createMockHttp();
429
- vi.mocked(http.get).mockResolvedValue([
430
- { id: 'wh-1', url: 'https://example.com/hook', events: ['content.published'] },
431
- ]);
432
- const result = await handleListWebhooks(http);
433
- const data = JSON.parse(result.content[0].text);
434
- expect(data).toHaveLength(1);
435
- expect(data[0].id).toBe('wh-1');
436
- expect(http.get).toHaveBeenCalledWith('/webhooks');
437
- });
438
- it('list_webhooks returns error on failure', async () => {
439
- const http = createMockHttp();
440
- vi.mocked(http.get).mockRejectedValue(new Error('Unauthorized'));
441
- const result = await handleListWebhooks(http);
442
- expect(result.isError).toBe(true);
443
- expect(result.content[0].text).toContain('Unauthorized');
444
- });
445
- });
446
- //# sourceMappingURL=site-content-tools.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"site-content-tools.test.js","sourceRoot":"","sources":["../../src/__tests__/site-content-tools.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=site-layout-tools.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"site-layout-tools.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/site-layout-tools.test.ts"],"names":[],"mappings":""}