mirror of
https://github.com/bitechdev/ResolveSpec.git
synced 2025-12-13 17:10:36 +00:00
68 lines
1.6 KiB
Go
68 lines
1.6 KiB
Go
package errortracking
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"testing"
|
|
)
|
|
|
|
func TestNoOpProvider(t *testing.T) {
|
|
provider := NewNoOpProvider()
|
|
|
|
// Test that all methods can be called without panicking
|
|
t.Run("CaptureError", func(t *testing.T) {
|
|
provider.CaptureError(context.Background(), errors.New("test error"), SeverityError, nil)
|
|
})
|
|
|
|
t.Run("CaptureMessage", func(t *testing.T) {
|
|
provider.CaptureMessage(context.Background(), "test message", SeverityWarning, nil)
|
|
})
|
|
|
|
t.Run("CapturePanic", func(t *testing.T) {
|
|
provider.CapturePanic(context.Background(), "panic!", []byte("stack trace"), nil)
|
|
})
|
|
|
|
t.Run("Flush", func(t *testing.T) {
|
|
result := provider.Flush(5)
|
|
if !result {
|
|
t.Error("Expected Flush to return true")
|
|
}
|
|
})
|
|
|
|
t.Run("Close", func(t *testing.T) {
|
|
err := provider.Close()
|
|
if err != nil {
|
|
t.Errorf("Expected Close to return nil, got %v", err)
|
|
}
|
|
})
|
|
}
|
|
|
|
func TestSeverityLevels(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
severity Severity
|
|
expected string
|
|
}{
|
|
{"Error", SeverityError, "error"},
|
|
{"Warning", SeverityWarning, "warning"},
|
|
{"Info", SeverityInfo, "info"},
|
|
{"Debug", SeverityDebug, "debug"},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if string(tt.severity) != tt.expected {
|
|
t.Errorf("Expected %s, got %s", tt.expected, string(tt.severity))
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestProviderInterface(t *testing.T) {
|
|
// Test that NoOpProvider implements Provider interface
|
|
var _ Provider = (*NoOpProvider)(nil)
|
|
|
|
// Test that SentryProvider implements Provider interface
|
|
var _ Provider = (*SentryProvider)(nil)
|
|
}
|