diff --git a/fnctl/routes.go b/fnctl/routes.go index 6068d42b1..df4a249e3 100644 --- a/fnctl/routes.go +++ b/fnctl/routes.go @@ -151,7 +151,7 @@ func envAsHeader(req *http.Request, selectedEnv []string) { for _, e := range detectedEnv { kv := strings.Split(e, "=") name := kv[0] - req.Header.Set(name, kv[1]) + req.Header.Set(name, os.Getenv(name)) } } diff --git a/fnctl/routes_test.go b/fnctl/routes_test.go new file mode 100644 index 000000000..f519ccbac --- /dev/null +++ b/fnctl/routes_test.go @@ -0,0 +1,25 @@ +package main + +import ( + "net/http" + "os" + "testing" +) + +func TestEnvAsHeader(t *testing.T) { + const expectedValue = "v=v" + os.Setenv("k", expectedValue) + + cases := [][]string{ + nil, + []string{}, + []string{"k"}, + } + for _, selectedEnv := range cases { + req, _ := http.NewRequest("GET", "http://www.example.com", nil) + envAsHeader(req, selectedEnv) + if found := req.Header.Get("k"); found != expectedValue { + t.Errorf("not found expected header: %v", found) + } + } +}