github.com/KiraCore/sekai@v0.3.43/x/gov/keeper/councilor_test.go (about) 1 package keeper_test 2 3 import ( 4 "testing" 5 6 simapp "github.com/KiraCore/sekai/app" 7 "github.com/KiraCore/sekai/x/gov/types" 8 tmproto "github.com/cometbft/cometbft/proto/tendermint/types" 9 sdk "github.com/cosmos/cosmos-sdk/types" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestKeeper_SaveCouncilor(t *testing.T) { 14 app := simapp.Setup(false) 15 ctx := app.NewContext(false, tmproto.Header{}) 16 17 addrs := simapp.AddTestAddrsIncremental(app, ctx, 1, sdk.TokensFromConsensusPower(10, sdk.DefaultPowerReduction)) 18 addr := addrs[0] 19 20 councilor := types.NewCouncilor( 21 addr, 22 types.CouncilorActive, 23 ) 24 25 app.CustomGovKeeper.SaveCouncilor(ctx, councilor) 26 27 savedCouncilor, found := app.CustomGovKeeper.GetCouncilor(ctx, councilor.Address) 28 require.True(t, found) 29 require.Equal(t, councilor, savedCouncilor) 30 } 31 32 func TestKeeper_TryCouncilorMonikerOrUsernameUpdate(t *testing.T) { 33 app := simapp.Setup(false) 34 ctx := app.NewContext(false, tmproto.Header{}) 35 36 addrs := simapp.AddTestAddrsIncremental(app, ctx, 1, sdk.TokensFromConsensusPower(10, sdk.DefaultPowerReduction)) 37 addr := addrs[0] 38 39 councilor := types.NewCouncilor( 40 addr, 41 types.CouncilorActive, 42 ) 43 44 app.CustomGovKeeper.SaveCouncilor(ctx, councilor) 45 46 savedCouncilor, found := app.CustomGovKeeper.GetCouncilor(ctx, councilor.Address) 47 require.True(t, found) 48 require.Equal(t, councilor, savedCouncilor) 49 50 err := app.CustomGovKeeper.RegisterIdentityRecords(ctx, addr, []types.IdentityInfoEntry{ 51 {Key: "moniker", Info: "moniker1"}, 52 }) 53 require.NoError(t, err) 54 err = app.CustomGovKeeper.RegisterIdentityRecords(ctx, addr, []types.IdentityInfoEntry{ 55 {Key: "moniker", Info: "xxxx"}, 56 }) 57 require.Error(t, err) 58 59 err = app.CustomGovKeeper.RegisterIdentityRecords(ctx, addr, []types.IdentityInfoEntry{ 60 {Key: "username", Info: "username1"}, 61 }) 62 require.NoError(t, err) 63 err = app.CustomGovKeeper.RegisterIdentityRecords(ctx, addr, []types.IdentityInfoEntry{ 64 {Key: "username", Info: "xxxx"}, 65 }) 66 require.Error(t, err) 67 68 err = app.CustomGovKeeper.RegisterIdentityRecords(ctx, addr, []types.IdentityInfoEntry{ 69 {Key: "avatar", Info: "avatar1"}, 70 }) 71 require.NoError(t, err) 72 err = app.CustomGovKeeper.RegisterIdentityRecords(ctx, addr, []types.IdentityInfoEntry{ 73 {Key: "avatar", Info: "xxxx"}, 74 }) 75 require.NoError(t, err) 76 } 77 78 func TestKeeper_OnCouncilorAct(t *testing.T) { 79 app := simapp.Setup(false) 80 ctx := app.NewContext(false, tmproto.Header{}) 81 82 addrs := simapp.AddTestAddrsIncremental(app, ctx, 1, sdk.TokensFromConsensusPower(10, sdk.DefaultPowerReduction)) 83 addr := addrs[0] 84 85 councilor := types.Councilor{ 86 Address: addr, 87 Status: types.CouncilorActive, 88 Rank: 1, 89 AbstentionCounter: 1, 90 } 91 92 app.CustomGovKeeper.SaveCouncilor(ctx, councilor) 93 94 savedCouncilor, found := app.CustomGovKeeper.GetCouncilor(ctx, councilor.Address) 95 require.True(t, found) 96 require.Equal(t, councilor, savedCouncilor) 97 98 app.CustomGovKeeper.OnCouncilorAct(ctx, addr) 99 savedCouncilor, found = app.CustomGovKeeper.GetCouncilor(ctx, councilor.Address) 100 require.True(t, found) 101 require.Equal(t, types.Councilor{ 102 Address: addr, 103 Status: types.CouncilorActive, 104 Rank: 2, 105 AbstentionCounter: 0, 106 }, savedCouncilor) 107 } 108 109 func TestKeeper_OnCouncilorAbsent(t *testing.T) { 110 app := simapp.Setup(false) 111 ctx := app.NewContext(false, tmproto.Header{}) 112 113 addrs := simapp.AddTestAddrsIncremental(app, ctx, 1, sdk.TokensFromConsensusPower(10, sdk.DefaultPowerReduction)) 114 addr := addrs[0] 115 116 councilor := types.Councilor{ 117 Address: addr, 118 Status: types.CouncilorActive, 119 Rank: 1, 120 AbstentionCounter: 1, 121 } 122 123 app.CustomGovKeeper.SaveCouncilor(ctx, councilor) 124 125 savedCouncilor, found := app.CustomGovKeeper.GetCouncilor(ctx, councilor.Address) 126 require.True(t, found) 127 require.Equal(t, councilor, savedCouncilor) 128 129 app.CustomGovKeeper.OnCouncilorAbsent(ctx, addr) 130 savedCouncilor, found = app.CustomGovKeeper.GetCouncilor(ctx, councilor.Address) 131 require.True(t, found) 132 require.Equal(t, types.Councilor{ 133 Address: addr, 134 Status: types.CouncilorInactive, 135 Rank: 0, 136 AbstentionCounter: 2, 137 }, savedCouncilor) 138 } 139 140 func TestKeeper_OnCouncilorJail(t *testing.T) { 141 app := simapp.Setup(false) 142 ctx := app.NewContext(false, tmproto.Header{}) 143 144 addrs := simapp.AddTestAddrsIncremental(app, ctx, 1, sdk.TokensFromConsensusPower(10, sdk.DefaultPowerReduction)) 145 addr := addrs[0] 146 147 councilor := types.Councilor{ 148 Address: addr, 149 Status: types.CouncilorActive, 150 Rank: 1, 151 AbstentionCounter: 1, 152 } 153 154 app.CustomGovKeeper.SaveCouncilor(ctx, councilor) 155 156 savedCouncilor, found := app.CustomGovKeeper.GetCouncilor(ctx, councilor.Address) 157 require.True(t, found) 158 require.Equal(t, councilor, savedCouncilor) 159 160 app.CustomGovKeeper.OnCouncilorJail(ctx, addr) 161 savedCouncilor, found = app.CustomGovKeeper.GetCouncilor(ctx, councilor.Address) 162 require.True(t, found) 163 require.Equal(t, types.Councilor{ 164 Address: addr, 165 Status: types.CouncilorJailed, 166 Rank: 0, 167 AbstentionCounter: 1, 168 }, savedCouncilor) 169 } 170 171 func TestKeeper_ResetWholeCouncilorRank(t *testing.T) { 172 app := simapp.Setup(false) 173 ctx := app.NewContext(false, tmproto.Header{}) 174 175 addrs := simapp.AddTestAddrsIncremental(app, ctx, 1, sdk.TokensFromConsensusPower(10, sdk.DefaultPowerReduction)) 176 addr := addrs[0] 177 178 councilor := types.Councilor{ 179 Address: addr, 180 Status: types.CouncilorActive, 181 Rank: 1, 182 AbstentionCounter: 1, 183 } 184 185 app.CustomGovKeeper.SaveCouncilor(ctx, councilor) 186 187 savedCouncilor, found := app.CustomGovKeeper.GetCouncilor(ctx, councilor.Address) 188 require.True(t, found) 189 require.Equal(t, councilor, savedCouncilor) 190 191 app.CustomGovKeeper.ResetWholeCouncilorRank(ctx) 192 savedCouncilor, found = app.CustomGovKeeper.GetCouncilor(ctx, councilor.Address) 193 require.True(t, found) 194 require.Equal(t, types.Councilor{ 195 Address: addr, 196 Status: types.CouncilorActive, 197 Rank: 0, 198 AbstentionCounter: 0, 199 }, savedCouncilor) 200 }