package teststore import ( "context" "testing" "github.com/lithammer/shortuuid/v4" "github.com/stretchr/testify/require" "github.com/usememos/memos/store" ) func TestAttachmentStore(t *testing.T) { ctx := context.Background() ts := NewTestingStore(ctx, t) _, err := ts.CreateAttachment(ctx, &store.Attachment{ UID: shortuuid.New(), CreatorID: 101, Filename: "test.epub", Blob: []byte("test"), Type: "application/epub+zip", Size: 637607, }) require.NoError(t, err) correctFilename := "test.epub" incorrectFilename := "test.png" attachment, err := ts.GetAttachment(ctx, &store.FindAttachment{ Filename: &correctFilename, }) require.NoError(t, err) require.Equal(t, correctFilename, attachment.Filename) require.Equal(t, int32(1), attachment.ID) notFoundAttachment, err := ts.GetAttachment(ctx, &store.FindAttachment{ Filename: &incorrectFilename, }) require.NoError(t, err) require.Nil(t, notFoundAttachment) var correctCreatorID int32 = 101 var incorrectCreatorID int32 = 102 _, err = ts.GetAttachment(ctx, &store.FindAttachment{ CreatorID: &correctCreatorID, }) require.NoError(t, err) notFoundAttachment, err = ts.GetAttachment(ctx, &store.FindAttachment{ CreatorID: &incorrectCreatorID, }) require.NoError(t, err) require.Nil(t, notFoundAttachment) err = ts.DeleteAttachment(ctx, &store.DeleteAttachment{ ID: 1, }) require.NoError(t, err) err = ts.DeleteAttachment(ctx, &store.DeleteAttachment{ ID: 2, }) require.ErrorContains(t, err, "attachment not found") ts.Close() }