//go:build windows

package runtimeconfig

import (
	"fmt"
	"testing"
	"time"

	"github.com/stretchr/testify/require"
	"golang.org/x/sys/windows/registry"
)

func TestReadWindowsRegistryPathExpandsEnvironmentStrings(t *testing.T) {
	runtimeDir := `C:\Users\demo\AppData\Roaming\npm`
	t.Setenv("AGENTTEAM_RUNTIME_RESOLVER_TEST_DIR", runtimeDir)

	keyPath := fmt.Sprintf(`Software\AgentTeamRuntimeResolverTest\PathExpansion%d`, time.Now().UnixNano())
	key, _, err := registry.CreateKey(registry.CURRENT_USER, keyPath, registry.SET_VALUE)
	require.NoError(t, err)
	t.Cleanup(func() {
		require.NoError(t, key.Close())
		require.NoError(t, registry.DeleteKey(registry.CURRENT_USER, keyPath))
	})
	require.NoError(t, key.SetExpandStringValue("Path", `%AGENTTEAM_RUNTIME_RESOLVER_TEST_DIR%`))

	require.Equal(t, runtimeDir, readWindowsRegistryPath(registry.CURRENT_USER, keyPath))
}
