github.com/KiraCore/sekai@v0.3.43/x/layer2/keeper/dapp_test.go (about)

     1  package keeper_test
     2  
     3  import (
     4  	"github.com/KiraCore/sekai/x/layer2/types"
     5  	sdk "github.com/cosmos/cosmos-sdk/types"
     6  )
     7  
     8  func (suite *KeeperTestSuite) TestDappSetGetDelete() {
     9  	dapps := []types.Dapp{
    10  		{
    11  			Name:        "dapp1",
    12  			Denom:       "dapp1",
    13  			Description: "dapp1 description",
    14  			Status:      types.Active,
    15  			Website:     "",
    16  			Logo:        "",
    17  			Social:      "",
    18  			Docs:        "",
    19  			Controllers: types.Controllers{
    20  				Whitelist: types.AccountRange{
    21  					Roles:     []uint64{1},
    22  					Addresses: []string{"kira1q24436yrnettd6v4eu6r4t9gycnnddack4jr5r"},
    23  				},
    24  			},
    25  			Bin: []types.BinaryInfo{
    26  				{
    27  					Name:      "dapp1",
    28  					Hash:      "dapp1",
    29  					Source:    "dapp1",
    30  					Reference: "dapp1",
    31  					Type:      "dapp1",
    32  				},
    33  			},
    34  			Pool: types.LpPoolConfig{
    35  				Ratio:   sdk.OneDec(),
    36  				Deposit: "",
    37  				Drip:    86400,
    38  			},
    39  			Issurance: types.IssuranceConfig{
    40  				Deposit:  "",
    41  				Premint:  sdk.OneInt(),
    42  				Postmint: sdk.OneInt(),
    43  				Time:     1680141605,
    44  			},
    45  			VoteQuorum:    30,
    46  			VotePeriod:    86400,
    47  			VoteEnactment: 3000,
    48  			UpdateTimeMax: 60,
    49  			ExecutorsMin:  1,
    50  			ExecutorsMax:  2,
    51  			VerifiersMin:  1,
    52  			TotalBond:     sdk.NewInt64Coin("ukex", 10000),
    53  			CreationTime:  0,
    54  			PoolFee:       sdk.NewDec(1),
    55  		},
    56  		{
    57  			Name:        "dapp2",
    58  			Denom:       "dapp2",
    59  			Description: "dapp2 description",
    60  			Status:      types.Active,
    61  			Website:     "",
    62  			Logo:        "",
    63  			Social:      "",
    64  			Docs:        "",
    65  			Controllers: types.Controllers{
    66  				Whitelist: types.AccountRange{
    67  					Roles:     []uint64{1},
    68  					Addresses: []string{"kira1q24436yrnettd6v4eu6r4t9gycnnddack4jr5r"},
    69  				},
    70  			},
    71  			Bin: []types.BinaryInfo{
    72  				{
    73  					Name:      "dapp2",
    74  					Hash:      "dapp2",
    75  					Source:    "dapp2",
    76  					Reference: "dapp2",
    77  					Type:      "dapp2",
    78  				},
    79  			},
    80  			Pool: types.LpPoolConfig{
    81  				Ratio:   sdk.OneDec(),
    82  				Deposit: "",
    83  				Drip:    86400,
    84  			},
    85  			Issurance: types.IssuranceConfig{
    86  				Deposit:  "",
    87  				Premint:  sdk.OneInt(),
    88  				Postmint: sdk.OneInt(),
    89  				Time:     1680141605,
    90  			},
    91  			VoteQuorum:    30,
    92  			VotePeriod:    86400,
    93  			VoteEnactment: 3000,
    94  			UpdateTimeMax: 60,
    95  			ExecutorsMin:  1,
    96  			ExecutorsMax:  2,
    97  			VerifiersMin:  1,
    98  			TotalBond:     sdk.NewInt64Coin("ukex", 10000),
    99  			CreationTime:  0,
   100  			PoolFee:       sdk.NewDec(1),
   101  		},
   102  	}
   103  
   104  	for _, dapp := range dapps {
   105  		suite.app.Layer2Keeper.SetDapp(suite.ctx, dapp)
   106  	}
   107  
   108  	for _, dapp := range dapps {
   109  		c := suite.app.Layer2Keeper.GetDapp(suite.ctx, dapp.Name)
   110  		suite.Require().Equal(c, dapp)
   111  	}
   112  
   113  	allCollectives := suite.app.Layer2Keeper.GetAllDapps(suite.ctx)
   114  	suite.Require().Len(allCollectives, 2)
   115  
   116  	suite.app.Layer2Keeper.DeleteDapp(suite.ctx, dapps[0].Name)
   117  
   118  	allCollectives = suite.app.Layer2Keeper.GetAllDapps(suite.ctx)
   119  	suite.Require().Len(allCollectives, 1)
   120  
   121  	dapp := suite.app.Layer2Keeper.GetDapp(suite.ctx, dapps[0].Name)
   122  	suite.Require().Equal(dapp.Name, "")
   123  }
   124  
   125  func (suite *KeeperTestSuite) TestUserDappBondSetGetDelete() {
   126  	userBonds := []types.UserDappBond{
   127  		{
   128  			User:     "kira1q24436yrnettd6v4eu6r4t9gycnnddack4jr5r",
   129  			DappName: "dapp1",
   130  			Bond:     sdk.NewInt64Coin("ukex", 1000_000),
   131  		},
   132  		{
   133  			User:     "kira1q24436yrnettd6v4eu6r4t9gycnnddack4jr5r",
   134  			DappName: "dapp2",
   135  			Bond:     sdk.NewInt64Coin("ukex", 1000_000),
   136  		},
   137  	}
   138  
   139  	for _, userBond := range userBonds {
   140  		suite.app.Layer2Keeper.SetUserDappBond(suite.ctx, userBond)
   141  	}
   142  
   143  	for _, userBond := range userBonds {
   144  		c := suite.app.Layer2Keeper.GetUserDappBond(suite.ctx, userBond.DappName, userBond.User)
   145  		suite.Require().Equal(c, userBond)
   146  	}
   147  
   148  	allBonds := suite.app.Layer2Keeper.GetUserDappBonds(suite.ctx, userBonds[0].DappName)
   149  	suite.Require().Len(allBonds, 1)
   150  
   151  	allBonds = suite.app.Layer2Keeper.GetAllUserDappBonds(suite.ctx)
   152  	suite.Require().Len(allBonds, 2)
   153  
   154  	suite.app.Layer2Keeper.DeleteUserDappBond(suite.ctx, userBonds[0].DappName, userBonds[0].User)
   155  
   156  	allBonds = suite.app.Layer2Keeper.GetUserDappBonds(suite.ctx, userBonds[0].DappName)
   157  	suite.Require().Len(allBonds, 0)
   158  
   159  	userBond := suite.app.Layer2Keeper.GetUserDappBond(suite.ctx, userBonds[0].DappName, userBonds[0].User)
   160  	suite.Require().Equal(userBond.DappName, "")
   161  
   162  	allBonds = suite.app.Layer2Keeper.GetAllUserDappBonds(suite.ctx)
   163  	suite.Require().Len(allBonds, 1)
   164  }
   165  
   166  // TODO: add test for ExecuteDappRemove