github.com/cosmos/cosmos-sdk@v0.50.10/x/distribution/migrations/v3/json_test.go (about) 1 package v3_test 2 3 import ( 4 "encoding/json" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 9 sdkmath "cosmossdk.io/math" 10 11 "github.com/cosmos/cosmos-sdk/client" 12 moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil" 13 "github.com/cosmos/cosmos-sdk/x/distribution" 14 v3 "github.com/cosmos/cosmos-sdk/x/distribution/migrations/v3" 15 "github.com/cosmos/cosmos-sdk/x/distribution/types" 16 ) 17 18 func TestMigrateJSON(t *testing.T) { 19 encodingConfig := moduletestutil.MakeTestEncodingConfig(distribution.AppModuleBasic{}) 20 clientCtx := client.Context{}. 21 WithInterfaceRegistry(encodingConfig.InterfaceRegistry). 22 WithTxConfig(encodingConfig.TxConfig). 23 WithCodec(encodingConfig.Codec) 24 25 distrGenState := types.DefaultGenesisState() 26 27 oldDistrState := distrGenState 28 oldDistrState.Params.BaseProposerReward = sdkmath.LegacyNewDecWithPrec(1, 2) 29 oldDistrState.Params.BonusProposerReward = sdkmath.LegacyNewDecWithPrec(4, 2) 30 31 migrated := v3.MigrateJSON(oldDistrState) 32 require.Equal(t, migrated, distrGenState) 33 34 bz, err := clientCtx.Codec.MarshalJSON(migrated) 35 require.NoError(t, err) 36 37 // Indent the JSON bz correctly. 38 var jsonObj map[string]interface{} 39 err = json.Unmarshal(bz, &jsonObj) 40 require.NoError(t, err) 41 indentedBz, err := json.MarshalIndent(jsonObj, "", "\t") 42 require.NoError(t, err) 43 44 expected := `{ 45 "delegator_starting_infos": [], 46 "delegator_withdraw_infos": [], 47 "fee_pool": { 48 "community_pool": [] 49 }, 50 "outstanding_rewards": [], 51 "params": { 52 "base_proposer_reward": "0.000000000000000000", 53 "bonus_proposer_reward": "0.000000000000000000", 54 "community_tax": "0.020000000000000000", 55 "withdraw_addr_enabled": true 56 }, 57 "previous_proposer": "", 58 "validator_accumulated_commissions": [], 59 "validator_current_rewards": [], 60 "validator_historical_rewards": [], 61 "validator_slash_events": [] 62 }` 63 64 require.Equal(t, expected, string(indentedBz)) 65 }