可靠性: 完善 R2 备份恢复与对象生命周期
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestMessageImageCreatePersistsObjectKey(t *testing.T) {
|
||||
conn, _ := newTestDB(t)
|
||||
ctx := context.Background()
|
||||
store := NewMessageImageStore(conn)
|
||||
|
||||
created, err := store.Create(ctx, CreateMessageImageOptions{
|
||||
MessageID: 42,
|
||||
URL: "https://cdn.example.test/assets/2026/11/private.webp",
|
||||
ObjectKey: "2026/11/private.webp",
|
||||
FileName: "private.webp",
|
||||
FileSize: 1234,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "2026/11/private.webp", created.ObjectKey)
|
||||
|
||||
var persisted MessageImage
|
||||
require.NoError(t, conn.WithContext(ctx).First(&persisted, created.ID).Error)
|
||||
require.Equal(t, created.ObjectKey, persisted.ObjectKey)
|
||||
byMessage, err := store.GetByMessageIDs(ctx, []uint{42})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, byMessage[42], 1)
|
||||
require.Equal(t, created.ObjectKey, byMessage[42][0].ObjectKey)
|
||||
|
||||
encoded, err := json.Marshal(&persisted)
|
||||
require.NoError(t, err)
|
||||
require.NotContains(t, string(encoded), "ObjectKey")
|
||||
require.NotContains(t, string(encoded), "object_key")
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user