- Add new test files for handlers (storage, payment, settings) - Add new test files for services (chat, email, storage, settings, admin) - Add integration tests for services - Update handler implementations with bug fixes - Add coverage reports and test documentation
87 lines
2 KiB
Go
87 lines
2 KiB
Go
package services
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestNewStorageService(t *testing.T) {
|
|
// StorageService requires a CredentialsService pointer
|
|
// Test with nil value (basic constructor test)
|
|
service := NewStorageService(nil)
|
|
if service == nil {
|
|
t.Error("Expected service, got nil")
|
|
}
|
|
if service.credentialsService != nil {
|
|
t.Error("Expected nil credentialsService")
|
|
}
|
|
}
|
|
|
|
func TestUploadConfig_Validation(t *testing.T) {
|
|
// Test the UploadConfig struct is properly defined
|
|
cfg := UploadConfig{
|
|
Endpoint: "https://s3.example.com",
|
|
AccessKey: "access123",
|
|
SecretKey: "secret456",
|
|
Bucket: "my-bucket",
|
|
Region: "us-east-1",
|
|
}
|
|
|
|
if cfg.Endpoint == "" {
|
|
t.Error("Expected endpoint to be set")
|
|
}
|
|
if cfg.AccessKey == "" {
|
|
t.Error("Expected accessKey to be set")
|
|
}
|
|
if cfg.SecretKey == "" {
|
|
t.Error("Expected secretKey to be set")
|
|
}
|
|
if cfg.Bucket == "" {
|
|
t.Error("Expected bucket to be set")
|
|
}
|
|
if cfg.Region == "" {
|
|
t.Error("Expected region to be set")
|
|
}
|
|
}
|
|
|
|
func TestUploadConfig_DefaultRegion(t *testing.T) {
|
|
// Test that empty region would need defaulting
|
|
cfg := UploadConfig{
|
|
Endpoint: "https://r2.cloudflare.com",
|
|
AccessKey: "access",
|
|
SecretKey: "secret",
|
|
Bucket: "bucket",
|
|
Region: "", // Empty
|
|
}
|
|
|
|
// In the actual getClient, empty region defaults to "auto"
|
|
if cfg.Region != "" {
|
|
t.Error("Region should be empty for this test case")
|
|
}
|
|
|
|
// Simulate default
|
|
if cfg.Region == "" {
|
|
cfg.Region = "auto"
|
|
}
|
|
if cfg.Region != "auto" {
|
|
t.Errorf("Expected region='auto', got '%s'", cfg.Region)
|
|
}
|
|
}
|
|
|
|
func TestUploadConfig_IncompleteFields(t *testing.T) {
|
|
// Test incomplete config detection
|
|
incomplete := UploadConfig{
|
|
Endpoint: "https://s3.example.com",
|
|
AccessKey: "",
|
|
SecretKey: "",
|
|
Bucket: "bucket",
|
|
Region: "us-east-1",
|
|
}
|
|
|
|
// Validation logic that would be in getClient
|
|
if incomplete.AccessKey == "" || incomplete.SecretKey == "" {
|
|
// Would return error
|
|
t.Log("Correctly identified incomplete credentials")
|
|
} else {
|
|
t.Error("Should detect missing credentials")
|
|
}
|
|
}
|