Skip to content

Commit a76ffb5

Browse files
meowsbitsatif-konasl
authored andcommitted
ethclient: fix error handling for header test (ethereum#22514)
The wantErr field was disused, and the error returned by HeaderByNumber was not properly tested. This simplifies the error checking using errors.Is and asserts that getting an expected missing header returns ethereum.NotFound. Also adds a nil check condition for header.Number before using big.Int's Sign method.
1 parent 2d01deb commit a76ffb5

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

ethclient/ethclient_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -288,8 +288,9 @@ func testHeader(t *testing.T, chain []*types.Block, client *rpc.Client) {
288288
want: chain[1].Header(),
289289
},
290290
"future_block": {
291-
block: big.NewInt(1000000000),
292-
want: nil,
291+
block: big.NewInt(1000000000),
292+
want: nil,
293+
wantErr: ethereum.NotFound,
293294
},
294295
}
295296
for name, tt := range tests {
@@ -299,10 +300,10 @@ func testHeader(t *testing.T, chain []*types.Block, client *rpc.Client) {
299300
defer cancel()
300301

301302
got, err := ec.HeaderByNumber(ctx, tt.block)
302-
if tt.wantErr != nil && (err == nil || err.Error() != tt.wantErr.Error()) {
303+
if !errors.Is(err, tt.wantErr) {
303304
t.Fatalf("HeaderByNumber(%v) error = %q, want %q", tt.block, err, tt.wantErr)
304305
}
305-
if got != nil && got.Number.Sign() == 0 {
306+
if got != nil && got.Number != nil && got.Number.Sign() == 0 {
306307
got.Number = big.NewInt(0) // hack to make DeepEqual work
307308
}
308309
if !reflect.DeepEqual(got, tt.want) {

0 commit comments

Comments
 (0)