From d45c1f5f8dc4cf851f006dbf18abdaf52017162d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 28 May 2026 05:09:39 +0000 Subject: [PATCH] jsweep: clean add_reaction.cjs - fix JSDoc payload types and explicit pull_request_review case - Add missing @param {Record} payload JSDoc to resolveRestEndpoint - Add missing @param {Record} payload JSDoc to handleGraphQLOrUnknownEvent - Add explicit pull_request_review case in resolveRestEndpoint switch with explanatory comment - Add edge case test for pull_request_review with empty payload (61 tests total, was 60) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- actions/setup/js/add_reaction.cjs | 8 +++++++- actions/setup/js/add_reaction.test.cjs | 7 +++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/actions/setup/js/add_reaction.cjs b/actions/setup/js/add_reaction.cjs index 1c50697e86a..ad857c6324e 100644 --- a/actions/setup/js/add_reaction.cjs +++ b/actions/setup/js/add_reaction.cjs @@ -63,10 +63,11 @@ async function main() { /** * Resolve the REST API endpoint for non-discussion events. - * Returns null for discussion/discussion_comment/unsupported events (handled separately). + * Returns null for discussion/discussion_comment/pull_request_review/unsupported events (handled separately). * @param {string} eventName * @param {string} owner * @param {string} repo + * @param {Record} payload * @returns {string | null} */ function resolveRestEndpoint(eventName, owner, repo, payload) { @@ -108,6 +109,10 @@ function resolveRestEndpoint(eventName, owner, repo, payload) { return `/repos/${owner}/${repo}/pulls/comments/${reviewCommentId}/reactions`; } + case "pull_request_review": + // Reactions are not supported on review objects; skip silently. + return null; + default: return null; } @@ -126,6 +131,7 @@ function isRestReactionEvent(eventName) { * @param {string} eventName * @param {string} owner * @param {string} repo + * @param {Record} payload * @param {string} reaction */ async function handleGraphQLOrUnknownEvent(eventName, owner, repo, payload, reaction) { diff --git a/actions/setup/js/add_reaction.test.cjs b/actions/setup/js/add_reaction.test.cjs index 364a15936da..63402966f95 100644 --- a/actions/setup/js/add_reaction.test.cjs +++ b/actions/setup/js/add_reaction.test.cjs @@ -743,6 +743,13 @@ describe("add_reaction", () => { expect(mockCore.setFailed).not.toHaveBeenCalled(); }); + it("should return null without failure for pull_request_review even with empty payload", async () => { + const { resolveRestEndpoint } = await importHelpers(); + expect(resolveRestEndpoint("pull_request_review", "o", "r", {})).toBeNull(); + expect(mockCore.setFailed).not.toHaveBeenCalled(); + expect(mockCore.error).not.toHaveBeenCalled(); + }); + it("should return null for discussion events (handled via GraphQL)", async () => { global.context = { eventName: "discussion", repo: { owner: "o", repo: "r" }, payload: { discussion: { number: 3 } } }; const { resolveRestEndpoint } = await importHelpers();