stoneerror/error_test.go
Rene Nochebuena bcb4a3008d
All checks were successful
Go CI/CD / go-ci (push) Successful in 10m43s
Go CI/CD / go-ci (pull_request) Successful in 10m7s
Add unwrap tests for normal and stone errors
Introduce tests to validate the behavior of the Unwrap function for both standard errors and StoneError instances. Ensure correct handling of wrapped errors and verify type identification with IsStoneError checks.
2025-04-12 17:53:48 -06:00

80 lines
1.5 KiB
Go

package stoneerror
import (
"errors"
"testing"
)
func Test_StoneErrorWithoutMetadata(t *testing.T) {
stoneError := New(1, "test")
t.Log(stoneError)
}
func Test_StoneErrorWithMetadata(t *testing.T) {
stoneError := New(1, "test").
WithMetadata("key", "value").
WithMetadata("key2", "value2")
t.Log(stoneError)
}
func Test_NormalWrap(t *testing.T) {
normalError := errors.New("test")
stoneError := Wrap(normalError, 1, "test")
t.Log(stoneError)
}
func Test_StoneWrap(t *testing.T) {
originalError := New(1, "test").
WithMetadata("key", "value").
WithMetadata("key2", "value2")
stoneError := Wrap(originalError, 1, "test")
t.Log(stoneError)
}
func Test_NormalUnwrap(t *testing.T) {
normalError := errors.New("test")
stoneError := Wrap(normalError, 1, "test")
unwrap := stoneError.Unwrap()
if IsStoneError(unwrap) {
t.Fail()
} else {
t.Log(stoneError)
}
}
func Test_StoneUnwrap(t *testing.T) {
normalError := New(1, "test")
stoneError := Wrap(normalError, 1, "test")
unwrap := stoneError.Unwrap()
if !IsStoneError(unwrap) {
t.Fail()
} else {
t.Log(stoneError)
}
}
func Test_ToJSON(t *testing.T) {
stoneError := New(1, "test").
WithMetadata("key", "value").
WithMetadata("key2", "value2")
jsonData := stoneError.ToJSON()
t.Log(string(jsonData))
}
func Test_IsStoneError(t *testing.T) {
stoneError := New(1, "test").
WithMetadata("key", "value")
if IsStoneError(stoneError) {
t.Log("Is stone error")
} else {
t.Fail()
}
}