gohorsejobs/backend/internal/services/storage_service_test.go
Tiago Yamamoto 6cd8c02252 feat: add test coverage and handler improvements
- 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
2026-01-02 08:50:29 -03:00

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")
}
}