Skip to content

Commit 13ccdab

Browse files
km-trclaude
andauthored
fix: correct assignee trigger test to handle different assignee properly (anthropics#178)
* fix: use direct assignee field * fix: correct assignee trigger test to handle different assignee properly The test was failing because the mockIssueAssignedContext was missing the top-level assignee field that the trigger validation logic checks. Added the missing assignee field to the mock context and updated the test to properly override both the top-level assignee and issue.assignee fields when testing assignment to a different user. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Adjust IssuesAssignedEvent import position (#2) --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent bcf2fe9 commit 13ccdab

File tree

4 files changed

+21
-2
lines changed

4 files changed

+21
-2
lines changed

src/github/context.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import * as github from "@actions/github";
22
import type {
33
IssuesEvent,
4+
IssuesAssignedEvent,
45
IssueCommentEvent,
56
PullRequestEvent,
67
PullRequestReviewEvent,
@@ -147,3 +148,9 @@ export function isPullRequestReviewCommentEvent(
147148
): context is ParsedGitHubContext & { payload: PullRequestReviewCommentEvent } {
148149
return context.eventName === "pull_request_review_comment";
149150
}
151+
152+
export function isIssuesAssignedEvent(
153+
context: ParsedGitHubContext,
154+
): context is ParsedGitHubContext & { payload: IssuesAssignedEvent } {
155+
return isIssuesEvent(context) && context.eventAction === "assigned";
156+
}

src/github/validation/trigger.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import * as core from "@actions/core";
44
import {
55
isIssuesEvent,
6+
isIssuesAssignedEvent,
67
isIssueCommentEvent,
78
isPullRequestEvent,
89
isPullRequestReviewEvent,
@@ -22,10 +23,10 @@ export function checkContainsTrigger(context: ParsedGitHubContext): boolean {
2223
}
2324

2425
// Check for assignee trigger
25-
if (isIssuesEvent(context) && context.eventAction === "assigned") {
26+
if (isIssuesAssignedEvent(context)) {
2627
// Remove @ symbol from assignee_trigger if present
2728
let triggerUser = assigneeTrigger.replace(/^@/, "");
28-
const assigneeUsername = context.payload.issue.assignee?.login || "";
29+
const assigneeUsername = context.payload.assignee?.login || "";
2930

3031
if (triggerUser && assigneeUsername === triggerUser) {
3132
console.log(`Issue assigned to trigger user '${triggerUser}'`);

test/mockContext.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,12 @@ export const mockIssueAssignedContext: ParsedGitHubContext = {
9191
actor: "admin-user",
9292
payload: {
9393
action: "assigned",
94+
assignee: {
95+
login: "claude-bot",
96+
id: 11111,
97+
avatar_url: "https://avatars.githubusercontent.com/u/11111",
98+
html_url: "https://github.com/claude-bot",
99+
},
94100
issue: {
95101
number: 123,
96102
title: "Feature: Add dark mode support",

test/trigger-validation.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,11 @@ describe("checkContainsTrigger", () => {
8787
...mockIssueAssignedContext,
8888
payload: {
8989
...mockIssueAssignedContext.payload,
90+
assignee: {
91+
...(mockIssueAssignedContext.payload as IssuesAssignedEvent)
92+
.assignee,
93+
login: "otherUser",
94+
},
9095
issue: {
9196
...(mockIssueAssignedContext.payload as IssuesAssignedEvent).issue,
9297
assignee: {

0 commit comments

Comments
 (0)