40 lines
1.1 KiB
Go
40 lines
1.1 KiB
Go
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")
|
|
|
|
}
|