From 832c3cafdfd2ab9d0bf49ac1402c37ee3aa92170 Mon Sep 17 00:00:00 2001 From: claude code agent 227 Date: Sat, 4 Jul 2026 16:22:34 +0300 Subject: [PATCH] test(mcp): update test-e2e.mjs listComments calls to the {items} shape (#328 review F1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The listComments Comment[] -> { items, resolvedThreadsHidden } shape change reached every src/host consumer but not the live-server e2e harness (run via `node test-e2e.mjs`, not the node --test gate — so the green suite missed it). The 4 calls now read .items; the post-resolve check passes includeResolved:true so it still sees the now-resolved root c1 (the default feed hides it). Co-Authored-By: Claude Opus 4.8 (1M context) --- packages/mcp/test-e2e.mjs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mcp/test-e2e.mjs b/packages/mcp/test-e2e.mjs index 7d3d78bb..6fa6192b 100644 --- a/packages/mcp/test-e2e.mjs +++ b/packages/mcp/test-e2e.mjs @@ -462,7 +462,7 @@ async function main() { check("create_comment: markdown round-trip", c1.data.content.includes("**комментарий**"), c1.data.content); const reply = await client.createComment(pageId, "Ответ на комментарий.", "page", undefined, c1.data.id); check("create_comment: reply has parent", reply.data.parentCommentId === c1.data.id); - const list = await client.listComments(pageId); + const list = (await client.listComments(pageId)).items; check("list_comments: both visible", list.length === 2, `count=${list.length}`); await client.updateComment(c1.data.id, "Обновлённый текст комментария."); const got = await client.getComment(c1.data.id); @@ -472,17 +472,19 @@ async function main() { // resolve_comment: close the top-level thread, verify resolvedAt surfaces, then reopen const resolvedRes = await client.resolveComment(c1.data.id, true); check("resolve_comment: marks resolved", resolvedRes.success === true && resolvedRes.resolved === true); - const listResolved = await client.listComments(pageId); + // c1 is now resolved; the default feed hides resolved threads, so pass + // includeResolved:true to still see it and assert its resolvedAt (#328). + const listResolved = (await client.listComments(pageId, true)).items; const c1Resolved = listResolved.find((c) => c.id === c1.data.id); check("resolve_comment: resolvedAt set in list", !!c1Resolved?.resolvedAt, `resolvedAt=${c1Resolved?.resolvedAt}`); const reopenedRes = await client.resolveComment(c1.data.id, false); check("resolve_comment: reopen succeeds", reopenedRes.resolved === false); - const listReopened = await client.listComments(pageId); + const listReopened = (await client.listComments(pageId)).items; const c1Reopened = listReopened.find((c) => c.id === c1.data.id); check("resolve_comment: resolvedAt cleared on reopen", !c1Reopened?.resolvedAt, `resolvedAt=${c1Reopened?.resolvedAt}`); await client.deleteComment(reply.data.id); await client.deleteComment(c1.data.id); - const listAfter = await client.listComments(pageId); + const listAfter = (await client.listComments(pageId)).items; check("delete_comment: comments removed", listAfter.length === 0, `count=${listAfter.length}`); } finally { if (pageId) {