package stacks

// SCRATCH ONLY (app-guides night, 2026-10-15): the real catalog templates through the controller's own loader.
// Never committed — it lives in a throwaway copy of the repo.

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

func TestScratch_RealCatalogGuides(t *testing.T) {
	root := os.Getenv("CATALOG_TEMPLATES")
	apps := strings.Split(os.Getenv("GUIDE_APPS"), ",")
	for _, app := range apps {
		m := LoadMetadata(filepath.Join(root, app))
		g := m.AppInfo.Guide
		en := m.For("en").AppInfo.Guide
		es, ef := m.GuideOverlayExtras("en")
		t.Logf("%s: rendered=%v checked=%q sections=%d faq=%d | en: sections=%d faq=%d first=%q extras=%d/%d",
			app, g.Rendered(), g.CheckedVersion, len(g.Sections), len(g.FAQ), len(en.Sections), len(en.FAQ),
			func() string { if len(en.Sections) > 0 { return en.Sections[0].Title }; return "" }(), es, ef)
		if !g.Rendered() || len(g.Sections) < 3 || len(g.FAQ) < 4 {
			t.Errorf("%s: guide not rendered or too short", app)
		}
		if len(en.Sections) != len(g.Sections) || en.Sections[0].Title == g.Sections[0].Title || es != 0 || ef != 0 {
			t.Errorf("%s: English overlay not applied as expected", app)
		}
		if en.CheckedVersion != g.CheckedVersion {
			t.Errorf("%s: checked_version moved under the overlay", app)
		}
	}
}
