diff --git a/beacon-chain/core/electra/BUILD.bazel b/beacon-chain/core/electra/BUILD.bazel index 4696fe2347f..a7a161c1dd3 100644 --- a/beacon-chain/core/electra/BUILD.bazel +++ b/beacon-chain/core/electra/BUILD.bazel @@ -56,6 +56,7 @@ go_test( "deposit_fuzz_test.go", "deposits_test.go", "effective_balance_updates_test.go", + "error_test.go", "export_test.go", "registry_updates_test.go", "transition_test.go", @@ -87,6 +88,7 @@ go_test( "@com_github_ethereum_go_ethereum//common:go_default_library", "@com_github_ethereum_go_ethereum//common/hexutil:go_default_library", "@com_github_google_gofuzz//:go_default_library", + "@com_github_pkg_errors//:go_default_library", "@com_github_sirupsen_logrus//:go_default_library", "@com_github_sirupsen_logrus//hooks/test:go_default_library", ], diff --git a/beacon-chain/core/electra/error_test.go b/beacon-chain/core/electra/error_test.go new file mode 100644 index 00000000000..808117fba22 --- /dev/null +++ b/beacon-chain/core/electra/error_test.go @@ -0,0 +1,45 @@ +package electra + +import ( + "testing" + + "github.com/pkg/errors" +) + +func TestIsExecutionRequestError(t *testing.T) { + tests := []struct { + name string + err error + want bool + }{ + { + name: "nil error", + err: nil, + want: false, + }, + { + name: "random error", + err: errors.New("some error"), + want: false, + }, + { + name: "execution request error", + err: execReqErr{errors.New("execution request failed")}, + want: true, + }, + { + name: "wrapped execution request error", + err: errors.Wrap(execReqErr{errors.New("execution request failed")}, "wrapped"), + want: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := IsExecutionRequestError(tt.err) + if got != tt.want { + t.Errorf("IsExecutionRequestError(%v) = %v, want %v", tt.err, got, tt.want) + } + }) + } +}