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  }