diff --git a/tests/group_test.go b/tests/group_test.go new file mode 100644 index 000000000..1dd8b5f54 --- /dev/null +++ b/tests/group_test.go @@ -0,0 +1,42 @@ +package controller_test + +import ( + "context" + "testing" + + "github.com/OpenIMSDK/open-im-server/v3/pkg/common/db/controller" + "github.com/OpenIMSDK/open-im-server/v3/pkg/common/db/relation" + "github.com/OpenIMSDK/open-im-server/v3/pkg/common/db/table/relationtb" + "github.com/dtm-labs/rockscache" + "github.com/redis/go-redis/v9" + "go.mongodb.org/mongo-driver/mongo" + "gorm.io/gorm" +) + +func TestDeleteGroupMemberHash(t *testing.T) { + db := gorm.DB{} + rdb := redis.UniversalClient{} + database := mongo.Database{} + hashCode := func(ctx context.Context, groupID string) (uint64, error) { return 0, nil } + + groupDatabase := controller.InitGroupDatabase(&db, rdb, &database, hashCode) + + group := &relationtb.GroupModel{GroupID: "testGroupID"} + member := &relationtb.GroupMemberModel{GroupID: "testGroupID", UserID: "testUserID"} + + groupDatabase.CreateGroup(context.Background(), []*relationtb.GroupModel{group}, []*relationtb.GroupMemberModel{member}) + + err := groupDatabase.DeleteGroupMemberHash(context.Background(), "testGroupID", "testUserID") + if err != nil { + t.Errorf("Failed to delete group member hash: %v", err) + } + + members, err := groupDatabase.FindGroupMember(context.Background(), []string{"testGroupID"}, []string{"testUserID"}, nil) + if err != nil { + t.Errorf("Failed to find group member: %v", err) + } + + if len(members) != 0 { + t.Errorf("Group member hash was not deleted") + } +}