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
48 lines
1.6 KiB
Go
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)
|
|
}
|