mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-25 07:45:18 +00:00
0c02c27a9d
* feat: use gov to manage dasigners params * feat: evm precompile query func * test: unit test * feat: remove epoch and block height hard check * feat: add params event
88 lines
2.4 KiB
Go
88 lines
2.4 KiB
Go
package keeper_test
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/0glabs/0g-chain/x/dasigners/v1/testutil"
|
|
"github.com/0glabs/0g-chain/x/dasigners/v1/types"
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
"github.com/stretchr/testify/suite"
|
|
)
|
|
|
|
type MsgServerTestSuite struct {
|
|
testutil.Suite
|
|
}
|
|
|
|
func (suite *MsgServerTestSuite) TestChangeParams() {
|
|
govAccAddr := suite.GovKeeper.GetGovernanceAccount(suite.Ctx).GetAddress().String()
|
|
|
|
testCases := []struct {
|
|
name string
|
|
req *types.MsgChangeParams
|
|
expectErr bool
|
|
errMsg string
|
|
}{
|
|
{
|
|
name: "invalid signer",
|
|
req: &types.MsgChangeParams{
|
|
Authority: suite.Addresses[0].String(),
|
|
Params: &types.Params{
|
|
TokensPerVote: 10,
|
|
MaxVotesPerSigner: 1024,
|
|
MaxQuorums: 10,
|
|
EpochBlocks: 5760,
|
|
EncodedSlices: 3072,
|
|
},
|
|
},
|
|
expectErr: true,
|
|
errMsg: "expected gov account as only signer for proposal message",
|
|
},
|
|
{
|
|
name: "success",
|
|
req: &types.MsgChangeParams{
|
|
Authority: govAccAddr,
|
|
Params: &types.Params{
|
|
TokensPerVote: 1,
|
|
MaxVotesPerSigner: 2048,
|
|
MaxQuorums: 1,
|
|
EpochBlocks: 100,
|
|
EncodedSlices: 2048 * 3,
|
|
},
|
|
},
|
|
expectErr: false,
|
|
},
|
|
}
|
|
for _, tc := range testCases {
|
|
suite.Run(tc.name, func() {
|
|
oldEventNum := len(suite.Ctx.EventManager().Events())
|
|
_, err := suite.Keeper.ChangeParams(suite.Ctx, tc.req)
|
|
if tc.expectErr {
|
|
suite.Require().Error(err)
|
|
suite.Require().Contains(err.Error(), tc.errMsg)
|
|
} else {
|
|
suite.Require().NoError(err)
|
|
params := suite.Keeper.GetParams(suite.Ctx)
|
|
suite.Require().EqualValues(*tc.req.Params, params)
|
|
suite.Assert().NoError(err)
|
|
|
|
events := suite.Ctx.EventManager().Events()
|
|
suite.Assert().EqualValues(len(events), oldEventNum+1)
|
|
suite.Assert().EqualValues(events[len(events)-1], sdk.NewEvent(
|
|
types.EventTypeUpdateParams,
|
|
sdk.NewAttribute(types.AttributeKeyBlockHeight, fmt.Sprint(suite.Ctx.BlockHeader().Height)),
|
|
sdk.NewAttribute(types.AttributeKeyTokensPerVote, fmt.Sprint(params.TokensPerVote)),
|
|
sdk.NewAttribute(types.AttributeKeyMaxQuorums, fmt.Sprint(params.MaxQuorums)),
|
|
sdk.NewAttribute(types.AttributeKeyEpochBlocks, fmt.Sprint(params.EpochBlocks)),
|
|
sdk.NewAttribute(types.AttributeKeyEncodedSlices, fmt.Sprint(params.EncodedSlices)),
|
|
),
|
|
)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestMsgServerSuite(t *testing.T) {
|
|
suite.Run(t, new(MsgServerTestSuite))
|
|
}
|