diff --git a/.gitignore b/.gitignore index fe42f4a14..7e12174e5 100644 --- a/.gitignore +++ b/.gitignore @@ -85,3 +85,8 @@ openrpc.json .pnpm/ .pnpm-store/ .qodo +nil/**/mock_*.go + +# mockery output (excluding helper-tests) +nil/**/mock_*.go +!nil/**/mock_*_test.go diff --git a/.mockery.yaml b/.mockery.yaml new file mode 100644 index 000000000..eec5cb4ef --- /dev/null +++ b/.mockery.yaml @@ -0,0 +1,13 @@ +all: true +mock-build-tags: "test" +with-expecter: true +inpackage: true +recursive: true + +packages: + nil/nil/client: {} + nil/internal/db: {} + nil/internal/vm: {} + nil/services/rollup: {} + +include-regex: '^(Client|DB|RwTx|StateDBReadOnly|L1BlockFetcher)$' diff --git a/Makefile b/Makefile index a806973ae..e6578ec62 100644 --- a/Makefile +++ b/Makefile @@ -107,3 +107,7 @@ clean: go clean -cache rm -fr build/* rm -fr contracts/compiled/* + +.PHONY: mocks +mocks: ssz_types + mockery --config=.mockery.yaml \ No newline at end of file diff --git a/nil/Makefile.inc b/nil/Makefile.inc index 34dc8e298..134a91c8b 100644 --- a/nil/Makefile.inc +++ b/nil/Makefile.inc @@ -16,24 +16,5 @@ gen_rollup_contracts_bindings: \ $(root_relayer)/gen_l2_mocks .PHONY: generate_mocks -generate_mocks: \ - $(root_client)/client_generated_mock.go \ - $(root_vm)/state_generated_mock.go \ - $(root_db)/rwtx_generated_mock.go \ - $(root_db)/db_generated_mock.go \ - $(root_rollup)/l1_fetcher_generated_mock.go \ - -$(root_client)/client_generated_mock.go: $(root_client)/client.go ssz_types - cd $(root_client) && go generate - -$(root_vm)/state_generated_mock.go: $(root_vm)/interface.go ssz_types - cd $(root_vm) && go generate - -$(root_db)/rwtx_generated_mock.go: $(root_db)/kv.go ssz_types - cd $(root_db) && go generate -run="rwtx_" kv.go - -$(root_db)/db_generated_mock.go: $(root_db)/kv.go ssz_types - cd $(root_db) && go generate -run="db_" kv.go - -$(root_rollup)/l1_fetcher_generated_mock.go: $(root_rollup)/l1_fetcher.go - cd $(root_rollup) && go generate l1_fetcher.go +generate_mocks: ssz_types + mockery --config=.mockery.yaml \ No newline at end of file diff --git a/nil/client/client.go b/nil/client/client.go index 10f1c8ba5..d59c22dac 100644 --- a/nil/client/client.go +++ b/nil/client/client.go @@ -18,7 +18,6 @@ import ( "github.com/NilFoundation/nil/nil/services/txnpool" ) -//go:generate go run github.com/matryer/moq -out client_generated_mock.go -rm -stub -with-resets . Client type BatchRequest interface { GetBlock(shardId types.ShardId, blockId any, fullTx bool) (uint64, error) diff --git a/nil/internal/db/kv.go b/nil/internal/db/kv.go index 407795f03..7525e6b05 100644 --- a/nil/internal/db/kv.go +++ b/nil/internal/db/kv.go @@ -8,8 +8,6 @@ import ( "github.com/NilFoundation/nil/nil/internal/types" ) -//go:generate go run github.com/matryer/moq -out rwtx_generated_mock.go -rm . RwTx -//go:generate go run github.com/matryer/moq -out db_generated_mock.go -rm . DB type Timestamp uint64 diff --git a/nil/internal/vm/interface.go b/nil/internal/vm/interface.go index cfda6353f..3e16f1574 100644 --- a/nil/internal/vm/interface.go +++ b/nil/internal/vm/interface.go @@ -9,7 +9,6 @@ import ( "github.com/NilFoundation/nil/nil/internal/types" ) -//go:generate go run github.com/matryer/moq -out state_generated_mock.go -rm -stub -with-resets . StateDBReadOnly type StateDBReadOnly interface { // IsInternalTransaction returns true if the transaction that initiated execution is internal. diff --git a/nil/services/relayer/Makefile.inc b/nil/services/relayer/Makefile.inc index ea9e9df3c..d86f10594 100644 --- a/nil/services/relayer/Makefile.inc +++ b/nil/services/relayer/Makefile.inc @@ -20,9 +20,9 @@ $(root_relayer)/generate_l1_abi: $(root_relayer)/embed_l1_abi .PHONY: $(root_relayer)/gen_l1_mocks $(root_relayer)/gen_l1_mocks: $(root_relayer)/generate_l1_abi - cd $(root_relayer)/internal/l1 && go run github.com/matryer/moq -out eth_client_generated_mock.go -rm -stub -with-resets . EthClient - cd $(root_relayer)/internal/l1 && go run github.com/matryer/moq -out l1_contract_generated_mock.go -rm -stub -with-resets . L1Contract + cd $(root_relayer)/internal/l1 && mockery --name=EthClient + cd $(root_relayer)/internal/l1 && mockery --name=L1Contract .PHONY: $(root_relayer)/gen_l2_mocks $(root_relayer)/gen_l2_mocks: $(root_relayer)/embed_l2_abi - cd $(root_relayer)/internal/l2 && go run github.com/matryer/moq -out l2_contract_generated_mock.go -rm -stub -with-resets . L2Contract + cd $(root_relayer)/internal/l2 && mockery --name=L2Contract diff --git a/nil/services/rollup/l1_fetcher.go b/nil/services/rollup/l1_fetcher.go index ddb3169de..9910fdf1b 100644 --- a/nil/services/rollup/l1_fetcher.go +++ b/nil/services/rollup/l1_fetcher.go @@ -13,7 +13,6 @@ import ( "github.com/ethereum/go-ethereum/rpc" ) -//go:generate go run github.com/matryer/moq -out l1_fetcher_generated_mock.go -rm -stub -with-resets . L1BlockFetcher const pollInterval = 5 * time.Second