memo_test.go 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package teststore
  2. import (
  3. "context"
  4. "testing"
  5. "github.com/stretchr/testify/require"
  6. "github.com/usememos/memos/store"
  7. storepb "github.com/usememos/memos/proto/gen/store"
  8. )
  9. func TestMemoStore(t *testing.T) {
  10. ctx := context.Background()
  11. ts := NewTestingStore(ctx, t)
  12. user, err := createTestingHostUser(ctx, ts)
  13. require.NoError(t, err)
  14. memoCreate := &store.Memo{
  15. UID: "test-resource-name",
  16. CreatorID: user.ID,
  17. Content: "test_content",
  18. Visibility: store.Public,
  19. }
  20. memo, err := ts.CreateMemo(ctx, memoCreate)
  21. require.NoError(t, err)
  22. require.Equal(t, memoCreate.Content, memo.Content)
  23. memoPatchContent := "test_content_2"
  24. memoPatch := &store.UpdateMemo{
  25. ID: memo.ID,
  26. Content: &memoPatchContent,
  27. }
  28. err = ts.UpdateMemo(ctx, memoPatch)
  29. require.NoError(t, err)
  30. memo, err = ts.GetMemo(ctx, &store.FindMemo{
  31. ID: &memo.ID,
  32. })
  33. require.NoError(t, err)
  34. require.NotNil(t, memo)
  35. memoList, err := ts.ListMemos(ctx, &store.FindMemo{
  36. CreatorID: &user.ID,
  37. })
  38. require.NoError(t, err)
  39. require.Equal(t, 1, len(memoList))
  40. require.Equal(t, memo, memoList[0])
  41. err = ts.DeleteMemo(ctx, &store.DeleteMemo{
  42. ID: memo.ID,
  43. })
  44. require.NoError(t, err)
  45. memoList, err = ts.ListMemos(ctx, &store.FindMemo{
  46. CreatorID: &user.ID,
  47. })
  48. require.NoError(t, err)
  49. require.Equal(t, 0, len(memoList))
  50. memoList, err = ts.ListMemos(ctx, &store.FindMemo{
  51. CreatorID: &user.ID,
  52. VisibilityList: []store.Visibility{
  53. store.Public,
  54. },
  55. })
  56. require.NoError(t, err)
  57. require.Equal(t, 0, len(memoList))
  58. ts.Close()
  59. }
  60. func TestMemoListByTags(t *testing.T) {
  61. ctx := context.Background()
  62. ts := NewTestingStore(ctx, t)
  63. user, err := createTestingHostUser(ctx, ts)
  64. require.NoError(t, err)
  65. memoCreate := &store.Memo{
  66. UID: "test-resource-name",
  67. CreatorID: user.ID,
  68. Content: "test_content",
  69. Visibility: store.Public,
  70. Payload: &storepb.MemoPayload{
  71. Property: &storepb.MemoPayload_Property{
  72. Tags: []string{"test_tag"},
  73. },
  74. },
  75. }
  76. memo, err := ts.CreateMemo(ctx, memoCreate)
  77. require.NoError(t, err)
  78. require.Equal(t, memoCreate.Content, memo.Content)
  79. memo, err = ts.GetMemo(ctx, &store.FindMemo{
  80. ID: &memo.ID,
  81. })
  82. require.NoError(t, err)
  83. require.NotNil(t, memo)
  84. memoList, err := ts.ListMemos(ctx, &store.FindMemo{
  85. PayloadFind: &store.FindMemoPayload{
  86. TagSearch: []string{"test_tag"},
  87. },
  88. })
  89. require.NoError(t, err)
  90. require.Equal(t, 1, len(memoList))
  91. require.Equal(t, memo, memoList[0])
  92. ts.Close()
  93. }
  94. func TestDeleteMemoStore(t *testing.T) {
  95. ctx := context.Background()
  96. ts := NewTestingStore(ctx, t)
  97. user, err := createTestingHostUser(ctx, ts)
  98. require.NoError(t, err)
  99. memoCreate := &store.Memo{
  100. UID: "test-resource-name",
  101. CreatorID: user.ID,
  102. Content: "test_content",
  103. Visibility: store.Public,
  104. }
  105. memo, err := ts.CreateMemo(ctx, memoCreate)
  106. require.NoError(t, err)
  107. require.Equal(t, memoCreate.Content, memo.Content)
  108. err = ts.DeleteMemo(ctx, &store.DeleteMemo{
  109. ID: memo.ID,
  110. })
  111. require.NoError(t, err)
  112. ts.Close()
  113. }