Atlas › Test

TestDefaultFailureConverterFailureError

Exact test identity: go.temporal.io/server/common/nexus/nexusrpc/TestDefaultFailureConverterFailureError

Package
go.temporal.io/server/common/nexus/nexusrpc
Suite / test hierarchy
TestDefaultFailureConverterFailureError
Test
TestDefaultFailureConverterFailureError
Introduced at
TestDefaultFailureConverterFailureError Frontier kind: Test frontier
Covered ranges
8
Covered lines
16
Covered files
1

Covered source

Expand a file to inspect source; the > gutter marks covered lines.

go.temporal.io/server/common/nexus/nexusrpc/failure_converter.go 16 covered LOC · 8 ranges

Open complete file

46 // ErrorToFailure implements FailureConverter.
47 // nolint:revive // Keeping all of the logic together for readability, even if it means the function is long.
48 > func (e knownErrorFailureConverter) ErrorToFailure(err error) (nexus.Failure, error) { failure_converter.go
49 > if err == nil {
50 return nexus.Failure{}, nil
51 }
52 // NOTE: not using errors.Unwrap here we are intentionally only supporting unwrapping known errors.
53 > switch typedErr := err.(type) { failure_converter.go
54 > case *nexus.FailureError: failure_converter.go
55 > f := typedErr.Failure
56 > // FailureError is has both a Cause error and an underlying Failure Cause.
57 > // When instantiated directly, there are cases where only the Go error cause is set.
58 > // Preserve the embedded failure's cause, as the embedded failure is treated similarly to the OriginalFailure field for well-known other error types.
59 > if typedErr.Cause != nil && f.Cause == nil {
60 c, err := e.ErrorToFailure(typedErr.Cause)
61 if err != nil {
64 f.Cause = &c
65 }
66 > return f, nil failure_converter.go
67 case *nexus.HandlerError:
68 if typedErr.OriginalFailure != nil {
132 // FailureToError implements FailureConverter.
133 // nolint:revive // Keeping all of the logic together for readability, even if it means the function is long.
134 > func (e knownErrorFailureConverter) FailureToError(f nexus.Failure) (error, error) { failure_converter.go
135 > if f.Metadata != nil {
136 > switch f.Metadata["type"] { failure_converter.go
137 case "nexus.HandlerError":
138 var se serializedHandlerError
177 }
178 // Note that the original failure cause is retained on the FailureError's failure object.
179 > fe := &nexus.FailureError{Failure: f} failure_converter.go
180 > if f.Cause != nil {
181 c, err := e.FailureToError(*f.Cause)
182 if err != nil {