github.com/cosmos/cosmos-sdk@v0.50.10/x/auth/migrations/v5/migrate_test.go (about) 1 package v5 2 3 import ( 4 "testing" 5 6 "github.com/cosmos/gogoproto/types" 7 "github.com/stretchr/testify/require" 8 9 "cosmossdk.io/collections" 10 "cosmossdk.io/collections/colltest" 11 ) 12 13 func TestMigrate(t *testing.T) { 14 kv, ctx := colltest.MockStore() 15 sb := collections.NewSchemaBuilder(kv) 16 seq := collections.NewSequence(sb, collections.NewPrefix(0), "seq") 17 18 wantValue := uint64(100) 19 20 // set old sequence to wanted value 21 legacySeqBytes, err := (&types.UInt64Value{Value: wantValue}).Marshal() 22 require.NoError(t, err) 23 24 err = kv.OpenKVStore(ctx).Set(LegacyGlobalAccountNumberKey, legacySeqBytes) 25 require.NoError(t, err) 26 27 err = Migrate(ctx, kv, seq) 28 require.NoError(t, err) 29 30 // check that after migration the sequence is what we want it to be 31 gotValue, err := seq.Peek(ctx) 32 require.NoError(t, err) 33 require.Equal(t, wantValue, gotValue) 34 35 // case the global account number was not set 36 ctx = kv.NewStoreContext() // this resets the store to zero 37 wantValue = collections.DefaultSequenceStart 38 39 err = Migrate(ctx, kv, seq) 40 require.NoError(t, err) 41 42 gotValue, err = seq.Next(ctx) 43 require.NoError(t, err) 44 require.Equal(t, wantValue, gotValue) 45 }