hide details

This commit is contained in:
marocchino 2021-09-29 02:50:40 +09:00
parent 53e089cfe2
commit 4a83f71279
No known key found for this signature in database
GPG key ID: AFF521DBDB122570
6 changed files with 90 additions and 1 deletions

View file

@ -5,6 +5,7 @@ import {
createComment, createComment,
deleteComment, deleteComment,
findPreviousComment, findPreviousComment,
getBodyOf,
updateComment updateComment
} from "../src/comment" } from "../src/comment"
@ -177,3 +178,42 @@ it("deleteComment", async () => {
repo: "sticky-pull-request-comment" repo: "sticky-pull-request-comment"
}) })
}) })
describe("getBodyOf", () => {
const nullPrevious = {}
const simplePrevious = {
body: "hello there\n<!-- Sticky Pull Request CommentTypeA -->"
}
const detailsPrevious = {
body: `
<details open>
<summary>title</summary>
content
</details>
<!-- Sticky Pull Request CommentTypeA -->
`
}
const replaced = `
<details>
<summary>title</summary>
content
</details>
<!-- Sticky Pull Request CommentTypeA -->
`
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)
}
)
})

View file

@ -4,6 +4,7 @@ beforeEach(() => {
process.env["INPUT_APPEND"] = "false" process.env["INPUT_APPEND"] = "false"
process.env["INPUT_RECREATE"] = "false" process.env["INPUT_RECREATE"] = "false"
process.env["INPUT_DELETE"] = "false" process.env["INPUT_DELETE"] = "false"
process.env["INPUT_HIDE_DETAILS"] = "false"
process.env["INPUT_GITHUB_TOKEN"] = "some-token" process.env["INPUT_GITHUB_TOKEN"] = "some-token"
}) })
@ -17,6 +18,7 @@ afterEach(() => {
delete process.env["INPUT_APPEND"] delete process.env["INPUT_APPEND"]
delete process.env["INPUT_RECREATE"] delete process.env["INPUT_RECREATE"]
delete process.env["INPUT_DELETE"] delete process.env["INPUT_DELETE"]
delete process.env["INPUT_HIDE_DETAILS"]
delete process.env["INPUT_GITHUB_TOKEN"] delete process.env["INPUT_GITHUB_TOKEN"]
delete process.env["INPUT_PATH"] delete process.env["INPUT_PATH"]
}) })
@ -31,6 +33,7 @@ test("repo", () => {
append: false, append: false,
recreate: false, recreate: false,
deleteOldComment: false, deleteOldComment: false,
hideDetails: false,
githubToken: "some-token" githubToken: "some-token"
}) })
}) })
@ -44,6 +47,7 @@ test("header", () => {
append: false, append: false,
recreate: false, recreate: false,
deleteOldComment: false, deleteOldComment: false,
hideDetails: false,
githubToken: "some-token" githubToken: "some-token"
}) })
}) })
@ -57,6 +61,7 @@ test("append", () => {
append: true, append: true,
recreate: false, recreate: false,
deleteOldComment: false, deleteOldComment: false,
hideDetails: false,
githubToken: "some-token" githubToken: "some-token"
}) })
}) })
@ -70,6 +75,7 @@ test("recreate", () => {
append: false, append: false,
recreate: true, recreate: true,
deleteOldComment: false, deleteOldComment: false,
hideDetails: false,
githubToken: "some-token" githubToken: "some-token"
}) })
}) })
@ -83,6 +89,21 @@ test("delete", () => {
append: false, append: false,
recreate: false, recreate: false,
deleteOldComment: true, 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" githubToken: "some-token"
}) })
}) })
@ -97,6 +118,7 @@ describe("path", () => {
append: false, append: false,
recreate: false, recreate: false,
deleteOldComment: false, deleteOldComment: false,
hideDetails: false,
githubToken: "some-token" githubToken: "some-token"
}) })
}) })
@ -111,6 +133,7 @@ describe("path", () => {
append: false, append: false,
recreate: false, recreate: false,
deleteOldComment: false, deleteOldComment: false,
hideDetails: false,
githubToken: "some-token" githubToken: "some-token"
}) })
}) })
@ -126,6 +149,7 @@ test("message", () => {
append: false, append: false,
recreate: false, recreate: false,
deleteOldComment: false, deleteOldComment: false,
hideDetails: false,
githubToken: "some-token" githubToken: "some-token"
}) })
}) })

View file

@ -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." description: "delete the previously created comment. Only `true` is allowed. Just skip this item when you don't need it."
default: "false" default: "false"
required: 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: message:
description: "comment message" description: "comment message"
required: false required: false

View file

@ -81,3 +81,19 @@ export async function deleteComment(
comment_id 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(/(<details.*?)\s*\bopen\b(.*>)/g, "$1$2")
}

View file

@ -9,6 +9,9 @@ export const pullRequestNumber =
export const repo = buildRepo() export const repo = buildRepo()
export const header = core.getInput("header", {required: false}) export const header = core.getInput("header", {required: false})
export const append = core.getBooleanInput("append", {required: true}) 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 recreate = core.getBooleanInput("recreate", {required: true})
export const deleteOldComment = core.getBooleanInput("delete", {required: true}) export const deleteOldComment = core.getBooleanInput("delete", {required: true})
export const githubToken = core.getInput("GITHUB_TOKEN", {required: true}) export const githubToken = core.getInput("GITHUB_TOKEN", {required: true})

View file

@ -6,6 +6,7 @@ import {
deleteOldComment, deleteOldComment,
githubToken, githubToken,
header, header,
hideDetails,
pullRequestNumber, pullRequestNumber,
recreate, recreate,
repo repo
@ -14,6 +15,7 @@ import {
createComment, createComment,
deleteComment, deleteComment,
findPreviousComment, findPreviousComment,
getBodyOf,
updateComment updateComment
} from "./comment" } from "./comment"
@ -50,7 +52,7 @@ async function run(): Promise<undefined> {
return return
} }
const previousBody = append ? previous.body : undefined const previousBody = getBodyOf(previous, append, hideDetails)
if (recreate) { if (recreate) {
await deleteComment(octokit, repo, previous.id) await deleteComment(octokit, repo, previous.id)
await createComment( await createComment(