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 }