Add number_force input and tests for PR #1652

Co-authored-by: marocchino <128431+marocchino@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-03-13 12:16:18 +00:00 committed by marocchino
parent e5362d0016
commit 29063774a9
No known key found for this signature in database
GPG key ID: F54107506CCF18D0
2 changed files with 110 additions and 0 deletions

View file

@ -78,6 +78,7 @@ afterEach(() => {
delete process.env["INPUT_IGNORE_EMPTY"]
delete process.env["INPUT_SKIP_UNCHANGED"]
delete process.env["INPUT_FOLLOW_SYMBOLIC_LINKS"]
delete process.env["INPUT_NUMBER_FORCE"]
})
test("repo", async () => {
@ -428,3 +429,26 @@ test("skip_unchanged", async () => {
})
expect(await config.getBody()).toEqual("")
})
test("number_force", async () => {
process.env["INPUT_NUMBER_FORCE"] = "456"
mockConfig.pullRequestNumber = 456
const config = await import('../src/config')
expect(config).toMatchObject({
pullRequestNumber: 456,
repo: {owner: "marocchino", repo: "stick-pull-request-comment"},
header: "",
append: false,
recreate: false,
deleteOldComment: false,
hideOldComment: false,
hideAndRecreate: false,
hideClassify: "OUTDATED",
hideDetails: false,
githubToken: "some-token",
ignoreEmpty: false,
skipUnchanged: false
})
expect(await config.getBody()).toEqual("")
})

View file

@ -0,0 +1,86 @@
import {afterEach, describe, expect, test, vi} from "vitest"
const mockGetInput = vi.fn().mockReturnValue("")
vi.mock("@actions/core", () => ({
getInput: mockGetInput,
getBooleanInput: vi.fn().mockReturnValue(false),
getMultilineInput: vi.fn().mockReturnValue([]),
setFailed: vi.fn(),
info: vi.fn(),
}))
const mockContext: {payload: Record<string, unknown>; repo: {owner: string; repo: string}} = {
payload: {},
repo: {owner: "marocchino", repo: "sticky-pull-request-comment"},
}
vi.mock("@actions/github", () => ({
context: mockContext,
}))
vi.mock("@actions/glob", () => ({
create: vi.fn(),
}))
afterEach(() => {
vi.resetModules()
mockContext.payload = {}
mockGetInput.mockReturnValue("")
})
describe("pullRequestNumber priority", () => {
test("uses number_force when set, overriding pull_request event number", async () => {
mockContext.payload = {pull_request: {number: 100}}
mockGetInput.mockImplementation((name: string) => {
if (name === "number_force") return "999"
if (name === "number") return "200"
return ""
})
const {pullRequestNumber} = await import("../src/config")
expect(pullRequestNumber).toBe(999)
})
test("uses number_force when set, overriding number input", async () => {
mockContext.payload = {}
mockGetInput.mockImplementation((name: string) => {
if (name === "number_force") return "999"
if (name === "number") return "200"
return ""
})
const {pullRequestNumber} = await import("../src/config")
expect(pullRequestNumber).toBe(999)
})
test("uses pull_request event number when number_force is not set", async () => {
mockContext.payload = {pull_request: {number: 100}}
mockGetInput.mockImplementation((name: string) => {
if (name === "number") return "200"
return ""
})
const {pullRequestNumber} = await import("../src/config")
expect(pullRequestNumber).toBe(100)
})
test("uses number input when number_force and pull_request event number are not set", async () => {
mockContext.payload = {}
mockGetInput.mockImplementation((name: string) => {
if (name === "number") return "200"
return ""
})
const {pullRequestNumber} = await import("../src/config")
expect(pullRequestNumber).toBe(200)
})
test("returns 0 when none of number_force, pull_request number, or number are set", async () => {
mockContext.payload = {}
mockGetInput.mockReturnValue("")
const {pullRequestNumber} = await import("../src/config")
expect(pullRequestNumber).toBe(0)
})
})