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