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  }