github.com/Finschia/finschia-sdk@v0.48.1/x/genutil/client/testutil/migrate.go (about)

     1  package testutil
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  
     8  	"github.com/Finschia/finschia-sdk/testutil"
     9  	clitestutil "github.com/Finschia/finschia-sdk/testutil/cli"
    10  	"github.com/Finschia/finschia-sdk/x/genutil/client/cli"
    11  )
    12  
    13  func TestGetMigrationCallback(t *testing.T) {
    14  	for _, version := range cli.GetMigrationVersions() {
    15  		require.NotNil(t, cli.GetMigrationCallback(version))
    16  	}
    17  }
    18  
    19  func (s *IntegrationTestSuite) TestMigrateGenesis() {
    20  	val0 := s.network.Validators[0]
    21  
    22  	testCases := []struct {
    23  		name      string
    24  		genesis   string
    25  		target    string
    26  		expErr    bool
    27  		expErrMsg string
    28  		check     func(jsonOut string)
    29  	}{
    30  		{
    31  			"migrate 0.42 to 0.43(result error)",
    32  			v040Valid,
    33  			"v0.43",
    34  			true, "",
    35  			nil,
    36  		},
    37  	}
    38  
    39  	for _, tc := range testCases {
    40  		tc := tc
    41  		s.Run(tc.name, func() {
    42  			genesisFile := testutil.WriteToNewTempFile(s.T(), tc.genesis)
    43  			jsonOutput, err := clitestutil.ExecTestCLICmd(val0.ClientCtx, cli.MigrateGenesisCmd(), []string{tc.target, genesisFile.Name()})
    44  			if tc.expErr {
    45  				s.Require().Contains(err.Error(), tc.expErrMsg)
    46  			} else {
    47  				s.Require().NoError(err)
    48  				tc.check(jsonOutput.String())
    49  			}
    50  		})
    51  	}
    52  }