mirror of
https://github.com/marocchino/sticky-pull-request-comment.git
synced 2026-04-05 05:59:26 +00:00
Add number_force input and tests for PR #1652
Co-authored-by: marocchino <128431+marocchino@users.noreply.github.com>
This commit is contained in:
parent
ff69574fa9
commit
19a13e0618
4 changed files with 116 additions and 1 deletions
|
|
@ -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("")
|
||||
})
|
||||
|
|
|
|||
86
__tests__/pullRequestNumber.test.ts
Normal file
86
__tests__/pullRequestNumber.test.ts
Normal 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)
|
||||
})
|
||||
})
|
||||
|
|
@ -72,6 +72,9 @@ inputs:
|
|||
number:
|
||||
description: "pull request number for push event"
|
||||
required: false
|
||||
number_force:
|
||||
description: "pull request number for any event"
|
||||
required: false
|
||||
owner:
|
||||
description: "Another repo owner, If not set, the current repo owner is used by default. Note that when you trying changing a repo, be aware that GITHUB_TOKEN should also have permission for that repository."
|
||||
required: false
|
||||
|
|
|
|||
|
|
@ -5,7 +5,9 @@ import {create} from "@actions/glob"
|
|||
import type {ReportedContentClassifiers} from "@octokit/graphql-schema"
|
||||
|
||||
export const pullRequestNumber =
|
||||
context?.payload?.pull_request?.number || +core.getInput("number", {required: false})
|
||||
+core.getInput("number_force", {required: false}) ||
|
||||
context?.payload?.pull_request?.number ||
|
||||
+core.getInput("number", {required: false})
|
||||
|
||||
export const repo = buildRepo()
|
||||
export const header = core.getInput("header", {required: false})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue