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  }