package v2_test import ( "testing" "github.com/stretchr/testify/require" storetypes "cosmossdk.io/store/types" "git.cw.tr/mukan-network/mukan-sdk/runtime" "git.cw.tr/mukan-network/mukan-sdk/testutil" sdk "git.cw.tr/mukan-network/mukan-sdk/types" moduletestutil "git.cw.tr/mukan-network/mukan-sdk/types/module/testutil" "git.cw.tr/mukan-network/mukan-sdk/x/crisis" v2 "git.cw.tr/mukan-network/mukan-sdk/x/crisis/migrations/v2" "git.cw.tr/mukan-network/mukan-sdk/x/crisis/types" ) type mockSubspace struct { constantFee sdk.Coin } func newMockSubspace(fee sdk.Coin) mockSubspace { return mockSubspace{constantFee: fee} } func (ms mockSubspace) Get(ctx sdk.Context, key []byte, ptr any) { *ptr.(*sdk.Coin) = ms.constantFee } func TestMigrate(t *testing.T) { cdc := moduletestutil.MakeTestEncodingConfig(crisis.AppModuleBasic{}).Codec storeKey := storetypes.NewKVStoreKey(v2.ModuleName) storeService := runtime.NewKVStoreService(storeKey) tKey := storetypes.NewTransientStoreKey("transient_test") ctx := testutil.DefaultContext(storeKey, tKey) store := ctx.KVStore(storeKey) legacySubspace := newMockSubspace(types.DefaultGenesisState().ConstantFee) require.NoError(t, v2.MigrateStore(ctx, storeService, legacySubspace, cdc)) var res sdk.Coin bz := store.Get(v2.ConstantFeeKey) require.NoError(t, cdc.Unmarshal(bz, &res)) require.NotNil(t, res) require.Equal(t, legacySubspace.constantFee, res) }