mirror of https://github.com/pulumi/pulumi.git
83 lines
2.4 KiB
Go
83 lines
2.4 KiB
Go
// Copyright 2022-2024, Pulumi Corporation.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package env_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/pulumi/pulumi/sdk/v3/go/common/util/env"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func init() {
|
|
env.Global = env.MapStore{
|
|
"PULUMI_FOO": "1",
|
|
// "PULUMI_NOT_SET": explicitly not set
|
|
"FOO": "bar",
|
|
"PULUMI_MY_INT": "3",
|
|
"PULUMI_SECRET": "hidden",
|
|
"PULUMI_SET": "SET",
|
|
"UNSET": "SET",
|
|
"PULUMI_ALTERNATIVE": "SET",
|
|
}
|
|
}
|
|
|
|
var (
|
|
SomeBool = env.Bool("FOO", "A bool used for testing")
|
|
SomeFalse = env.Bool("NOT_SET", "a falsy value")
|
|
SomeString = env.String("FOO", "A bool used for testing", env.NoPrefix)
|
|
SomeSecret = env.String("SECRET", "A secret that shouldn't be displayed", env.Secret)
|
|
UnsetString = env.String("PULUMI_UNSET", "Should be unset", env.Needs(SomeFalse))
|
|
SetString = env.String("SET", "Should be set", env.Needs(SomeBool))
|
|
AnInt = env.Int("MY_INT", "Should be 3")
|
|
Alternative = env.String("NOT_ALTERNATIVE", "Should be set with alt name", env.Alternative("ALTERNATIVE"))
|
|
)
|
|
|
|
func TestInt(t *testing.T) {
|
|
t.Parallel()
|
|
assert.Equal(t, 3, AnInt.Value())
|
|
assert.Equal(t, 3, env.NewEnv(env.Global).GetInt(AnInt))
|
|
assert.Equal(t, 6, env.NewEnv(
|
|
env.MapStore{"PULUMI_MY_INT": "6"},
|
|
).GetInt(AnInt))
|
|
}
|
|
|
|
func TestBool(t *testing.T) {
|
|
t.Parallel()
|
|
assert.Equal(t, true, SomeBool.Value())
|
|
}
|
|
|
|
func TestString(t *testing.T) {
|
|
t.Parallel()
|
|
assert.Equal(t, "bar", SomeString.Value())
|
|
}
|
|
|
|
func TestSecret(t *testing.T) {
|
|
t.Parallel()
|
|
assert.Equal(t, "hidden", SomeSecret.Value())
|
|
assert.Equal(t, "[secret]", SomeSecret.String())
|
|
}
|
|
|
|
func TestNeeds(t *testing.T) {
|
|
t.Parallel()
|
|
assert.Equal(t, "", UnsetString.Value())
|
|
assert.Equal(t, "SET", SetString.Value())
|
|
}
|
|
|
|
func TestAlternative(t *testing.T) {
|
|
t.Parallel()
|
|
assert.Equal(t, "SET", Alternative.Value())
|
|
}
|