smartconfig/cli_test.go
sneak 8a38afba5e passes tests, has cli filter now.
* still has not been *really* tested yet
2025-07-20 15:29:06 +02:00

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)
}
}