github.com/Finschia/finschia-sdk@v0.48.1/x/gov/legacy/v043/json_test.go (about) 1 package v043_test 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "testing" 7 8 "github.com/stretchr/testify/require" 9 10 "github.com/Finschia/finschia-sdk/client" 11 "github.com/Finschia/finschia-sdk/simapp" 12 sdk "github.com/Finschia/finschia-sdk/types" 13 v043gov "github.com/Finschia/finschia-sdk/x/gov/legacy/v043" 14 "github.com/Finschia/finschia-sdk/x/gov/types" 15 ) 16 17 func TestMigrateJSON(t *testing.T) { 18 encodingConfig := simapp.MakeTestEncodingConfig() 19 clientCtx := client.Context{}. 20 WithInterfaceRegistry(encodingConfig.InterfaceRegistry). 21 WithTxConfig(encodingConfig.TxConfig). 22 WithCodec(encodingConfig.Marshaler) 23 24 voter, err := sdk.AccAddressFromBech32("link1fl48vsnmsdzcv85q5d2q4z5ajdha8yu3q4fdzl") 25 require.NoError(t, err) 26 govGenState := &types.GenesisState{ 27 Votes: types.Votes{ 28 types.Vote{ProposalId: 1, Voter: voter.String(), Option: types.OptionAbstain}, 29 types.Vote{ProposalId: 2, Voter: voter.String(), Option: types.OptionEmpty}, 30 types.Vote{ProposalId: 3, Voter: voter.String(), Option: types.OptionNo}, 31 types.Vote{ProposalId: 4, Voter: voter.String(), Option: types.OptionNoWithVeto}, 32 types.Vote{ProposalId: 5, Voter: voter.String(), Option: types.OptionYes}, 33 }, 34 } 35 36 migrated := v043gov.MigrateJSON(govGenState) 37 38 bz, err := clientCtx.Codec.MarshalJSON(migrated) 39 require.NoError(t, err) 40 41 // Indent the JSON bz correctly. 42 var jsonObj map[string]interface{} 43 err = json.Unmarshal(bz, &jsonObj) 44 require.NoError(t, err) 45 indentedBz, err := json.MarshalIndent(jsonObj, "", "\t") 46 require.NoError(t, err) 47 48 // Make sure about: 49 // - Votes are all ADR-037 weighted votes with weight 1. 50 expected := `{ 51 "deposit_params": { 52 "max_deposit_period": "0s", 53 "min_deposit": [] 54 }, 55 "deposits": [], 56 "proposals": [], 57 "starting_proposal_id": "0", 58 "tally_params": { 59 "quorum": "0", 60 "threshold": "0", 61 "veto_threshold": "0" 62 }, 63 "votes": [ 64 { 65 "option": "VOTE_OPTION_UNSPECIFIED", 66 "options": [ 67 { 68 "option": "VOTE_OPTION_ABSTAIN", 69 "weight": "1.000000000000000000" 70 } 71 ], 72 "proposal_id": "1", 73 "voter": "link1fl48vsnmsdzcv85q5d2q4z5ajdha8yu3q4fdzl" 74 }, 75 { 76 "option": "VOTE_OPTION_UNSPECIFIED", 77 "options": [ 78 { 79 "option": "VOTE_OPTION_UNSPECIFIED", 80 "weight": "1.000000000000000000" 81 } 82 ], 83 "proposal_id": "2", 84 "voter": "link1fl48vsnmsdzcv85q5d2q4z5ajdha8yu3q4fdzl" 85 }, 86 { 87 "option": "VOTE_OPTION_UNSPECIFIED", 88 "options": [ 89 { 90 "option": "VOTE_OPTION_NO", 91 "weight": "1.000000000000000000" 92 } 93 ], 94 "proposal_id": "3", 95 "voter": "link1fl48vsnmsdzcv85q5d2q4z5ajdha8yu3q4fdzl" 96 }, 97 { 98 "option": "VOTE_OPTION_UNSPECIFIED", 99 "options": [ 100 { 101 "option": "VOTE_OPTION_NO_WITH_VETO", 102 "weight": "1.000000000000000000" 103 } 104 ], 105 "proposal_id": "4", 106 "voter": "link1fl48vsnmsdzcv85q5d2q4z5ajdha8yu3q4fdzl" 107 }, 108 { 109 "option": "VOTE_OPTION_UNSPECIFIED", 110 "options": [ 111 { 112 "option": "VOTE_OPTION_YES", 113 "weight": "1.000000000000000000" 114 } 115 ], 116 "proposal_id": "5", 117 "voter": "link1fl48vsnmsdzcv85q5d2q4z5ajdha8yu3q4fdzl" 118 } 119 ], 120 "voting_params": { 121 "voting_period": "0s" 122 } 123 }` 124 125 fmt.Println(string(indentedBz)) 126 127 require.Equal(t, expected, string(indentedBz)) 128 }