package utils_test import ( "testing" "github.com/stretchr/testify/require" "github.com/cosmos/cosmos-sdk/x/gov/client/utils" ) func TestNormalizeWeightedVoteOptions(t *testing.T) { cases := map[string]struct { options string normalized string }{ "simple Yes": { options: "Yes", normalized: "VOTE_OPTION_YES=1", }, "simple yes": { options: "yes", normalized: "VOTE_OPTION_YES=1", }, "formal yes": { options: "yes=1", normalized: "VOTE_OPTION_YES=1", }, "half yes half no": { options: "yes=0.5,no=0.5", normalized: "VOTE_OPTION_YES=0.5,VOTE_OPTION_NO=0.5", }, "3 options": { options: "Yes=0.5,No=0.4,NoWithVeto=0.1", normalized: "VOTE_OPTION_YES=0.5,VOTE_OPTION_NO=0.4,VOTE_OPTION_NO_WITH_VETO=0.1", }, "zero weight option": { options: "Yes=0.5,No=0.5,NoWithVeto=0", normalized: "VOTE_OPTION_YES=0.5,VOTE_OPTION_NO=0.5,VOTE_OPTION_NO_WITH_VETO=0", }, "minus weight option": { options: "Yes=0.5,No=0.6,NoWithVeto=-0.1", normalized: "VOTE_OPTION_YES=0.5,VOTE_OPTION_NO=0.6,VOTE_OPTION_NO_WITH_VETO=-0.1", }, "empty options": { options: "", normalized: "=1", }, "not available option": { options: "Yessss=1", normalized: "Yessss=1", }, } for _, tc := range cases { normalized := utils.NormalizeWeightedVoteOptions(tc.options) require.Equal(t, normalized, tc.normalized) } } func TestNormalizeProposalStatus(t *testing.T) { type args struct { status string } tests := []struct { name string args args want string }{ {"invalid", args{"unknown"}, "unknown"}, {"deposit_period", args{"deposit_period"}, "PROPOSAL_STATUS_DEPOSIT_PERIOD"}, {"DepositPeriod", args{"DepositPeriod"}, "PROPOSAL_STATUS_DEPOSIT_PERIOD"}, {"voting_period", args{"deposit_period"}, "PROPOSAL_STATUS_DEPOSIT_PERIOD"}, {"VotingPeriod", args{"DepositPeriod"}, "PROPOSAL_STATUS_DEPOSIT_PERIOD"}, {"passed", args{"passed"}, "PROPOSAL_STATUS_PASSED"}, {"Passed", args{"Passed"}, "PROPOSAL_STATUS_PASSED"}, {"Rejected", args{"Rejected"}, "PROPOSAL_STATUS_REJECTED"}, {"rejected", args{"rejected"}, "PROPOSAL_STATUS_REJECTED"}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { require.Equal(t, tt.want, utils.NormalizeProposalStatus(tt.args.status)) }) } }