Skip to content

Commit

Permalink
fix some test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
Pantani committed Oct 2, 2024
1 parent a50b17f commit 6a04528
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 142 deletions.
5 changes: 2 additions & 3 deletions x/launch/keeper/invariants.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,14 +89,13 @@ func DuplicatedAccountInvariant(k Keeper) sdk.Invariant {
return sdk.FormatInvariant(types.ModuleName, invalidBech32, err.Error()), true
}
_, err = k.VestingAccount.Get(ctx, collections.Join(account.LaunchID, sdk.AccAddress(address)))
if err != nil {
if err == nil {
return sdk.FormatInvariant(
types.ModuleName, duplicatedAccountRoute,
fmt.Sprintf(
"account %s for chain %d found in vesting and genesis accounts: %s",
"account %s for chain %d found in vesting and genesis accounts",
account.Address,
account.LaunchID,
err.Error(),
),
), true
}
Expand Down
13 changes: 8 additions & 5 deletions x/launch/keeper/invariants_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,27 @@ import (
"testing"

"cosmossdk.io/collections"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/stretchr/testify/require"

testkeeper "github.com/ignite/network/testutil/keeper"
"github.com/ignite/network/testutil/sample"
"github.com/ignite/network/x/launch/keeper"
launch "github.com/ignite/network/x/launch/types"
)

func TestDuplicatedAccountInvariant(t *testing.T) {
ctx, tk, _ := testkeeper.NewTestSetup(t)
t.Run("should not break with valid state", func(t *testing.T) {
launchID := uint64(0)
vestingAddress := sample.AccAddress(r)
vestingAccount := sample.VestingAccount(r, 0, vestingAddress.String())
err := tk.LaunchKeeper.VestingAccount.Set(ctx, collections.Join(vestingAccount.LaunchID, vestingAddress), vestingAccount)
vestingAccount := sample.VestingAccount(r, launchID, vestingAddress.String())
err := tk.LaunchKeeper.VestingAccount.Set(ctx, collections.Join(launchID, vestingAddress), vestingAccount)
require.NoError(t, err)

genesisAddress := sample.AccAddress(r)
genesisAccount := sample.GenesisAccount(r, 0, genesisAddress.String())
err = tk.LaunchKeeper.GenesisAccount.Set(ctx, collections.Join(genesisAccount.LaunchID, vestingAddress), genesisAccount)
genesisAccount := sample.GenesisAccount(r, launchID, genesisAddress.String())
err = tk.LaunchKeeper.GenesisAccount.Set(ctx, collections.Join(launchID, genesisAddress), genesisAccount)
require.NoError(t, err)

msg, broken := keeper.DuplicatedAccountInvariant(tk.LaunchKeeper)(ctx)
Expand Down Expand Up @@ -89,7 +92,7 @@ func TestUnknownRequestTypeInvariant(t *testing.T) {

t.Run("should break with an invalid request", func(t *testing.T) {
_, err := tk.LaunchKeeper.AppendRequest(ctx, sample.RequestWithContent(r, 0,
sample.GenesisAccountContent(r, 0, "invalid"),
launch.NewGenesisAccount(0, sample.Address(r), sdk.NewCoins()),
))
require.NoError(t, err)
msg, broken := keeper.UnknownRequestTypeInvariant(tk.LaunchKeeper)(ctx)
Expand Down
115 changes: 29 additions & 86 deletions x/launch/module/genesis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,95 +5,38 @@ import (

"github.com/stretchr/testify/require"

keepertest "github.com/ignite/network/testutil/keeper"
"github.com/ignite/network/testutil/nullify"
testkeeper "github.com/ignite/network/testutil/keeper"
"github.com/ignite/network/testutil/sample"
launch "github.com/ignite/network/x/launch/module"
"github.com/ignite/network/x/launch/types"
)

func TestGenesis(t *testing.T) {
genesisState := types.GenesisState{
Params: types.DefaultParams(),

ChainList: []types.Chain{
{
LaunchID: 0,
},
{
LaunchID: 1,
},
},
ChainCount: 2,
GenesisAccountList: []types.GenesisAccount{
{
LaunchID: 0,
},
{
LaunchID: 1,
},
},
GenesisValidatorList: []types.GenesisValidator{
{
LaunchID: 0,
},
{
LaunchID: 1,
},
},
VestingAccountList: []types.VestingAccount{
{
LaunchID: 0,
},
{
LaunchID: 1,
},
},
RequestList: []types.Request{
{
LaunchID: 0,
},
{
LaunchID: 1,
},
},
RequestCounters: []types.RequestCounter{
{
LaunchID: 0,
Counter: 1,
},
{
LaunchID: 1,
Counter: 2,
},
},
ParamChangeList: []types.ParamChange{
{
LaunchID: 0,
},
{
LaunchID: 1,
},
},
// this line is used by starport scaffolding # genesis/test/state
}

k, ctx, _ := keepertest.LaunchKeeper(t)
err := launch.InitGenesis(ctx, k, genesisState)
require.NoError(t, err)
got, err := launch.ExportGenesis(ctx, k)
require.NoError(t, err)
require.NotNil(t, got)
/*
// We use a genesis template from sample package, therefore this placeholder is not used
// this line is used by starport scaffolding # genesis/test/state
*/

nullify.Fill(&genesisState)
nullify.Fill(got)

require.ElementsMatch(t, genesisState.ChainList, got.ChainList)
require.Equal(t, genesisState.ChainCount, got.ChainCount)
require.ElementsMatch(t, genesisState.GenesisAccountList, got.GenesisAccountList)
require.ElementsMatch(t, genesisState.GenesisValidatorList, got.GenesisValidatorList)
require.ElementsMatch(t, genesisState.VestingAccountList, got.VestingAccountList)
require.ElementsMatch(t, genesisState.RequestList, got.RequestList)
require.ElementsMatch(t, genesisState.RequestCounters, got.RequestCounters)
require.ElementsMatch(t, genesisState.ParamChangeList, got.ParamChangeList)
func TestGenesis(t *testing.T) {
ctx, tk, _ := testkeeper.NewTestSetup(t)
r := sample.Rand()

t.Run("should allow import and export the genesis state", func(t *testing.T) {
genesisState := sample.LaunchGenesisState(r)
err := launch.InitGenesis(ctx, tk.LaunchKeeper, genesisState)
require.NoError(t, err)
got, err := launch.ExportGenesis(ctx, tk.LaunchKeeper)
require.NoError(t, err)

// Compare lists
require.ElementsMatch(t, genesisState.ChainList, got.ChainList)
require.Equal(t, genesisState.ChainCount, got.ChainCount)

require.ElementsMatch(t, genesisState.GenesisAccountList, got.GenesisAccountList)
require.ElementsMatch(t, genesisState.VestingAccountList, got.VestingAccountList)
require.ElementsMatch(t, genesisState.GenesisValidatorList, got.GenesisValidatorList)
require.ElementsMatch(t, genesisState.RequestList, got.RequestList)
require.ElementsMatch(t, genesisState.RequestCounters, got.RequestCounters)

require.Equal(t, genesisState.Params, got.Params)
})
// this line is used by starport scaffolding # genesis/test/assert
}
77 changes: 29 additions & 48 deletions x/project/module/genesis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,57 +5,38 @@ import (

"github.com/stretchr/testify/require"

keepertest "github.com/ignite/network/testutil/keeper"
"github.com/ignite/network/testutil/nullify"
networktypes "github.com/ignite/network/pkg/types"
testkeeper "github.com/ignite/network/testutil/keeper"
"github.com/ignite/network/testutil/sample"
project "github.com/ignite/network/x/project/module"
"github.com/ignite/network/x/project/types"
)

/*
// We use a genesis template from sample package, therefore this placeholder is not used
// this line is used by starport scaffolding # genesis/test/state
*/

func TestGenesis(t *testing.T) {
genesisState := types.GenesisState{
Params: types.DefaultParams(),

MainnetAccountList: []types.MainnetAccount{
{
ProjectID: 0,
},
{
ProjectID: 1,
},
},
ProjectList: []types.Project{
{
ProjectID: 0,
},
{
ProjectID: 1,
},
},
ProjectCount: 2,
ProjectChainsList: []types.ProjectChains{
{
ProjectID: 0,
},
{
ProjectID: 1,
},
},
// this line is used by starport scaffolding # genesis/test/state
}

k, ctx, _ := keepertest.ProjectKeeper(t)
err := project.InitGenesis(ctx, k, genesisState)
require.NoError(t, err)
got, err := project.ExportGenesis(ctx, k)
require.NoError(t, err)
require.NotNil(t, got)

nullify.Fill(&genesisState)
nullify.Fill(got)

require.ElementsMatch(t, genesisState.MainnetAccountList, got.MainnetAccountList)
require.ElementsMatch(t, genesisState.ProjectList, got.ProjectList)
require.Equal(t, genesisState.ProjectCount, got.ProjectCount)
require.ElementsMatch(t, genesisState.ProjectChainsList, got.ProjectChainsList)
ctx, tk, _ := testkeeper.NewTestSetup(t)
r := sample.Rand()

t.Run("should allow importing and exporting genesis", func(t *testing.T) {
genesisState := sample.ProjectGenesisStateWithAccounts(r)

err := project.InitGenesis(ctx, tk.ProjectKeeper, genesisState)
require.NoError(t, err)
got, err := project.ExportGenesis(ctx, tk.ProjectKeeper)
require.NoError(t, err)

require.ElementsMatch(t, genesisState.ProjectChainsList, got.ProjectChainsList)
require.ElementsMatch(t, genesisState.ProjectList, got.ProjectList)
require.Equal(t, genesisState.ProjectCount, got.ProjectCount)
require.ElementsMatch(t, genesisState.MainnetAccountList, got.MainnetAccountList)
require.Equal(t, genesisState.Params, got.Params)
maxShares, err := tk.ProjectKeeper.TotalShares.Get(ctx)
require.NoError(t, err)
require.Equal(t, uint64(networktypes.TotalShareNumber), maxShares)
})

// this line is used by starport scaffolding # genesis/test/assert
}

0 comments on commit 6a04528

Please sign in to comment.