From a9de5abda9a0bd1504ce7dde3fe02ea221b2bba6 Mon Sep 17 00:00:00 2001 From: kokeshiM0chi Date: Wed, 16 Aug 2023 16:37:48 +0900 Subject: [PATCH 1/3] test: add the test case for `InactiveContract` --- x/wasmplus/keeper/querier_test.go | 59 ++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 16 deletions(-) diff --git a/x/wasmplus/keeper/querier_test.go b/x/wasmplus/keeper/querier_test.go index 2df11839a3..322b2e5ac5 100644 --- a/x/wasmplus/keeper/querier_test.go +++ b/x/wasmplus/keeper/querier_test.go @@ -1,13 +1,14 @@ package keeper import ( - "testing" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + "testing" sdk "github.com/Finschia/finschia-sdk/types" - + wasmtypes "github.com/Finschia/wasmd/x/wasm/types" "github.com/Finschia/wasmd/x/wasmplus/types" ) @@ -36,24 +37,50 @@ func TestQueryInactiveContracts(t *testing.T) { } } -func TestQueryIsInactiveContract(t *testing.T) { +func TestQueryInactiveContract(t *testing.T) { ctx, keepers := CreateTestInput(t, false, AvailableCapabilities) keeper := keepers.WasmKeeper example := InstantiateHackatomExampleContract(t, ctx, keepers) - + contractAddr := example.Contract q := Querier(keeper) - rq := types.QueryInactiveContractRequest{Address: example.Contract.String()} - res, err := q.InactiveContract(sdk.WrapSDKContext(ctx), &rq) - require.NoError(t, err) - require.False(t, res.Inactivated) - // set inactive - err = keeper.deactivateContract(ctx, example.Contract) - require.NoError(t, err) + specs := map[string]struct { + srcQuery *types.QueryInactiveContractRequest + expInactivated bool + expErr error + }{ + "query": { + srcQuery: &types.QueryInactiveContractRequest{Address: contractAddr.String()}, + expInactivated: true, + }, + "query with unknown address": { + srcQuery: &types.QueryInactiveContractRequest{Address: RandomBech32AccountAddress(t)}, + expErr: wasmtypes.ErrNotFound, + }, + "with empty request": { + srcQuery: nil, + expErr: status.Error(codes.InvalidArgument, "empty request"), + }, + } - rq = types.QueryInactiveContractRequest{Address: example.Contract.String()} - res, err = q.InactiveContract(sdk.WrapSDKContext(ctx), &rq) - require.NoError(t, err) - require.True(t, res.Inactivated) + for msg, spec := range specs { + t.Run(msg, func(t *testing.T) { + got, err := q.InactiveContract(sdk.WrapSDKContext(ctx), spec.srcQuery) + if spec.expErr != nil { + require.Equal(t, spec.expErr, err, "but got %+v", err) + return + } + require.NoError(t, err) + require.False(t, got.Inactivated) + + // set inactive + err = keeper.deactivateContract(ctx, example.Contract) + require.NoError(t, err) + + got, err = q.InactiveContract(sdk.WrapSDKContext(ctx), spec.srcQuery) + require.NoError(t, err) + require.True(t, got.Inactivated) + }) + } } From 3d05cb82ad6b77a6a525922fb66020c07d628bfe Mon Sep 17 00:00:00 2001 From: kokeshiM0chi Date: Thu, 17 Aug 2023 00:36:51 +0900 Subject: [PATCH 2/3] fix: add the change.log --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b086c5181f..9c4775689f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ * [\#64](https://github.com/Finschia/wasmd/pull/64) test: add test cases to confirm output for PinnedCodes * [\#70](https://github.com/Finschia/wasmd/pull/70) add event checking to TestInstantiateContract * [\#73](https://github.com/Finschia/wasmd/pull/73) test: add the check for expPaginationTotal +* [\#75](https://github.com/Finschia/wasmd/pull/75) test: add the test case for InactiveContract ### Bug Fixes * [\#62](https://github.com/Finschia/wasmd/pull/62) fill ContractHistory querier result's Updated field From 82d232c93cf6f69949de323e90fb1522957c91e6 Mon Sep 17 00:00:00 2001 From: kokeshiM0chi Date: Thu, 17 Aug 2023 14:43:02 +0900 Subject: [PATCH 3/3] fix: Fixed the pre-setting to be done before test execution For testing about inactiveContact --- x/wasmplus/keeper/querier_test.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/x/wasmplus/keeper/querier_test.go b/x/wasmplus/keeper/querier_test.go index 322b2e5ac5..7d445a0bf3 100644 --- a/x/wasmplus/keeper/querier_test.go +++ b/x/wasmplus/keeper/querier_test.go @@ -44,6 +44,16 @@ func TestQueryInactiveContract(t *testing.T) { example := InstantiateHackatomExampleContract(t, ctx, keepers) contractAddr := example.Contract q := Querier(keeper) + rq := &types.QueryInactiveContractRequest{Address: example.Contract.String()} + + // confirm that Contract is active + got, err := q.InactiveContract(sdk.WrapSDKContext(ctx), rq) + require.NoError(t, err) + require.False(t, got.Inactivated) + + // set inactive + err = keeper.deactivateContract(ctx, example.Contract) + require.NoError(t, err) specs := map[string]struct { srcQuery *types.QueryInactiveContractRequest @@ -66,19 +76,13 @@ func TestQueryInactiveContract(t *testing.T) { for msg, spec := range specs { t.Run(msg, func(t *testing.T) { - got, err := q.InactiveContract(sdk.WrapSDKContext(ctx), spec.srcQuery) + got, err = q.InactiveContract(sdk.WrapSDKContext(ctx), spec.srcQuery) + if spec.expErr != nil { require.Equal(t, spec.expErr, err, "but got %+v", err) return } - require.NoError(t, err) - require.False(t, got.Inactivated) - // set inactive - err = keeper.deactivateContract(ctx, example.Contract) - require.NoError(t, err) - - got, err = q.InactiveContract(sdk.WrapSDKContext(ctx), spec.srcQuery) require.NoError(t, err) require.True(t, got.Inactivated) })