package tenantoverlay

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

func testOverlayDir(t *testing.T) string {
	t.Helper()
	dir := filepath.Clean("../tenants/pingcap")
	if _, err := os.Stat(filepath.Join(dir, ObjectsSpecFile)); err != nil {
		t.Fatalf("test overlay dir %q missing %s: %v", dir, ObjectsSpecFile, err)
	}
	return dir
}

func testOverlay(t *testing.T) *Pack {
	t.Helper()
	return New(testOverlayDir(t))
}

func readTestOverlayFile(t *testing.T, name string) []byte {
	t.Helper()
	data, err := os.ReadFile(filepath.Join(testOverlayDir(t), name))
	if err != nil {
		t.Fatalf("read test overlay file %s: %v", name, err)
	}
	return data
}

func tempOverlayWithFile(t *testing.T, name string, data []byte) *Pack {
	t.Helper()
	dir := t.TempDir()
	if err := os.WriteFile(filepath.Join(dir, name), data, 0o644); err != nil {
		t.Fatalf("write temp overlay file %s: %v", name, err)
	}
	return New(dir)
}
