- Removed Swagger documentation import from the main server file. - Updated TextureInfo struct to include UploaderUsername for better texture metadata. - Modified texture repository methods to preload Uploader information when fetching textures by hash. - Improved texture service to handle cases where Uploader information is missing, ensuring proper caching and retrieval. - Added Redis configuration options in the environment variable setup for better flexibility.
42 lines
1.1 KiB
Go
42 lines
1.1 KiB
Go
package storage
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"carrotskin/pkg/config"
|
|
|
|
"github.com/minio/minio-go/v7"
|
|
)
|
|
|
|
// 使用 nil client 仅测试纯函数和错误分支
|
|
func TestStorage_GetBucketAndBuildURL(t *testing.T) {
|
|
s := &StorageClient{
|
|
client: (*minio.Client)(nil),
|
|
buckets: map[string]string{"textures": "tex-bkt"},
|
|
publicURL: "http://localhost:9000",
|
|
}
|
|
|
|
if b, err := s.GetBucket("textures"); err != nil || b != "tex-bkt" {
|
|
t.Fatalf("GetBucket mismatch: %v %s", err, b)
|
|
}
|
|
if _, err := s.GetBucket("missing"); err == nil {
|
|
t.Fatalf("expected error for missing bucket")
|
|
}
|
|
|
|
if url := s.BuildFileURL("tex-bkt", "obj"); url != "http://localhost:9000/tex-bkt/obj" {
|
|
t.Fatalf("BuildFileURL mismatch: %s", url)
|
|
}
|
|
}
|
|
|
|
func TestNewStorage_SkipConnectWhenNoCreds(t *testing.T) {
|
|
// 当 AccessKey/Secret 为空时跳过 ListBuckets 测试,避免真实依赖
|
|
cfg := config.RustFSConfig{
|
|
Endpoint: "127.0.0.1:9000",
|
|
Buckets: map[string]string{"avatars": "ava", "textures": "tex"},
|
|
UseSSL: false,
|
|
}
|
|
if _, err := NewStorage(cfg); err != nil {
|
|
t.Fatalf("NewStorage should not error when creds empty: %v", err)
|
|
}
|
|
}
|