github.com/cosmos/cosmos-sdk@v0.50.10/x/genutil/client/cli/migrate_test.go (about) 1 package cli_test 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 9 "github.com/cosmos/cosmos-sdk/client" 10 "github.com/cosmos/cosmos-sdk/testutil" 11 clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" 12 moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil" 13 "github.com/cosmos/cosmos-sdk/x/genutil/client/cli" 14 ) 15 16 func TestMigrateGenesis(t *testing.T) { 17 testCases := []struct { 18 name string 19 genesis string 20 target string 21 expErr bool 22 expErrMsg string 23 check func(jsonOut string) 24 }{ 25 { 26 "migrate 0.37 to 0.43", 27 v037Exported, 28 "v0.43", 29 true, "make sure that you have correctly migrated all CometBFT consensus params", func(_ string) {}, 30 }, 31 { 32 "invalid target version", 33 func() string { 34 bz, err := os.ReadFile("../../types/testdata/app_genesis.json") 35 require.NoError(t, err) 36 37 return string(bz) 38 }(), 39 "v0.10", 40 true, "unknown migration function for version: v0.10 (supported versions v0.43, v0.46, v0.47)", func(_ string) {}, 41 }, 42 { 43 "invalid target version", 44 func() string { 45 bz, err := os.ReadFile("../../types/testdata/cmt_genesis.json") 46 require.NoError(t, err) 47 48 return string(bz) 49 }(), 50 "v0.10", 51 true, "unknown migration function for version: v0.10 (supported versions v0.43, v0.46, v0.47)", func(_ string) {}, 52 }, 53 } 54 55 for _, tc := range testCases { 56 tc := tc 57 t.Run(tc.name, func(t *testing.T) { 58 genesisFile := testutil.WriteToNewTempFile(t, tc.genesis) 59 jsonOutput, err := clitestutil.ExecTestCLICmd( 60 // the codec does not contain any modules so that genutil does not bring unnecessary dependencies in the test 61 client.Context{Codec: moduletestutil.MakeTestEncodingConfig().Codec}, 62 cli.MigrateGenesisCmd(cli.MigrationMap), 63 []string{tc.target, genesisFile.Name()}, 64 ) 65 if tc.expErr { 66 require.Contains(t, err.Error(), tc.expErrMsg) 67 } else { 68 require.NoError(t, err) 69 tc.check(jsonOutput.String()) 70 } 71 }) 72 } 73 }