github.com/rstandt/terraform@v0.12.32-0.20230710220336-b1063613405c/command/internal_plugin_test.go (about) 1 package command 2 3 import ( 4 "testing" 5 6 "github.com/hashicorp/terraform/addrs" 7 ) 8 9 func TestInternalPlugin_InternalProviders(t *testing.T) { 10 m := new(Meta) 11 providers := m.internalProviders() 12 // terraform is the only provider moved back to internal 13 for _, name := range []string{"terraform"} { 14 pf, ok := providers[addrs.NewLegacyProvider(name)] 15 if !ok { 16 t.Errorf("Expected to find %s in InternalProviders", name) 17 } 18 19 provider, err := pf() 20 if err != nil { 21 t.Fatal(err) 22 } 23 24 if provider == nil { 25 t.Fatal("provider factory returned a nil provider") 26 } 27 } 28 } 29 30 func TestInternalPlugin_InternalProvisioners(t *testing.T) { 31 for _, name := range []string{"chef", "file", "local-exec", "remote-exec", "salt-masterless"} { 32 if _, ok := InternalProvisioners[name]; !ok { 33 t.Errorf("Expected to find %s in InternalProvisioners", name) 34 } 35 } 36 } 37 38 func TestInternalPlugin_BuildPluginCommandString(t *testing.T) { 39 actual, err := BuildPluginCommandString("provisioner", "remote-exec") 40 if err != nil { 41 t.Fatalf(err.Error()) 42 } 43 44 expected := "-TFSPACE-internal-plugin-TFSPACE-provisioner-TFSPACE-remote-exec" 45 if actual[len(actual)-len(expected):] != expected { 46 t.Errorf("Expected command to end with %s; got:\n%s\n", expected, actual) 47 } 48 } 49 50 func TestInternalPlugin_StripArgFlags(t *testing.T) { 51 actual := StripArgFlags([]string{"provisioner", "remote-exec", "-var-file=my_vars.tfvars", "-flag"}) 52 expected := []string{"provisioner", "remote-exec"} 53 // Must be same length and order. 54 if len(actual) != len(expected) || expected[0] != actual[0] || actual[1] != actual[1] { 55 t.Fatalf("Expected args to be exactly '%s', got '%s'", expected, actual) 56 } 57 }