package enforcer_test import ( stderrors "errors" "testing" "gitstormr.dev/code-raider/noxarion-x/enforcer" ) func TestDoomBringer_WithMeta(t *testing.T) { appErr := enforcer.ApplicationError(400_00_01_01) if appErr.GetCode() != 400_00_01_01 { t.Errorf("expected code to be 400_00_01_01") } originalError := stderrors.New("tribe is deleted") doomBringer := enforcer.NewSentinel(appErr, nil, "Stormborn Guild") _ = doomBringer.WithMeta("key1", "value1"). WithMeta("key2", 42) err := doomBringer.Error() if err == "" { t.Errorf("expected error") } doomBringer.OriginalError = originalError err = doomBringer.Error() if err == "" { t.Errorf("expected error") } unwrap := doomBringer.Unwrap() if unwrap == nil { t.Errorf("expected unwrap") } if key1, ok := doomBringer.Metadata["key1"]; !ok { t.Errorf("expected key1 to be present") } else { if key1 != "value1" { t.Errorf("expected key1 to be value1") } } if key2, ok := doomBringer.Metadata["key2"]; !ok { t.Errorf("expected key2 to be present") } else { if key2 != 42 { t.Errorf("expected key2 to be 42") } } t.Logf("%#v", doomBringer.Error()) } func TestNewSentinel(t *testing.T) { appErr := enforcer.ApplicationError(400_00_01_01) originalError := stderrors.New("tribe is deleted") args := []interface{}{"Tribe123"} sentinel := enforcer.NewSentinel(appErr, originalError, args...) if appErr.GetHTTPStatus() != sentinel.HTTPStatus { t.Errorf("expected HTTPStatus to be %d", appErr.GetHTTPStatus()) } if sentinel.OriginalError.Error() != originalError.Error() { t.Errorf("expected OriginalError to be %s", originalError.Error()) } if sentinel.Code != appErr { t.Errorf("expected Code to be %v", appErr) } } func TestIdentifyInvoker(t *testing.T) { appErr := enforcer.ApplicationError(400_00_01_01) originalError := stderrors.New("sorcerer is deleted") sentinel := enforcer.NewSentinel( appErr, originalError, "Merlin the Mystic", ) if sentinel.FunctionRef == "" { t.Errorf("expected summoner to be present") } }