package terraform

import (
	"context"
	"os"
	"path/filepath"
	"strings"
	"testing"
)

func TestIntegration_TerraformPluginCacheUsesAbsolutePath(t *testing.T) {
	workingDir := t.TempDir()
	t.Chdir(workingDir)

	paths := WorkspacePaths(filepath.Join(".cp9", "session"))
	runner := Runner{Run: func(_ context.Context, _ string, _ string, args ...string) ([]byte, []byte, error) {
		cacheDir := strings.TrimPrefix(args[0], "TF_PLUGIN_CACHE_DIR=")
		if !filepath.IsAbs(cacheDir) {
			t.Fatalf("plugin cache path must be absolute, got %q", cacheDir)
		}
		if _, err := os.Stat(cacheDir); err != nil {
			t.Fatalf("plugin cache path must exist before terraform init: %v", err)
		}
		return nil, nil, nil
	}}

	if _, _, err := runner.initializeProviderPlugins(context.Background(), &paths); err != nil {
		t.Fatal(err)
	}
}
