From fd5c2f772eb0d2489cd083a61ebcfcd744f89489 Mon Sep 17 00:00:00 2001 From: Kien Trinh <51135161+kien6034@users.noreply.github.com> Date: Mon, 6 May 2024 20:11:52 +0700 Subject: [PATCH] refactor(tests/integration/distribution): using setupValidatorWithCommission helper function (#20275) --- .../distribution/keeper/common_test.go | 25 ++++++ .../distribution/keeper/grpc_query_test.go | 90 ++++--------------- .../distribution/keeper/msg_server_test.go | 6 ++ 3 files changed, 47 insertions(+), 74 deletions(-) diff --git a/tests/integration/distribution/keeper/common_test.go b/tests/integration/distribution/keeper/common_test.go index 783d44e2da..e298225b74 100644 --- a/tests/integration/distribution/keeper/common_test.go +++ b/tests/integration/distribution/keeper/common_test.go @@ -1,7 +1,17 @@ package keeper_test import ( + "testing" + + "gotest.tools/v3/assert" + + "cosmossdk.io/math" + "cosmossdk.io/x/distribution/types" + stakingtestutil "cosmossdk.io/x/staking/testutil" + stakingtypes "cosmossdk.io/x/staking/types" + simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims" + sdk "github.com/cosmos/cosmos-sdk/types" ) var ( @@ -9,3 +19,18 @@ var ( valConsPk0 = PKS[0] ) + +func setupValidatorWithCommission(t *testing.T, f *fixture, valAddr sdk.ValAddress, initialStake int64) { + t.Helper() + initTokens := f.stakingKeeper.TokensFromConsensusPower(f.sdkCtx, int64(1000)) + assert.NilError(t, f.bankKeeper.MintCoins(f.sdkCtx, types.ModuleName, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, initTokens)))) + assert.NilError(t, f.stakingKeeper.Params.Set(f.sdkCtx, stakingtypes.DefaultParams())) + + funds := f.stakingKeeper.TokensFromConsensusPower(f.sdkCtx, int64(1000)) + assert.NilError(t, f.bankKeeper.SendCoinsFromModuleToAccount(f.sdkCtx, types.ModuleName, sdk.AccAddress(valAddr), sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, funds)))) + f.accountKeeper.SetAccount(f.sdkCtx, f.accountKeeper.NewAccountWithAddress(f.sdkCtx, sdk.AccAddress(valAddr))) + + tstaking := stakingtestutil.NewHelper(t, f.sdkCtx, f.stakingKeeper) + tstaking.Commission = stakingtypes.NewCommissionRates(math.LegacyNewDecWithPrec(5, 1), math.LegacyNewDecWithPrec(5, 1), math.LegacyNewDec(0)) + tstaking.CreateValidator(valAddr, valConsPk0, math.NewInt(initialStake), true) +} diff --git a/tests/integration/distribution/keeper/grpc_query_test.go b/tests/integration/distribution/keeper/grpc_query_test.go index 88c081c59c..f83671fc4e 100644 --- a/tests/integration/distribution/keeper/grpc_query_test.go +++ b/tests/integration/distribution/keeper/grpc_query_test.go @@ -9,7 +9,6 @@ import ( "cosmossdk.io/collections" "cosmossdk.io/math" "cosmossdk.io/x/distribution/types" - stakingtestutil "cosmossdk.io/x/staking/testutil" stakingtypes "cosmossdk.io/x/staking/types" sdk "github.com/cosmos/cosmos-sdk/types" @@ -22,9 +21,6 @@ func TestGRPCParams(t *testing.T) { assert.NilError(t, f.distrKeeper.Params.Set(f.sdkCtx, types.DefaultParams())) - qr := f.app.QueryHelper() - queryClient := types.NewQueryClient(qr) - var ( params types.Params expParams types.Params @@ -64,7 +60,7 @@ func TestGRPCParams(t *testing.T) { t.Run(fmt.Sprintf("Case %s", tc.name), func(t *testing.T) { tc.malleate() - paramsRes, err := queryClient.Params(f.sdkCtx, tc.msg) + paramsRes, err := f.queryClient.Params(f.sdkCtx, tc.msg) assert.NilError(t, err) assert.Assert(t, paramsRes != nil) assert.DeepEqual(t, paramsRes.Params, expParams) @@ -77,30 +73,14 @@ func TestGRPCValidatorOutstandingRewards(t *testing.T) { t.Parallel() f := initFixture(t) - // set module account coins - initTokens := f.stakingKeeper.TokensFromConsensusPower(f.sdkCtx, int64(1000)) - assert.NilError(t, f.bankKeeper.MintCoins(f.sdkCtx, types.ModuleName, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, initTokens)))) - - // Set default staking params - assert.NilError(t, f.stakingKeeper.Params.Set(f.sdkCtx, stakingtypes.DefaultParams())) - - qr := f.app.QueryHelper() - queryClient := types.NewQueryClient(qr) + assert.NilError(t, f.distrKeeper.Params.Set(f.sdkCtx, types.DefaultParams())) + setupValidatorWithCommission(t, f, f.valAddr, 10) // Setup a validator with commission valCommission := sdk.DecCoins{ sdk.NewDecCoinFromDec("mytoken", math.LegacyNewDec(5000)), sdk.NewDecCoinFromDec("stake", math.LegacyNewDec(300)), } - // send funds to val addr - funds := f.stakingKeeper.TokensFromConsensusPower(f.sdkCtx, int64(1000)) - assert.NilError(t, f.bankKeeper.SendCoinsFromModuleToAccount(f.sdkCtx, types.ModuleName, sdk.AccAddress(f.valAddr), sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, funds)))) - f.accountKeeper.SetAccount(f.sdkCtx, f.accountKeeper.NewAccountWithAddress(f.sdkCtx, sdk.AccAddress(f.valAddr))) - initialStake := int64(10) - tstaking := stakingtestutil.NewHelper(t, f.sdkCtx, f.stakingKeeper) - tstaking.Commission = stakingtypes.NewCommissionRates(math.LegacyNewDecWithPrec(5, 1), math.LegacyNewDecWithPrec(5, 1), math.LegacyNewDec(0)) - tstaking.CreateValidator(f.valAddr, valConsPk0, math.NewInt(initialStake), true) - // set outstanding rewards err := f.distrKeeper.ValidatorOutstandingRewards.Set(f.sdkCtx, f.valAddr, types.ValidatorOutstandingRewards{Rewards: valCommission}) assert.NilError(t, err) @@ -136,7 +116,7 @@ func TestGRPCValidatorOutstandingRewards(t *testing.T) { for _, testCase := range testCases { tc := testCase t.Run(fmt.Sprintf("Case %s", tc.name), func(t *testing.T) { - validatorOutstandingRewards, err := queryClient.ValidatorOutstandingRewards(f.sdkCtx, tc.msg) + validatorOutstandingRewards, err := f.queryClient.ValidatorOutstandingRewards(f.sdkCtx, tc.msg) if tc.expPass { assert.NilError(t, err) @@ -154,24 +134,8 @@ func TestGRPCValidatorCommission(t *testing.T) { t.Parallel() f := initFixture(t) - // set module account coins - initTokens := f.stakingKeeper.TokensFromConsensusPower(f.sdkCtx, int64(1000)) - assert.NilError(t, f.bankKeeper.MintCoins(f.sdkCtx, types.ModuleName, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, initTokens)))) - - // Set default staking params - assert.NilError(t, f.stakingKeeper.Params.Set(f.sdkCtx, stakingtypes.DefaultParams())) - - qr := f.app.QueryHelper() - queryClient := types.NewQueryClient(qr) - - // send funds to val addr - funds := f.stakingKeeper.TokensFromConsensusPower(f.sdkCtx, int64(1000)) - assert.NilError(t, f.bankKeeper.SendCoinsFromModuleToAccount(f.sdkCtx, types.ModuleName, sdk.AccAddress(f.valAddr), sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, funds)))) - f.accountKeeper.SetAccount(f.sdkCtx, f.accountKeeper.NewAccountWithAddress(f.sdkCtx, sdk.AccAddress(f.valAddr))) - initialStake := int64(10) - tstaking := stakingtestutil.NewHelper(t, f.sdkCtx, f.stakingKeeper) - tstaking.Commission = stakingtypes.NewCommissionRates(math.LegacyNewDecWithPrec(5, 1), math.LegacyNewDecWithPrec(5, 1), math.LegacyNewDec(0)) - tstaking.CreateValidator(f.valAddr, valConsPk0, math.NewInt(initialStake), true) + assert.NilError(t, f.distrKeeper.Params.Set(f.sdkCtx, types.DefaultParams())) // Set default distribution parameters + setupValidatorWithCommission(t, f, f.valAddr, 10) // Setup a validator with commission commission := sdk.DecCoins{sdk.DecCoin{Denom: "token1", Amount: math.LegacyNewDec(4)}, {Denom: "token2", Amount: math.LegacyNewDec(2)}} assert.NilError(t, f.distrKeeper.ValidatorsAccumulatedCommission.Set(f.sdkCtx, f.valAddr, types.ValidatorAccumulatedCommission{Commission: commission})) @@ -204,7 +168,7 @@ func TestGRPCValidatorCommission(t *testing.T) { for _, testCase := range testCases { tc := testCase t.Run(fmt.Sprintf("Case %s", tc.name), func(t *testing.T) { - commissionRes, err := queryClient.ValidatorCommission(f.sdkCtx, tc.msg) + commissionRes, err := f.queryClient.ValidatorCommission(f.sdkCtx, tc.msg) if tc.expPass { assert.NilError(t, err) @@ -222,9 +186,6 @@ func TestGRPCValidatorSlashes(t *testing.T) { t.Parallel() f := initFixture(t) - qr := f.app.QueryHelper() - queryClient := types.NewQueryClient(qr) - addr2 := sdk.AccAddress(PKS[1].Address()) valAddr2 := sdk.ValAddress(addr2) @@ -359,7 +320,7 @@ func TestGRPCValidatorSlashes(t *testing.T) { t.Run(fmt.Sprintf("Case %s", tc.name), func(t *testing.T) { tc.malleate() - slashesRes, err := queryClient.ValidatorSlashes(f.sdkCtx, req) + slashesRes, err := f.queryClient.ValidatorSlashes(f.sdkCtx, req) if tc.expPass { assert.NilError(t, err) @@ -378,9 +339,6 @@ func TestGRPCDelegatorWithdrawAddress(t *testing.T) { assert.NilError(t, f.distrKeeper.Params.Set(f.sdkCtx, types.DefaultParams())) - qr := f.app.QueryHelper() - queryClient := types.NewQueryClient(qr) - addr2 := sdk.AccAddress(PKS[1].Address()) err := f.distrKeeper.SetWithdrawAddr(f.sdkCtx, f.addr, addr2) @@ -408,7 +366,7 @@ func TestGRPCDelegatorWithdrawAddress(t *testing.T) { for _, testCase := range testCases { tc := testCase t.Run(fmt.Sprintf("Case %s", tc.name), func(t *testing.T) { - withdrawAddress, err := queryClient.DelegatorWithdrawAddress(f.sdkCtx, tc.msg) + withdrawAddress, err := f.queryClient.DelegatorWithdrawAddress(f.sdkCtx, tc.msg) if tc.expPass { assert.NilError(t, err) @@ -425,9 +383,6 @@ func TestGRPCCommunityPool(t *testing.T) { t.Parallel() f := initFixture(t) - qr := f.app.QueryHelper() - queryClient := types.NewQueryClient(qr) - var ( req *types.QueryCommunityPoolRequest //nolint:staticcheck // we're using a deprecated call expPool *types.QueryCommunityPoolResponse //nolint:staticcheck // we're using a deprecated call @@ -465,7 +420,7 @@ func TestGRPCCommunityPool(t *testing.T) { t.Run(fmt.Sprintf("Case %s", tc.name), func(t *testing.T) { testCase.malleate() - pool, err := queryClient.CommunityPool(f.sdkCtx, req) //nolint:staticcheck // we're using a deprecated call + pool, err := f.queryClient.CommunityPool(f.sdkCtx, req) //nolint:staticcheck // we're using a deprecated call assert.NilError(t, err) assert.DeepEqual(t, expPool, pool) @@ -481,32 +436,19 @@ func TestGRPCDelegationRewards(t *testing.T) { CommunityPool: sdk.NewDecCoins(sdk.DecCoin{Denom: sdk.DefaultBondDenom, Amount: math.LegacyNewDec(1000)}), })) - // set module account coins - initTokens := f.stakingKeeper.TokensFromConsensusPower(f.sdkCtx, int64(1000)) - assert.NilError(t, f.bankKeeper.MintCoins(f.sdkCtx, types.ModuleName, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, initTokens)))) + initialStake := int64(10) + assert.NilError(t, f.distrKeeper.Params.Set(f.sdkCtx, types.DefaultParams())) + setupValidatorWithCommission(t, f, f.valAddr, initialStake) // Setup a validator with commission + val, found := f.stakingKeeper.GetValidator(f.sdkCtx, f.valAddr) + assert.Assert(t, found) // Set default staking params assert.NilError(t, f.stakingKeeper.Params.Set(f.sdkCtx, stakingtypes.DefaultParams())) - qr := f.app.QueryHelper() - queryClient := types.NewQueryClient(qr) - addr2 := sdk.AccAddress(PKS[1].Address()) valAddr2 := sdk.ValAddress(addr2) delAddr := sdk.AccAddress(PKS[2].Address()) - // send funds to val addr - funds := f.stakingKeeper.TokensFromConsensusPower(f.sdkCtx, int64(1000)) - assert.NilError(t, f.bankKeeper.SendCoinsFromModuleToAccount(f.sdkCtx, types.ModuleName, sdk.AccAddress(f.valAddr), sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, funds)))) - f.accountKeeper.SetAccount(f.sdkCtx, f.accountKeeper.NewAccountWithAddress(f.sdkCtx, sdk.AccAddress(f.valAddr))) - initialStake := int64(10) - tstaking := stakingtestutil.NewHelper(t, f.sdkCtx, f.stakingKeeper) - tstaking.Commission = stakingtypes.NewCommissionRates(math.LegacyNewDecWithPrec(5, 1), math.LegacyNewDecWithPrec(5, 1), math.LegacyNewDec(0)) - tstaking.CreateValidator(f.valAddr, valConsPk0, math.NewInt(initialStake), true) - - val, found := f.stakingKeeper.GetValidator(f.sdkCtx, f.valAddr) - assert.Assert(t, found) - // setup delegation delTokens := sdk.TokensFromConsensusPower(2, sdk.DefaultPowerReduction) validator, issuedShares := val.AddTokensFromDel(delTokens) @@ -582,7 +524,7 @@ func TestGRPCDelegationRewards(t *testing.T) { for _, testCase := range testCases { tc := testCase t.Run(fmt.Sprintf("Case %s", tc.name), func(t *testing.T) { - rewards, err := queryClient.DelegationRewards(f.sdkCtx, tc.msg) + rewards, err := f.queryClient.DelegationRewards(f.sdkCtx, tc.msg) if tc.expPass { assert.NilError(t, err) diff --git a/tests/integration/distribution/keeper/msg_server_test.go b/tests/integration/distribution/keeper/msg_server_test.go index dc320e77f7..2ca4814fd1 100644 --- a/tests/integration/distribution/keeper/msg_server_test.go +++ b/tests/integration/distribution/keeper/msg_server_test.go @@ -56,6 +56,8 @@ type fixture struct { cdc codec.Codec keys map[string]*storetypes.KVStoreKey + queryClient distrtypes.QueryClient + accountKeeper authkeeper.AccountKeeper bankKeeper bankkeeper.Keeper distrKeeper distrkeeper.Keeper @@ -174,6 +176,9 @@ func initFixture(t *testing.T) *fixture { distrtypes.RegisterMsgServer(integrationApp.MsgServiceRouter(), distrkeeper.NewMsgServerImpl(distrKeeper)) distrtypes.RegisterQueryServer(integrationApp.QueryHelper(), distrkeeper.NewQuerier(distrKeeper)) + qr := integrationApp.QueryHelper() + distrQueryClient := distrtypes.NewQueryClient(qr) + return &fixture{ app: integrationApp, sdkCtx: sdkCtx, @@ -186,6 +191,7 @@ func initFixture(t *testing.T) *fixture { poolKeeper: poolKeeper, addr: addr, valAddr: valAddr, + queryClient: distrQueryClient, } }