47 lines
977 B
Go
47 lines
977 B
Go
package smartconfig
|
|
|
|
import (
|
|
"os"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestCLIInterpolation(t *testing.T) {
|
|
// Set up environment variables
|
|
_ = os.Setenv("TEST_APP_NAME", "myapp")
|
|
_ = os.Setenv("TEST_PORT", "8080")
|
|
defer func() {
|
|
_ = os.Unsetenv("TEST_APP_NAME")
|
|
_ = os.Unsetenv("TEST_PORT")
|
|
}()
|
|
|
|
// Test YAML content
|
|
yamlContent := `name: ${ENV:TEST_APP_NAME}
|
|
port: ${ENV:TEST_PORT}
|
|
host: localhost`
|
|
|
|
// Create config from reader
|
|
reader := strings.NewReader(yamlContent)
|
|
config, err := NewFromReader(reader)
|
|
if err != nil {
|
|
t.Fatalf("Failed to create config: %v", err)
|
|
}
|
|
|
|
// Check if interpolation worked
|
|
name, err := config.GetString("name")
|
|
if err != nil {
|
|
t.Fatalf("Failed to get name: %v", err)
|
|
}
|
|
if name != "myapp" {
|
|
t.Errorf("Expected name 'myapp', got '%s'", name)
|
|
}
|
|
|
|
port, err := config.GetString("port")
|
|
if err != nil {
|
|
t.Fatalf("Failed to get port: %v", err)
|
|
}
|
|
if port != "8080" {
|
|
t.Errorf("Expected port '8080', got '%s'", port)
|
|
}
|
|
}
|