go-cyber/x/tokenfactory/migrations/v2/migrate_test.go

package v2_test

import (
	"testing"

	"github.com/stretchr/testify/require"

	"github.com/cosmos/cosmos-sdk/testutil"
	sdk "github.com/cosmos/cosmos-sdk/types"
	moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil"

	"github.com/cybercongress/go-cyber/v7/x/tokenfactory"
	"github.com/cybercongress/go-cyber/v7/x/tokenfactory/exported"
	v2 "github.com/cybercongress/go-cyber/v7/x/tokenfactory/migrations/v2"
	"github.com/cybercongress/go-cyber/v7/x/tokenfactory/types"
)

type mockSubspace struct {
	ps types.Params
}

func newMockSubspace(ps types.Params) mockSubspace {
	return mockSubspace{ps: ps}
}

func (ms mockSubspace) GetParamSet(_ sdk.Context, ps exported.ParamSet) {
	*ps.(*types.Params) = ms.ps
}

func TestMigrate(t *testing.T) {
	// x/param conversion
	encCfg := moduletestutil.MakeTestEncodingConfig(tokenfactory.AppModuleBasic{})
	cdc := encCfg.Codec

	storeKey := sdk.NewKVStoreKey(v2.ModuleName)
	tKey := sdk.NewTransientStoreKey("transient_test")
	ctx := testutil.DefaultContext(storeKey, tKey)
	store := ctx.KVStore(storeKey)

	legacySubspace := newMockSubspace(types.Params{
		DenomCreationFee:        nil,
		DenomCreationGasConsume: 2_000_000,
	})
	require.NoError(t, v2.Migrate(ctx, store, legacySubspace, cdc))

	var res types.Params
	bz := store.Get(v2.ParamsKey)
	require.NoError(t, cdc.Unmarshal(bz, &res))
	require.Equal(t, legacySubspace.ps, res)
}

Neighbours