Skip to content

Commit 3dcc2a2

Browse files
committed
test(erc8004): cover metadata revert propagation
1 parent 0f7118b commit 3dcc2a2

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

internal/erc8004/client_test.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,37 @@ func TestSetMetadata(t *testing.T) {
486486
}
487487
}
488488

489+
func TestSetMetadata_TransactRevert(t *testing.T) {
490+
key, err := crypto.GenerateKey()
491+
if err != nil {
492+
t.Fatal(err)
493+
}
494+
495+
handlers := txMockHandlers(common.HexToHash("0x2222"))
496+
handlers["eth_estimateGas"] = func(_ []json.RawMessage) (json.RawMessage, error) {
497+
return nil, errors.New("execution reverted")
498+
}
499+
500+
srv := mockRPC(t, handlers)
501+
defer srv.Close()
502+
503+
ctx := context.Background()
504+
505+
client, err := NewClient(ctx, srv.URL)
506+
if err != nil {
507+
t.Fatalf("NewClient: %v", err)
508+
}
509+
defer client.Close()
510+
511+
err = client.SetMetadata(ctx, key, big.NewInt(42), "x402", []byte(`{"payment":"info"}`))
512+
if err == nil {
513+
t.Fatal("expected setMetadata revert error, got nil")
514+
}
515+
if !strings.Contains(err.Error(), "erc8004: setMetadata tx: execution reverted") {
516+
t.Fatalf("error = %q, want setMetadata tx execution reverted", err)
517+
}
518+
}
519+
489520
func TestNewClient_DialError(t *testing.T) {
490521
ctx := context.Background()
491522
// Use an unreachable address to trigger a dial/chain-id error.

0 commit comments

Comments
 (0)