github.com/muratcelep/terraform@v1.1.0-beta2-not-internal-4/not-internal/command/meta_backend_migrate_test.go (about)

     1  package command
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  )
     7  
     8  func TestBackendMigrate_promptMultiStatePattern(t *testing.T) {
     9  	// Setup the meta
    10  
    11  	cases := map[string]struct {
    12  		renamePrompt  string
    13  		patternPrompt string
    14  		expectedErr   string
    15  	}{
    16  		"valid pattern": {
    17  			renamePrompt:  "1",
    18  			patternPrompt: "hello-*",
    19  			expectedErr:   "",
    20  		},
    21  		"invalid pattern, only one asterisk allowed": {
    22  			renamePrompt:  "1",
    23  			patternPrompt: "hello-*-world-*",
    24  			expectedErr:   "The pattern '*' cannot be used more than once.",
    25  		},
    26  		"invalid pattern, missing asterisk": {
    27  			renamePrompt:  "1",
    28  			patternPrompt: "hello-world",
    29  			expectedErr:   "The pattern must have an '*'",
    30  		},
    31  		"invalid rename": {
    32  			renamePrompt: "3",
    33  			expectedErr:  "Please select 1 or 2 as part of this option.",
    34  		},
    35  		"no rename": {
    36  			renamePrompt: "2",
    37  		},
    38  	}
    39  	for name, tc := range cases {
    40  		fmt.Println("Test: ", name)
    41  		m := testMetaBackend(t, nil)
    42  		input := map[string]string{}
    43  		cleanup := testInputMap(t, input)
    44  		if tc.renamePrompt != "" {
    45  			input["backend-migrate-multistate-to-tfc"] = tc.renamePrompt
    46  		}
    47  		if tc.patternPrompt != "" {
    48  			input["backend-migrate-multistate-to-tfc-pattern"] = tc.patternPrompt
    49  		}
    50  
    51  		sourceType := "cloud"
    52  		_, err := m.promptMultiStateMigrationPattern(sourceType)
    53  		if tc.expectedErr == "" && err != nil {
    54  			t.Fatalf("expected error to be nil, but was %s", err.Error())
    55  		}
    56  		if tc.expectedErr != "" && tc.expectedErr != err.Error() {
    57  			t.Fatalf("expected error to eq %s but got %s", tc.expectedErr, err.Error())
    58  		}
    59  
    60  		cleanup()
    61  	}
    62  }