github.com/graywolf-at-work-2/terraform-vendor@v1.4.5/internal/command/e2etest/provisioner_test.go (about)

     1  package e2etest
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  
     7  	"github.com/hashicorp/terraform/internal/e2e"
     8  )
     9  
    10  // TestProviderDevOverrides is a test that terraform can execute a 3rd party
    11  // provisioner plugin.
    12  func TestProvisioner(t *testing.T) {
    13  	t.Parallel()
    14  
    15  	// This test reaches out to releases.hashicorp.com to download the
    16  	// template and null providers, so it can only run if network access is
    17  	// allowed.
    18  	skipIfCannotAccessNetwork(t)
    19  
    20  	tf := e2e.NewBinary(t, terraformBin, "testdata/provisioner")
    21  
    22  	//// INIT
    23  	_, stderr, err := tf.Run("init")
    24  	if err != nil {
    25  		t.Fatalf("unexpected init error: %s\nstderr:\n%s", err, stderr)
    26  	}
    27  
    28  	//// PLAN
    29  	_, stderr, err = tf.Run("plan", "-out=tfplan")
    30  	if err != nil {
    31  		t.Fatalf("unexpected plan error: %s\nstderr:\n%s", err, stderr)
    32  	}
    33  
    34  	//// APPLY
    35  	stdout, stderr, err := tf.Run("apply", "tfplan")
    36  	if err != nil {
    37  		t.Fatalf("unexpected apply error: %s\nstderr:\n%s", err, stderr)
    38  	}
    39  
    40  	if !strings.Contains(stdout, "HelloProvisioner") {
    41  		t.Fatalf("missing provisioner output:\n%s", stdout)
    42  	}
    43  }