From c41552be4a5241d86f67026394f0dbb876285627 Mon Sep 17 00:00:00 2001 From: BlazeWasHere Date: Tue, 18 Mar 2025 17:22:44 +0000 Subject: [PATCH] update docs + improve tests speed --- CONTRIBUTING.md | 5 +++-- README.md | 6 ++++++ test/ethers/ccip_read_test.exs | 2 +- test/ethers/contract_helpers_test.exs | 2 +- test/ethers/event_argument_types_contract_test.exs | 2 +- test/ethers/event_test.exs | 2 +- test/ethers/multi_clause_contract_test.exs | 2 +- test/ethers/multicall_test.exs | 3 +-- test/ethers/name_service_test.exs | 2 +- test/ethers/pay_ether_contract_test.exs | 2 +- test/ethers/revert_contract_test.exs | 4 ++-- test/ethers/signer/local_test.exs | 2 +- test/ethers/transaction_test.exs | 2 +- test/ethers/tx_data_test.exs | 2 +- test/ethers/types_contract_test.exs | 2 +- test/ethers/types_test.exs | 2 +- test/ethers_test.exs | 2 +- 17 files changed, 25 insertions(+), 19 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bc451aa..94e11bb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,7 +19,8 @@ Thank you for your interest in contributing to Elixir Ethers! We welcome contrib 2. Clone the repository 3. Install and Run `anvil` (From https://getfoundry.sh/) 4. Install dependencies with `mix deps.get` -5. Run tests with `mix test` +5. Prepare the tests (only needs to be ran once) with `mix run test/test_prepare.exs` +6. Run tests with `mix test` ## Pull Request Guidelines @@ -35,4 +36,4 @@ If you have questions or run into issues, please open a GitHub issue with a clea ## License -By contributing to Elixir Ethers, you agree that your contributions will be licensed under its [License](/LICENSE). +By contributing to Elixir Ethers, you agree that your contributions will be licensed under its [License](/LICENSE). diff --git a/README.md b/README.md index a30278e..a3625bb 100644 --- a/README.md +++ b/README.md @@ -399,6 +399,12 @@ npm install -g solc > anvil ``` +- Prepare the tests (only needs to be ran once) + +``` +> mix run test/test_prepare.exs +``` + Then you should be able to run tests through `mix test`. ## Acknowledgements diff --git a/test/ethers/ccip_read_test.exs b/test/ethers/ccip_read_test.exs index babc7c4..ccc377c 100644 --- a/test/ethers/ccip_read_test.exs +++ b/test/ethers/ccip_read_test.exs @@ -9,7 +9,7 @@ defmodule Ethers.CcipReadTest do @from "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" - setup do + setup_all do address = deploy(CcipReadTestContract, from: @from) [address: address] end diff --git a/test/ethers/contract_helpers_test.exs b/test/ethers/contract_helpers_test.exs index 1640a46..89c37f9 100644 --- a/test/ethers/contract_helpers_test.exs +++ b/test/ethers/contract_helpers_test.exs @@ -1,5 +1,5 @@ defmodule Ethers.ContractHelpersTest do - use ExUnit.Case + use ExUnit.Case, async: true alias Ethers.ContractHelpers describe "read_abi" do diff --git a/test/ethers/event_argument_types_contract_test.exs b/test/ethers/event_argument_types_contract_test.exs index b6c4b6c..587eadb 100644 --- a/test/ethers/event_argument_types_contract_test.exs +++ b/test/ethers/event_argument_types_contract_test.exs @@ -4,7 +4,7 @@ defmodule Ethers.Contract.Test.EventArgumentTypesContract do end defmodule Ethers.EventArgumentTypesContractTest do - use ExUnit.Case + use ExUnit.Case, async: true alias Ethers.Contract.Test.EventArgumentTypesContract diff --git a/test/ethers/event_test.exs b/test/ethers/event_test.exs index 9147c30..de76340 100644 --- a/test/ethers/event_test.exs +++ b/test/ethers/event_test.exs @@ -1,5 +1,5 @@ defmodule Ethers.EventTest do - use ExUnit.Case + use ExUnit.Case, async: true alias Ethers.Event doctest Event diff --git a/test/ethers/multi_clause_contract_test.exs b/test/ethers/multi_clause_contract_test.exs index 8a41317..6bda494 100644 --- a/test/ethers/multi_clause_contract_test.exs +++ b/test/ethers/multi_clause_contract_test.exs @@ -13,7 +13,7 @@ defmodule Ethers.MultiClauseContractTest do @from "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - setup :deploy_multi_clause_contract + setup_all :deploy_multi_clause_contract describe "next function" do test "will raise on ambiguous arguments" do diff --git a/test/ethers/multicall_test.exs b/test/ethers/multicall_test.exs index 49ba90a..b14020b 100644 --- a/test/ethers/multicall_test.exs +++ b/test/ethers/multicall_test.exs @@ -11,10 +11,9 @@ defmodule Ethers.MulticallTest do alias Ethers.Multicall @from "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" + setup_all :deploy_contracts describe "multicall" do - setup :deploy_contracts - test "aggregate3 with no default address using Ethers.call", %{ counter_address: counter_address, hello_world_address: hello_world_address diff --git a/test/ethers/name_service_test.exs b/test/ethers/name_service_test.exs index 58c3f40..6e57cd0 100644 --- a/test/ethers/name_service_test.exs +++ b/test/ethers/name_service_test.exs @@ -1,5 +1,5 @@ defmodule Ethers.NameServiceTest do - use ExUnit.Case + use ExUnit.Case, async: true alias Ethers.NameService doctest NameService end diff --git a/test/ethers/pay_ether_contract_test.exs b/test/ethers/pay_ether_contract_test.exs index cbeb205..c5b8652 100644 --- a/test/ethers/pay_ether_contract_test.exs +++ b/test/ethers/pay_ether_contract_test.exs @@ -12,7 +12,7 @@ defmodule Ethers.PayEtherContractTest do @from "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - setup :deploy_pay_ether_contract + setup_all :deploy_pay_ether_contract describe "pay functions" do test "can pay payable functions", %{address: address} do diff --git a/test/ethers/revert_contract_test.exs b/test/ethers/revert_contract_test.exs index 5c39fab..5d71676 100644 --- a/test/ethers/revert_contract_test.exs +++ b/test/ethers/revert_contract_test.exs @@ -1,5 +1,5 @@ defmodule Ethers.RevertContractTest do - use ExUnit.Case + use ExUnit.Case, async: true import Ethers.TestHelpers @@ -8,7 +8,7 @@ defmodule Ethers.RevertContractTest do @from "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266" - setup :deploy_revert_contract + setup_all :deploy_revert_contract describe "using require" do test "will cause a revert including revert message", %{address: address} do diff --git a/test/ethers/signer/local_test.exs b/test/ethers/signer/local_test.exs index b23e418..88c8a90 100644 --- a/test/ethers/signer/local_test.exs +++ b/test/ethers/signer/local_test.exs @@ -1,5 +1,5 @@ defmodule Ethers.Signer.LocalTest do - use ExUnit.Case + use ExUnit.Case, async: true alias Ethers.Signer alias Ethers.Transaction.Eip1559 diff --git a/test/ethers/transaction_test.exs b/test/ethers/transaction_test.exs index 37dc387..25a8bf0 100644 --- a/test/ethers/transaction_test.exs +++ b/test/ethers/transaction_test.exs @@ -1,5 +1,5 @@ defmodule Ethers.TransactionTest do - use ExUnit.Case + use ExUnit.Case, async: true alias Ethers.Transaction alias Ethers.Utils diff --git a/test/ethers/tx_data_test.exs b/test/ethers/tx_data_test.exs index 1f2d5be..4a8cc9a 100644 --- a/test/ethers/tx_data_test.exs +++ b/test/ethers/tx_data_test.exs @@ -1,5 +1,5 @@ defmodule Ethers.TxDataTest do - use ExUnit.Case + use ExUnit.Case, async: true alias Ethers.TxData diff --git a/test/ethers/types_contract_test.exs b/test/ethers/types_contract_test.exs index 18b5616..9852381 100644 --- a/test/ethers/types_contract_test.exs +++ b/test/ethers/types_contract_test.exs @@ -4,7 +4,7 @@ defmodule Ethers.Contract.Test.TypesContract do end defmodule Ethers.TypesContractTest do - use ExUnit.Case + use ExUnit.Case, async: true doctest Ethers.Contract import Ethers.TestHelpers diff --git a/test/ethers/types_test.exs b/test/ethers/types_test.exs index 9d0371a..123110a 100644 --- a/test/ethers/types_test.exs +++ b/test/ethers/types_test.exs @@ -1,5 +1,5 @@ defmodule Ethers.TypesTest do - use ExUnit.Case + use ExUnit.Case, async: true alias Ethers.Types doctest Ethers.Types diff --git a/test/ethers_test.exs b/test/ethers_test.exs index 41d7f12..a566084 100644 --- a/test/ethers_test.exs +++ b/test/ethers_test.exs @@ -11,7 +11,7 @@ defmodule Ethers.Contract.Test.HelloWorldWithDefaultAddressContract do end defmodule EthersTest do - use ExUnit.Case + use ExUnit.Case, async: true doctest Ethers import Ethers.TestHelpers