Files
usememos--memos/server/router/api/v1/memo_comment_relations_test.go
wehub-resource-sync 4cddfcf2f3
Backend Tests / Tests (other) (push) Failing after 1s
Backend Tests / Static Checks (push) Failing after 2s
Backend Tests / Tests (internal) (push) Failing after 2s
Backend Tests / Tests (server) (push) Failing after 1s
Backend Tests / Tests (store) (push) Failing after 1s
Build Canary Image / build-frontend (push) Failing after 1s
Frontend Tests / Lint (push) Failing after 1s
Build Canary Image / build-push (linux/amd64) (push) Has been skipped
Build Canary Image / build-push (linux/arm64) (push) Has been skipped
Build Canary Image / merge (push) Has been skipped
Frontend Tests / Build (push) Failing after 1s
Release Please / release-please (push) Failing after 0s
Proto Linter / Lint Protos (push) Failing after 2s
chore: import upstream snapshot with attribution
2026-07-13 12:02:24 +08:00

48 lines
1.6 KiB
Go

package v1
import (
"context"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
v1pb "github.com/usememos/memos/proto/gen/api/v1"
"github.com/usememos/memos/store"
)
// TestCreateMemoComment_ReturnsParentRelation verifies that the memo returned by
// CreateMemoComment carries the COMMENT relation to its parent memo. The comment
// memo is converted before the relation is created, so without an explicit reload
// the returned memo (and the memo.comment.created webhook payload built from it)
// would have an empty Relations slice. Regression test for usememos/memos#6081.
func TestCreateMemoComment_ReturnsParentRelation(t *testing.T) {
ctx := context.Background()
svc := newIntegrationService(t)
author, err := svc.Store.CreateUser(ctx, &store.User{
Username: "author", Role: store.RoleAdmin, Email: "author@example.com",
})
require.NoError(t, err)
authorCtx := userCtx(ctx, author.ID)
parent, err := svc.CreateMemo(authorCtx, &v1pb.CreateMemoRequest{
Memo: &v1pb.Memo{Content: "parent memo", Visibility: v1pb.Visibility_PUBLIC},
})
require.NoError(t, err)
comment, err := svc.CreateMemoComment(authorCtx, &v1pb.CreateMemoCommentRequest{
Name: parent.Name,
Comment: &v1pb.Memo{Content: "a comment", Visibility: v1pb.Visibility_PUBLIC},
})
require.NoError(t, err)
require.Len(t, comment.Relations, 1, "comment memo should carry its parent relation")
rel := comment.Relations[0]
assert.Equal(t, v1pb.MemoRelation_COMMENT, rel.Type)
require.NotNil(t, rel.Memo)
require.NotNil(t, rel.RelatedMemo)
assert.Equal(t, comment.Name, rel.Memo.Name)
assert.Equal(t, parent.Name, rel.RelatedMemo.Name)
}