diff --git a/__tests__/comment.test.ts b/__tests__/comment.test.ts index 7b926b1..3d7146c 100644 --- a/__tests__/comment.test.ts +++ b/__tests__/comment.test.ts @@ -5,6 +5,7 @@ import { createComment, deleteComment, findPreviousComment, + getBodyOf, updateComment } from "../src/comment" @@ -177,3 +178,42 @@ it("deleteComment", async () => { repo: "sticky-pull-request-comment" }) }) + +describe("getBodyOf", () => { + const nullPrevious = {} + const simplePrevious = { + body: "hello there\n" + } + const detailsPrevious = { + body: ` +
+ title + + content +
+ + ` + } + const replaced = ` +
+ title + + content +
+ + ` + test.each` + append | hideDetails | previous | expected + ${false} | ${false} | ${detailsPrevious} | ${undefined} + ${true} | ${false} | ${nullPrevious} | ${undefined} + ${true} | ${false} | ${detailsPrevious} | ${detailsPrevious.body} + ${true} | ${true} | ${nullPrevious} | ${undefined} + ${true} | ${true} | ${simplePrevious} | ${simplePrevious.body} + ${true} | ${true} | ${detailsPrevious} | ${replaced} + `( + "receive $previous, $append, $hideDetails and returns $expected", + ({append, hideDetails, previous, expected}) => { + expect(getBodyOf(previous, append, hideDetails)).toEqual(expected) + } + ) +}) diff --git a/__tests__/config.test.ts b/__tests__/config.test.ts index c928ed1..20943f7 100644 --- a/__tests__/config.test.ts +++ b/__tests__/config.test.ts @@ -4,6 +4,7 @@ beforeEach(() => { process.env["INPUT_APPEND"] = "false" process.env["INPUT_RECREATE"] = "false" process.env["INPUT_DELETE"] = "false" + process.env["INPUT_HIDE_DETAILS"] = "false" process.env["INPUT_GITHUB_TOKEN"] = "some-token" }) @@ -17,6 +18,7 @@ afterEach(() => { delete process.env["INPUT_APPEND"] delete process.env["INPUT_RECREATE"] delete process.env["INPUT_DELETE"] + delete process.env["INPUT_HIDE_DETAILS"] delete process.env["INPUT_GITHUB_TOKEN"] delete process.env["INPUT_PATH"] }) @@ -31,6 +33,7 @@ test("repo", () => { append: false, recreate: false, deleteOldComment: false, + hideDetails: false, githubToken: "some-token" }) }) @@ -44,6 +47,7 @@ test("header", () => { append: false, recreate: false, deleteOldComment: false, + hideDetails: false, githubToken: "some-token" }) }) @@ -57,6 +61,7 @@ test("append", () => { append: true, recreate: false, deleteOldComment: false, + hideDetails: false, githubToken: "some-token" }) }) @@ -70,6 +75,7 @@ test("recreate", () => { append: false, recreate: true, deleteOldComment: false, + hideDetails: false, githubToken: "some-token" }) }) @@ -83,6 +89,21 @@ test("delete", () => { append: false, recreate: false, deleteOldComment: true, + hideDetails: false, + githubToken: "some-token" + }) +}) +test("hideDetails", () => { + process.env["INPUT_HIDE_DETAILS"] = "true" + expect(require("../src/config")).toMatchObject({ + pullRequestNumber: expect.any(Number), + repo: {owner: "marocchino", repo: "stick-pull-request-comment"}, + body: "", + header: "", + append: false, + recreate: false, + deleteOldComment: false, + hideDetails: true, githubToken: "some-token" }) }) @@ -97,6 +118,7 @@ describe("path", () => { append: false, recreate: false, deleteOldComment: false, + hideDetails: false, githubToken: "some-token" }) }) @@ -111,6 +133,7 @@ describe("path", () => { append: false, recreate: false, deleteOldComment: false, + hideDetails: false, githubToken: "some-token" }) }) @@ -126,6 +149,7 @@ test("message", () => { append: false, recreate: false, deleteOldComment: false, + hideDetails: false, githubToken: "some-token" }) }) diff --git a/action.yml b/action.yml index a9d927c..8e516a4 100644 --- a/action.yml +++ b/action.yml @@ -18,6 +18,10 @@ inputs: description: "delete the previously created comment. Only `true` is allowed. Just skip this item when you don't need it." default: "false" required: false + hide_details: + description: "hide summary tags in the previously created comment. Only `true` is allowed. Just skip this item when you don't need it." + default: "false" + required: false message: description: "comment message" required: false diff --git a/src/comment.ts b/src/comment.ts index b58fe07..862da94 100644 --- a/src/comment.ts +++ b/src/comment.ts @@ -81,3 +81,19 @@ export async function deleteComment( comment_id }) } + +export function getBodyOf( + previous: {body?: string}, + append: boolean, + hideDetails: boolean +): string | undefined { + if (!append) { + return undefined + } + + if (!hideDetails) { + return previous.body + } + + return previous.body?.replace(/()/g, "$1$2") +} diff --git a/src/config.ts b/src/config.ts index 5e2f9a0..acd0f6a 100644 --- a/src/config.ts +++ b/src/config.ts @@ -9,6 +9,9 @@ export const pullRequestNumber = export const repo = buildRepo() export const header = core.getInput("header", {required: false}) export const append = core.getBooleanInput("append", {required: true}) +export const hideDetails = core.getBooleanInput("hide_details", { + required: true +}) export const recreate = core.getBooleanInput("recreate", {required: true}) export const deleteOldComment = core.getBooleanInput("delete", {required: true}) export const githubToken = core.getInput("GITHUB_TOKEN", {required: true}) diff --git a/src/main.ts b/src/main.ts index 8307f70..ac8fa3f 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,6 +6,7 @@ import { deleteOldComment, githubToken, header, + hideDetails, pullRequestNumber, recreate, repo @@ -14,6 +15,7 @@ import { createComment, deleteComment, findPreviousComment, + getBodyOf, updateComment } from "./comment" @@ -50,7 +52,7 @@ async function run(): Promise { return } - const previousBody = append ? previous.body : undefined + const previousBody = getBodyOf(previous, append, hideDetails) if (recreate) { await deleteComment(octokit, repo, previous.id) await createComment(