Redesign social conversations and shared music
ci / api / api (push) Successful in 19m12s
ci / ts / ts (packages + web) (push) Successful in 2m44s
ci / module boundaries / boundaries (push) Successful in 18m23s
ci / contract / contract (сгенерированный код совпадает с openapi.yaml) (push) Successful in 59s
ci / db / db (push) Failing after 18s
ci / mobile / mobile (Metro-бандл Android) (push) Successful in 1m18s

This commit is contained in:
mrleo1nid committed 2026-10-23 11:27:47 +03:00
1 parent 11a16cd023
commit 1a693848f2
23 files changed
+1145 -579

No files matched your search

@@ -67,6 +67,9 @@ func TestSocialIsolationAndLifecycle(t *testing.T) {
require.NoError(t, e)
require.Equal(t, 1, inbox.Unread)
// Another user cannot acknowledge this user's notification.
require.NotNil(t, inbox.People[0].LastMessage)
require.Equal(t, m.Id, inbox.People[0].LastMessage.Id)
require.Equal(t, "Привет", inbox.People[0].LastMessage.Text)
require.NoError(t, s.action(ctx, c, gen.SocialAction{Action: "read_notification", TargetId: inbox.Notifications[0].Id}))
inbox, e = s.inbox(ctx, b)
require.NoError(t, e)
@@ -82,6 +85,11 @@ func TestSocialIsolationAndLifecycle(t *testing.T) {
before, e := s.messages(ctx, b, a, &second.Seq)
require.NoError(t, e)
require.Len(t, before, 1)
require.NoError(t, s.updateMessage(ctx, a, b, second.Id, gen.UpdateChatMessageJSONRequestBody{Action: "delete"}))
inbox, e = s.inbox(ctx, b)
require.NoError(t, e)
require.True(t, inbox.People[0].LastMessage.Deleted)
require.Empty(t, inbox.People[0].LastMessage.Text)
require.NoError(t, action(b, a, "block"))
require.NoError(t, action(a, b, "block"))
for _, id := range []uuid.UUID{a, b} {
@@ -89,6 +97,7 @@ func TestSocialIsolationAndLifecycle(t *testing.T) {
require.NoError(t, err)
require.Len(t, blocked.People, 1)
require.EqualValues(t, "blocked", blocked.People[0].Relationship)
require.Nil(t, blocked.People[0].LastMessage)
}
require.NoError(t, action(a, b, "unblock"))
_, e = s.send(ctx, a, b, gen.SendDirectMessage{Id: uuid.New(), Text: "blocked", AttachmentKind: "none"})
@@ -118,6 +127,20 @@ func TestSocialIsolationAndLifecycle(t *testing.T) {
attachment, e := s.send(ctx, a, c, gen.SendDirectMessage{Id: uuid.New(), AttachmentKind: "playlist", AttachmentId: &share})
require.NoError(t, e)
require.Equal(t, &share, attachment.AttachmentId)
_, e = s.send(ctx, a, c, gen.SendDirectMessage{Id: uuid.New(), Text: "After the music", AttachmentKind: "none"})
require.NoError(t, e)
music, e := s.filteredMessages(ctx, c, a, nil, "", true)
require.NoError(t, e)
require.Len(t, music, 1)
require.Equal(t, attachment.Id, music[0].Id)
require.False(t, music[0].Read, "browsing shared music must not acknowledge messages")
music, e = s.filteredMessages(ctx, c, a, &attachment.Seq, "", true)
require.NoError(t, e)
require.Empty(t, music)
require.NoError(t, s.updateMessage(ctx, a, c, attachment.Id, gen.UpdateChatMessageJSONRequestBody{Action: "delete"}))
music, e = s.filteredMessages(ctx, c, a, nil, "", true)
require.NoError(t, e)
require.Empty(t, music, "deleted music must not appear in shared attachments")
_, e = pool.Exec(ctx, `UPDATE playlists SET share_id=NULL WHERE id=$1`, playlist)
require.NoError(t, e)
_, e = s.send(ctx, a, c, gen.SendDirectMessage{Id: uuid.New(), AttachmentKind: "playlist", AttachmentId: &share})