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 }