resource_test.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package teststore
  2. import (
  3. "context"
  4. "testing"
  5. "github.com/stretchr/testify/require"
  6. "github.com/usememos/memos/store"
  7. )
  8. func TestResourceStore(t *testing.T) {
  9. ctx := context.Background()
  10. ts := NewTestingStore(ctx, t)
  11. _, err := ts.CreateResource(ctx, &store.Resource{
  12. CreatorID: 101,
  13. Filename: "test.epub",
  14. Blob: []byte("test"),
  15. InternalPath: "",
  16. ExternalLink: "",
  17. Type: "application/epub+zip",
  18. Size: 637607,
  19. })
  20. require.NoError(t, err)
  21. correctFilename := "test.epub"
  22. incorrectFilename := "test.png"
  23. resource, err := ts.GetResource(ctx, &store.FindResource{
  24. Filename: &correctFilename,
  25. })
  26. require.NoError(t, err)
  27. require.Equal(t, correctFilename, resource.Filename)
  28. require.Equal(t, int32(1), resource.ID)
  29. _, err = ts.UpsertMemoResource(ctx, &store.UpsertMemoResource{
  30. MemoID: 1,
  31. ResourceID: resource.ID,
  32. })
  33. require.NoError(t, err)
  34. resource, err = ts.GetResource(ctx, &store.FindResource{
  35. ID: &resource.ID,
  36. })
  37. require.NoError(t, err)
  38. require.Equal(t, *resource.RelatedMemoID, int32(1))
  39. notFoundResource, err := ts.GetResource(ctx, &store.FindResource{
  40. Filename: &incorrectFilename,
  41. })
  42. require.NoError(t, err)
  43. require.Nil(t, notFoundResource)
  44. var correctCreatorID int32 = 101
  45. var incorrectCreatorID int32 = 102
  46. _, err = ts.GetResource(ctx, &store.FindResource{
  47. CreatorID: &correctCreatorID,
  48. })
  49. require.NoError(t, err)
  50. notFoundResource, err = ts.GetResource(ctx, &store.FindResource{
  51. CreatorID: &incorrectCreatorID,
  52. })
  53. require.NoError(t, err)
  54. require.Nil(t, notFoundResource)
  55. err = ts.DeleteResource(ctx, &store.DeleteResource{
  56. ID: 1,
  57. })
  58. require.NoError(t, err)
  59. err = ts.DeleteResource(ctx, &store.DeleteResource{
  60. ID: 2,
  61. })
  62. require.NoError(t, err)
  63. }