github.com/cosmos/cosmos-sdk@v0.50.10/x/group/migrations/v2/gen_state_test.go (about) 1 package v2_test 2 3 import ( 4 "encoding/binary" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 9 authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" 10 "github.com/cosmos/cosmos-sdk/x/group" 11 v2 "github.com/cosmos/cosmos-sdk/x/group/migrations/v2" 12 ) 13 14 func TestMigrateGenState(t *testing.T) { 15 tests := []struct { 16 name string 17 oldState *authtypes.GenesisState 18 newState *authtypes.GenesisState 19 }{ 20 { 21 name: "group policy accounts are replaced by base accounts", 22 oldState: authtypes.NewGenesisState(authtypes.DefaultParams(), authtypes.GenesisAccounts{ 23 &authtypes.ModuleAccount{ 24 BaseAccount: &authtypes.BaseAccount{ 25 Address: "cosmos1jv65s3grqf6v6jl3dp4t6c9t9rk99cd88lyufl", 26 AccountNumber: 3, 27 }, 28 Name: "distribution", 29 Permissions: []string{}, 30 }, 31 &authtypes.ModuleAccount{ 32 BaseAccount: &authtypes.BaseAccount{ 33 Address: "cosmos1q32tjg5qm3n9fj8wjgpd7gl98prefntrckjkyvh8tntp7q33zj0s5tkjrk", 34 AccountNumber: 8, 35 }, 36 Name: "cosmos1q32tjg5qm3n9fj8wjgpd7gl98prefntrckjkyvh8tntp7q33zj0s5tkjrk", 37 Permissions: []string{}, 38 }, 39 }), 40 newState: authtypes.NewGenesisState(authtypes.DefaultParams(), authtypes.GenesisAccounts{ 41 &authtypes.ModuleAccount{ 42 BaseAccount: &authtypes.BaseAccount{ 43 Address: "cosmos1jv65s3grqf6v6jl3dp4t6c9t9rk99cd88lyufl", 44 AccountNumber: 3, 45 }, 46 Name: "distribution", 47 Permissions: []string{}, 48 }, 49 func() *authtypes.BaseAccount { 50 baseAccount := &authtypes.BaseAccount{ 51 Address: "cosmos1q32tjg5qm3n9fj8wjgpd7gl98prefntrckjkyvh8tntp7q33zj0s5tkjrk", 52 AccountNumber: 8, 53 } 54 55 k := make([]byte, 8) 56 binary.BigEndian.PutUint64(k, 0) 57 c, err := authtypes.NewModuleCredential(group.ModuleName, []byte{v2.GroupPolicyTablePrefix}, k) 58 if err != nil { 59 panic(err) 60 } 61 err = baseAccount.SetPubKey(c) 62 if err != nil { 63 panic(err) 64 } 65 66 return baseAccount 67 }(), 68 }, 69 ), 70 }, 71 } 72 73 for _, tc := range tests { 74 t.Run(tc.name, func(t *testing.T) { 75 require.Error(t, authtypes.ValidateGenesis(*tc.oldState)) 76 actualState := v2.MigrateGenState(tc.oldState) 77 require.Equal(t, tc.newState, actualState) 78 require.NoError(t, authtypes.ValidateGenesis(*actualState)) 79 }) 80 } 81 }