mirror of
https://github.com/marocchino/sticky-pull-request-comment.git
synced 2026-05-19 17:45:54 +00:00
feat: embed file content in message template via {path} placeholder (#1665)
Some checks failed
Test / test (push) Has been cancelled
Some checks failed
Test / test (push) Has been cancelled
* Initial plan
* Add prefix and suffix inputs to wrap comment body
Co-authored-by: marocchino <128431+marocchino@users.noreply.github.com>
* feat: support combining path and message inputs using $path placeholder
Co-authored-by: marocchino <128431+marocchino@users.noreply.github.com>
* feat: use {path} placeholder and remove prefix/suffix inputs
Co-authored-by: marocchino <128431+marocchino@users.noreply.github.com>
* feat: rename placeholder from {path} to {{{content}}}
Agent-Logs-Url: https://github.com/marocchino/sticky-pull-request-comment/sessions/72744cd4-264e-4c06-95d4-6fdec3446f90
Co-authored-by: marocchino <128431+marocchino@users.noreply.github.com>
* fix: when message has no {{{content}}} placeholder, return message as-is
Agent-Logs-Url: https://github.com/marocchino/sticky-pull-request-comment/sessions/b6492aa3-c55c-41f7-b43e-12cc3f2c3002
Co-authored-by: marocchino <128431+marocchino@users.noreply.github.com>
* refactor: simplify {{{content}}} replacement — drop includes guard and regex
Agent-Logs-Url: https://github.com/marocchino/sticky-pull-request-comment/sessions/81112a7b-0e6d-4f21-ad36-530af7c0259f
Co-authored-by: marocchino <128431+marocchino@users.noreply.github.com>
* chore: remove accidentally committed dist/src/* and add to .gitignore
Agent-Logs-Url: https://github.com/marocchino/sticky-pull-request-comment/sessions/7ced80dd-92a9-46ad-b667-bf5ceaa129ea
Co-authored-by: marocchino <128431+marocchino@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: marocchino <128431+marocchino@users.noreply.github.com>
This commit is contained in:
parent
64ebf23022
commit
ae583cebed
5 changed files with 88 additions and 7 deletions
|
|
@ -210,4 +210,61 @@ describe("getBody", () => {
|
|||
expect(await config.getBody()).toBe("")
|
||||
expect(core.setFailed).toHaveBeenCalledWith("glob error")
|
||||
})
|
||||
|
||||
test("embeds file content in message when {{{content}}} placeholder is used", async () => {
|
||||
const {config, core} = await loadConfig()
|
||||
vi.mocked(core.getMultilineInput).mockReturnValue(["__tests__/assets/result"])
|
||||
vi.mocked(core.getInput).mockImplementation(name => {
|
||||
if (name === "message") return "```\n{{{content}}}\n```"
|
||||
return ""
|
||||
})
|
||||
mockGlobCreate.mockResolvedValue({
|
||||
glob: vi.fn().mockResolvedValue([resolve("__tests__/assets/result")]),
|
||||
})
|
||||
expect(await config.getBody()).toBe("```\nhi there\n\n```")
|
||||
})
|
||||
|
||||
test("replaces {{{content}}} in message with file content", async () => {
|
||||
const {config, core} = await loadConfig()
|
||||
vi.mocked(core.getMultilineInput).mockReturnValue(["__tests__/assets/result"])
|
||||
vi.mocked(core.getInput).mockImplementation(name => {
|
||||
if (name === "message") return "{{{content}}}\n---\n{{{content}}}"
|
||||
return ""
|
||||
})
|
||||
mockGlobCreate.mockResolvedValue({
|
||||
glob: vi.fn().mockResolvedValue([resolve("__tests__/assets/result")]),
|
||||
})
|
||||
expect(await config.getBody()).toBe("hi there\n\n---\n{{{content}}}")
|
||||
})
|
||||
|
||||
test("uses message as body when path is provided but message has no {{{content}}} placeholder", async () => {
|
||||
const {config, core} = await loadConfig()
|
||||
vi.mocked(core.getMultilineInput).mockReturnValue(["__tests__/assets/result"])
|
||||
vi.mocked(core.getInput).mockImplementation(name => {
|
||||
if (name === "message") return "no placeholder here"
|
||||
return ""
|
||||
})
|
||||
mockGlobCreate.mockResolvedValue({
|
||||
glob: vi.fn().mockResolvedValue([resolve("__tests__/assets/result")]),
|
||||
})
|
||||
expect(await config.getBody()).toBe("no placeholder here")
|
||||
})
|
||||
|
||||
test("embeds multiple files content in message when {{{content}}} placeholder is used", async () => {
|
||||
const {config, core} = await loadConfig()
|
||||
vi.mocked(core.getMultilineInput).mockReturnValue(["__tests__/assets/*"])
|
||||
vi.mocked(core.getInput).mockImplementation(name => {
|
||||
if (name === "message") return "```\n{{{content}}}\n```"
|
||||
return ""
|
||||
})
|
||||
mockGlobCreate.mockResolvedValue({
|
||||
glob: vi
|
||||
.fn()
|
||||
.mockResolvedValue([
|
||||
resolve("__tests__/assets/result"),
|
||||
resolve("__tests__/assets/result2"),
|
||||
]),
|
||||
})
|
||||
expect(await config.getBody()).toBe("```\nhi there\n\nhey there\n\n```")
|
||||
})
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue