From 17c6e9a8c531ee1ed767fe877cb4c341b92a5233 Mon Sep 17 00:00:00 2001 From: Mark Spanbroek Date: Wed, 15 May 2024 13:43:42 +0200 Subject: [PATCH] test for multiple error types on a function Co-Authored-By: Eric Mastro --- testmodule/testCustomErrors.nim | 10 ++++++++++ testnode/contracts/TestCustomErrors.sol | 7 +++++++ 2 files changed, 17 insertions(+) diff --git a/testmodule/testCustomErrors.nim b/testmodule/testCustomErrors.nim index e66c384..2347d7d 100644 --- a/testmodule/testCustomErrors.nim +++ b/testmodule/testCustomErrors.nim @@ -85,6 +85,16 @@ suite "Contract custom errors": check error.arguments.one == ("1", 2.u256) check error.arguments.two == (3.u256, 4.u256) + test "handles multiple error types": + proc revertsMultipleErrors(contract: TestCustomErrors, simple: bool) + {.contract, errors:[SimpleError, ErrorWithArguments].} + + let contract = contract.connect(provider.getSigner()) + expect SimpleError: + await contract.revertsMultipleErrors(simple = true) + expect ErrorWithArguments: + await contract.revertsMultipleErrors(simple = false) + test "handles gas estimation errors": proc revertsTransaction(contract: TestCustomErrors) {.contract, errors:[ErrorWithArguments].} diff --git a/testnode/contracts/TestCustomErrors.sol b/testnode/contracts/TestCustomErrors.sol index bc8e0d7..a42902f 100644 --- a/testnode/contracts/TestCustomErrors.sol +++ b/testnode/contracts/TestCustomErrors.sol @@ -42,6 +42,13 @@ contract TestCustomErrors { ); } + function revertsMultipleErrors(bool simple) public pure { + if (simple) { + revert SimpleError(); + } + revert ErrorWithArguments(1, false); + } + string private state; function revertsTransaction() public {