mirror of
https://github.com/mattermost/mattermost.git
synced 2026-08-27 05:37:15 -05:00
Show priority badges in permalink previews (#35532)
* Add agent-browser skill * Update AGENTS.CURSOR.md * Add guidance for localization * Fix permalink preview priority badges Co-authored-by: Nick Misasi <nick13misasi@gmail.com> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com>
This commit is contained in:
co-authored by
Nick Misasi
Cursor Agent
parent
1e47436308
commit
a81c8c2993
@@ -905,7 +905,9 @@ func (a *App) getLinkMetadataForPermalink(rctx request.CTX, requestURL string) (
|
||||
permalink = &model.Permalink{PreviewPost: model.NewPreviewPost(referencedPost, referencedTeam, referencedChannel)}
|
||||
} else {
|
||||
// referencedPost does not contain a permalink: we get its metadata
|
||||
referencedPostWithMetadata := a.PreparePostForClientWithEmbedsAndImages(rctx, referencedPost, &model.PreparePostForClientOpts{})
|
||||
referencedPostWithMetadata := a.PreparePostForClientWithEmbedsAndImages(rctx, referencedPost, &model.PreparePostForClientOpts{
|
||||
IncludePriority: true,
|
||||
})
|
||||
permalink = &model.Permalink{PreviewPost: model.NewPreviewPost(referencedPostWithMetadata, referencedTeam, referencedChannel)}
|
||||
}
|
||||
|
||||
|
||||
@@ -779,6 +779,51 @@ func TestPreparePostForClient(t *testing.T) {
|
||||
require.Equal(t, referencedPost.Id, preview.PostID)
|
||||
})
|
||||
|
||||
t.Run("permalink preview includes post priority metadata", func(t *testing.T) {
|
||||
th := setup(t)
|
||||
|
||||
th.App.UpdateConfig(func(cfg *model.Config) {
|
||||
*cfg.ServiceSettings.SiteURL = "http://mymattermost.com"
|
||||
*cfg.ServiceSettings.PostPriority = true
|
||||
})
|
||||
|
||||
th.Context.Session().UserId = th.BasicUser.Id
|
||||
|
||||
referencedPost, _, err := th.App.CreatePost(th.Context, &model.Post{
|
||||
UserId: th.BasicUser.Id,
|
||||
ChannelId: th.BasicChannel.Id,
|
||||
Message: "hello world with priority",
|
||||
Metadata: &model.PostMetadata{
|
||||
Priority: &model.PostPriority{
|
||||
Priority: model.NewPointer(model.PostPriorityUrgent),
|
||||
RequestedAck: model.NewPointer(true),
|
||||
},
|
||||
},
|
||||
}, th.BasicChannel, model.CreatePostFlags{SetOnline: true})
|
||||
require.Nil(t, err)
|
||||
referencedPost.Metadata.Embeds = nil
|
||||
|
||||
link := fmt.Sprintf("%s/%s/pl/%s", *th.App.Config().ServiceSettings.SiteURL, th.BasicTeam.Name, referencedPost.Id)
|
||||
|
||||
previewPost, _, err := th.App.CreatePost(th.Context, &model.Post{
|
||||
UserId: th.BasicUser.Id,
|
||||
ChannelId: th.BasicChannel.Id,
|
||||
Message: link,
|
||||
}, th.BasicChannel, model.CreatePostFlags{SetOnline: true})
|
||||
require.Nil(t, err)
|
||||
previewPost.Metadata.Embeds = nil
|
||||
|
||||
clientPost := th.App.PreparePostForClientWithEmbedsAndImages(th.Context, previewPost, &model.PreparePostForClientOpts{})
|
||||
firstEmbed := clientPost.Metadata.Embeds[0]
|
||||
preview := firstEmbed.Data.(*model.PreviewPost)
|
||||
|
||||
require.Equal(t, referencedPost.Id, preview.PostID)
|
||||
require.NotNil(t, preview.Post.Metadata)
|
||||
require.NotNil(t, preview.Post.Metadata.Priority)
|
||||
assert.Equal(t, model.PostPriorityUrgent, *preview.Post.Metadata.Priority.Priority)
|
||||
assert.True(t, *preview.Post.Metadata.Priority.RequestedAck)
|
||||
})
|
||||
|
||||
t.Run("permalink previews for direct and group messages", func(t *testing.T) {
|
||||
th := setup(t)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user