From 6edbd54579507fa9552fb30f36c786d1c2ea18aa Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 7 Jul 2026 04:56:43 +0000 Subject: [PATCH] refactor(js): derive VALID_REACTIONS from REACTION_MAP to remove duplication MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - add_reaction_and_edit_comment.cjs: remove hardcoded VALID_REACTIONS array and derive it from the exported REACTION_MAP from add_reaction.cjs. This eliminates a duplicate list that could drift out of sync. - add_reaction.cjs: remove transient validReactions local variable; validate directly against REACTION_MAP using hasOwnProperty. Behavior is unchanged — key order is preserved (insertion order matches the original frozen array), and all 105 JS tests pass. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- actions/setup/js/add_reaction.cjs | 5 ++--- actions/setup/js/add_reaction_and_edit_comment.cjs | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/actions/setup/js/add_reaction.cjs b/actions/setup/js/add_reaction.cjs index ad857c6324e..df3a561c6de 100644 --- a/actions/setup/js/add_reaction.cjs +++ b/actions/setup/js/add_reaction.cjs @@ -30,9 +30,8 @@ async function main() { core.info(`Adding reaction: ${reaction}`); // Validate reaction type - const validReactions = Object.keys(REACTION_MAP); - if (!validReactions.includes(reaction)) { - core.setFailed(`${ERR_VALIDATION}: Invalid reaction type: ${reaction}. Valid reactions are: ${validReactions.join(", ")}`); + if (!Object.prototype.hasOwnProperty.call(REACTION_MAP, reaction)) { + core.setFailed(`${ERR_VALIDATION}: Invalid reaction type: ${reaction}. Valid reactions are: ${Object.keys(REACTION_MAP).join(", ")}`); return; } diff --git a/actions/setup/js/add_reaction_and_edit_comment.cjs b/actions/setup/js/add_reaction_and_edit_comment.cjs index d8e2ef266cd..b4ab19bc419 100644 --- a/actions/setup/js/add_reaction_and_edit_comment.cjs +++ b/actions/setup/js/add_reaction_and_edit_comment.cjs @@ -9,7 +9,7 @@ const { ERR_API, ERR_NOT_FOUND, ERR_VALIDATION } = require("./error_codes.cjs"); const { buildWorkflowRunUrl } = require("./workflow_metadata_helpers.cjs"); const { createDiscussionComment, resolveTopLevelDiscussionCommentId } = require("./github_api_helpers.cjs"); const { resolveInvocationContext } = require("./invocation_context_helpers.cjs"); -const { addReaction, addDiscussionReaction, getDiscussionNodeId } = require("./add_reaction.cjs"); +const { addReaction, addDiscussionReaction, getDiscussionNodeId, REACTION_MAP } = require("./add_reaction.cjs"); /** * Event type descriptions for comment messages @@ -25,7 +25,7 @@ const EVENT_TYPE_DESCRIPTIONS = { }; /** Valid GitHub reaction types */ -const VALID_REACTIONS = Object.freeze(["+1", "-1", "laugh", "confused", "heart", "hooray", "rocket", "eyes"]); +const VALID_REACTIONS = Object.freeze(Object.keys(REACTION_MAP)); /** * Resolve the reaction and comment API endpoints for a given event.