github.com/cycloidio/terraform@v1.1.10-0.20220513142504-76d5c768dc63/command/e2etest/provisioner_test.go (about) 1 package e2etest 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/cycloidio/terraform/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(terraformBin, "testdata/provisioner") 21 defer tf.Close() 22 23 //// INIT 24 _, stderr, err := tf.Run("init") 25 if err != nil { 26 t.Fatalf("unexpected init error: %s\nstderr:\n%s", err, stderr) 27 } 28 29 //// PLAN 30 _, stderr, err = tf.Run("plan", "-out=tfplan") 31 if err != nil { 32 t.Fatalf("unexpected plan error: %s\nstderr:\n%s", err, stderr) 33 } 34 35 //// APPLY 36 stdout, stderr, err := tf.Run("apply", "tfplan") 37 if err != nil { 38 t.Fatalf("unexpected apply error: %s\nstderr:\n%s", err, stderr) 39 } 40 41 if !strings.Contains(stdout, "HelloProvisioner") { 42 t.Fatalf("missing provisioner output:\n%s", stdout) 43 } 44 }