big update: added reactions, groups, media share
This commit is contained in:
@@ -97,7 +97,7 @@ func TestIntegration(t *testing.T) {
|
||||
t.Fatalf("ListConversationsForUser: %v, %v", sums, err)
|
||||
}
|
||||
|
||||
msg, err := db.InsertMessage(ctx, conv.ID, u1.ID, "hello")
|
||||
msg, err := db.InsertMessage(ctx, conv.ID, u1.ID, "hello", nil)
|
||||
if err != nil {
|
||||
t.Fatalf("InsertMessage: %v", err)
|
||||
}
|
||||
@@ -111,4 +111,74 @@ func TestIntegration(t *testing.T) {
|
||||
if err := db.UpdateLastRead(ctx, conv.ID, u2.ID); err != nil {
|
||||
t.Fatalf("UpdateLastRead: %v", err)
|
||||
}
|
||||
|
||||
// Groups
|
||||
u3, err := db.CreateUser(ctx, "user3", "User Three", "hash3")
|
||||
if err != nil {
|
||||
t.Fatalf("CreateUser u3: %v", err)
|
||||
}
|
||||
group, err := db.CreateGroup(ctx, u1.ID, "Family", []int64{u2.ID, u1.ID})
|
||||
if err != nil {
|
||||
t.Fatalf("CreateGroup: %v", err)
|
||||
}
|
||||
if group.Type != "group" || group.Name != "Family" {
|
||||
t.Fatalf("CreateGroup result = %+v", group)
|
||||
}
|
||||
members, err := db.ListMembers(ctx, group.ID)
|
||||
if err != nil {
|
||||
t.Fatalf("ListMembers: %v", err)
|
||||
}
|
||||
if len(members) != 2 {
|
||||
t.Fatalf("ListMembers len = %d, want 2", len(members))
|
||||
}
|
||||
role, err := db.MemberRole(ctx, group.ID, u1.ID)
|
||||
if err != nil || role != "owner" {
|
||||
t.Fatalf("MemberRole u1 = %q, %v; want owner", role, err)
|
||||
}
|
||||
if err := db.AddMember(ctx, group.ID, u3.ID); err != nil {
|
||||
t.Fatalf("AddMember: %v", err)
|
||||
}
|
||||
if err := db.AddMember(ctx, group.ID, u3.ID); err != nil {
|
||||
t.Fatalf("AddMember idempotent: %v", err)
|
||||
}
|
||||
members, _ = db.ListMembers(ctx, group.ID)
|
||||
if len(members) != 3 {
|
||||
t.Fatalf("ListMembers after add = %d, want 3", len(members))
|
||||
}
|
||||
if err := db.RemoveMember(ctx, group.ID, u3.ID); err != nil {
|
||||
t.Fatalf("RemoveMember: %v", err)
|
||||
}
|
||||
members, _ = db.ListMembers(ctx, group.ID)
|
||||
if len(members) != 2 {
|
||||
t.Fatalf("ListMembers after remove = %d, want 2", len(members))
|
||||
}
|
||||
|
||||
// Reactions
|
||||
if err := db.AddReaction(ctx, msg.ID, u2.ID, "👍"); err != nil {
|
||||
t.Fatalf("AddReaction: %v", err)
|
||||
}
|
||||
if err := db.AddReaction(ctx, msg.ID, u2.ID, "👍"); err != nil {
|
||||
t.Fatalf("AddReaction idempotent: %v", err)
|
||||
}
|
||||
if err := db.AddReaction(ctx, msg.ID, u1.ID, "❤️"); err != nil {
|
||||
t.Fatalf("AddReaction u1: %v", err)
|
||||
}
|
||||
reactions, err := db.ReactionsForMessages(ctx, []int64{msg.ID})
|
||||
if err != nil {
|
||||
t.Fatalf("ReactionsForMessages: %v", err)
|
||||
}
|
||||
if len(reactions) != 2 {
|
||||
t.Fatalf("ReactionsForMessages len = %d, want 2", len(reactions))
|
||||
}
|
||||
if err := db.RemoveReaction(ctx, msg.ID, u2.ID, "👍"); err != nil {
|
||||
t.Fatalf("RemoveReaction: %v", err)
|
||||
}
|
||||
reactions, _ = db.ReactionsForMessages(ctx, []int64{msg.ID})
|
||||
if len(reactions) != 1 {
|
||||
t.Fatalf("ReactionsForMessages after remove = %d, want 1", len(reactions))
|
||||
}
|
||||
belongs, err := db.MessageBelongsToConversation(ctx, conv.ID, msg.ID)
|
||||
if err != nil || !belongs {
|
||||
t.Fatalf("MessageBelongsToConversation = %v, %v; want true", belongs, err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user