package buildverify

import (
	"errors"
	"io/fs"
	"os"
	"path/filepath"
	"testing"

	"github.com/stretchr/testify/require"
)

func TestDesktopManifestAndViteAliasHaveSharedWebOwner(t *testing.T) {
	manifestPath := filepath.Join(desktopRoot(t), "electron", "dist", "renderer", ".vite", "manifest.json")
	_, err := os.Stat(manifestPath)
	if errors.Is(err, fs.ErrNotExist) {
		t.Skip("Electron renderer output is generated; run make build-renderer to verify the manifest")
	}
	require.NoError(t, err)

	vite := readFile(t, filepath.Join(repoRoot(t), "web", "vite.config.ts"))
	require.Contains(t, vite, "AGENTTEAM_DESKTOP_RENDERER_OUT_DIR")
	require.Contains(t, vite, `desktop/electron/dist/renderer`)
	require.Contains(t, vite, `"@agentteam-entry": path.resolve(`)
	require.Contains(t, vite, `isDesktop`)
	require.Contains(t, vite, `"./src/entries/desktop.tsx"`)
	require.Contains(t, vite, `"./src/entries/browser.tsx"`)
}
