From 6a04528b3458268616889467c4316e1976b4f825 Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Wed, 2 Oct 2024 02:18:56 -0300 Subject: [PATCH] fix some test cases --- x/launch/keeper/invariants.go | 5 +- x/launch/keeper/invariants_test.go | 13 ++-- x/launch/module/genesis_test.go | 115 ++++++++--------------------- x/project/module/genesis_test.go | 77 ++++++++----------- 4 files changed, 68 insertions(+), 142 deletions(-) diff --git a/x/launch/keeper/invariants.go b/x/launch/keeper/invariants.go index 566ff6ff..ee0be6db 100644 --- a/x/launch/keeper/invariants.go +++ b/x/launch/keeper/invariants.go @@ -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 } diff --git a/x/launch/keeper/invariants_test.go b/x/launch/keeper/invariants_test.go index 4d224e80..26d873a4 100644 --- a/x/launch/keeper/invariants_test.go +++ b/x/launch/keeper/invariants_test.go @@ -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) @@ -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) diff --git a/x/launch/module/genesis_test.go b/x/launch/module/genesis_test.go index e0996a74..dafcb8c0 100644 --- a/x/launch/module/genesis_test.go +++ b/x/launch/module/genesis_test.go @@ -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 } diff --git a/x/project/module/genesis_test.go b/x/project/module/genesis_test.go index 07851231..4a641585 100644 --- a/x/project/module/genesis_test.go +++ b/x/project/module/genesis_test.go @@ -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 }