github.com/hairyhenderson/gomplate/v3@v3.11.7/internal/tests/integration/envvars_test.go (about)

     1  package integration
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"gotest.tools/v3/assert"
     8  )
     9  
    10  func TestEnvVars_NonExistent(t *testing.T) {
    11  	os.Unsetenv("FOO")
    12  	_, _, err := cmd(t, "-i", `{{ .Env.FOO }}`).run()
    13  	assert.ErrorContains(t, err, "map has no entry for key")
    14  
    15  	inOutTest(t, `{{ getenv "FOO" }}`, "")
    16  	inOutTest(t, `{{ getenv "FOO" "foo" }}`, "foo")
    17  	inOutTest(t, `{{env.ExpandEnv "${BAR}foo"}}`, "foo")
    18  
    19  	o, e, err := cmd(t, "-i", `{{ getenv "FOO" "foo" }}`).
    20  		withEnv("FOO", "").run()
    21  	assertSuccess(t, o, e, err, "foo")
    22  }
    23  
    24  func TestEnvVars_Existent(t *testing.T) {
    25  	os.Unsetenv("FOO")
    26  
    27  	data := []string{
    28  		`{{ .Env.FOO }}`,
    29  		`{{ getenv "FOO" }}`,
    30  		`{{ env.Getenv "FOO" }}`,
    31  		`{{env.ExpandEnv "${FOO}"}}`,
    32  	}
    33  	for _, in := range data {
    34  		o, e, err := cmd(t, "-i", in).
    35  			withEnv("FOO", "foo").run()
    36  		assertSuccess(t, o, e, err, "foo")
    37  	}
    38  }