From 68675ca76dffd80a6ed92619450ebe58939d4e4d Mon Sep 17 00:00:00 2001 From: Justin Gasper Date: Wed, 30 Sep 2026 09:56:10 +1000 Subject: [PATCH] PM-6457 Show edit timestamps on forum posts --- .../src/components/ChallengeForum.spec.tsx | 34 +++++++++++++++++++ .../src/components/ChallengeForum.tsx | 7 ++++ 2 files changed, 41 insertions(+) diff --git a/src/apps/opportunities/src/components/ChallengeForum.spec.tsx b/src/apps/opportunities/src/components/ChallengeForum.spec.tsx index d371310ea..4bd6d986d 100644 --- a/src/apps/opportunities/src/components/ChallengeForum.spec.tsx +++ b/src/apps/opportunities/src/components/ChallengeForum.spec.tsx @@ -581,6 +581,40 @@ describe('ChallengeForum', () => { .toBeUndefined() }) + it('shows an edit timestamp for changed starter posts and replies only', async () => { + const editedAt = '2026-06-08T12:30:00.000Z' + topicDetail = { + posts: [{ + ...starterPost, + replies: [{ ...starterPost.replies[0], updatedAt: editedAt }], + updatedAt: editedAt, + }], + topic: announcement, + } + const { container }: RenderResult = render( + , + ) + await act(async () => fireEvent.click(container.querySelector('.topicOverlay') as HTMLButtonElement)) + expect(screen.getAllByText(/^Edited:/)) + .toHaveLength(2) + screen.getAllByText(/^Edited:/) + .forEach(timestamp => { + expect(timestamp) + .toHaveAttribute('datetime', editedAt) + expect(timestamp) + .toHaveTextContent(formatForumDate(editedAt)) + }) + }) + + it('does not mark unchanged posts as edited', async () => { + const { container }: RenderResult = render( + , + ) + await act(async () => fireEvent.click(container.querySelector('.topicOverlay') as HTMLButtonElement)) + expect(screen.queryByText(/^Edited:/)) + .not.toBeInTheDocument() + }) + it('opens the topic when the upper card is clicked, keeping the footer for actions', async () => { const { container }: RenderResult = render( , diff --git a/src/apps/opportunities/src/components/ChallengeForum.tsx b/src/apps/opportunities/src/components/ChallengeForum.tsx index 4af910bdb..9cd86e012 100644 --- a/src/apps/opportunities/src/components/ChallengeForum.tsx +++ b/src/apps/opportunities/src/components/ChallengeForum.tsx @@ -1197,6 +1197,13 @@ const ForumPostCard: FC<{ {' '} {formatForumDate(post.createdAt)} + {!post.deleted && Date.parse(post.updatedAt) > Date.parse(post.createdAt) && ( + + )} {props.parent && ( Replying to