package web
import (
"os"
"path/filepath"
"strings"
"testing"
)
// A LOOKING aid for the two surfaces a signed-in reader actually lands
// on — the dashboard and a person page. Off unless QUARRY_SHOT_REACH is
// set; the file is written beside a quarry.css because every page links
// its sheet by URL.
func TestWriteTeamReachShots(t *testing.T) {
out := os.Getenv("QUARRY_SHOT_REACH")
if out == "" {
t.Skip("QUARRY_SHOT_REACH unset")
}
dir := filepath.Dir(out)
if err := os.WriteFile(filepath.Join(dir, "quarry.css"), []byte(sheet), 0o644); err != nil {
t.Fatal(err)
}
teams := []teamRow{
{Name: "craft-design-group", Title: "Craft Design Group", Members: 3, Repos: 2},
{Name: "firestorm-dataworks", Title: "FireStorm DataWorks", Members: 1, Repos: 0},
}
d := dashData{User: "dmestas", Teams: teams, Total: 412, Depth: 30}
d.Repos = append(d.Repos, dashRepoRow{Name: "quarry", Role: "admin", Description: "a forge front-end for zit",
LastActivity: "2026-09-13T06:00:00Z", Open: 14})
var dash strings.Builder
if err := noHooks.template(dashboardPage).Execute(&dash, pageData{Title: "Dashboard", HideH1: true,
SheetURL: "quarry.css", User: "dmestas", Dash: &d}); err != nil {
t.Fatal(err)
}
if err := os.WriteFile(out, []byte(dash.String()), 0o644); err != nil {
t.Fatal(err)
}
p := personRow{User: "dmestas", Teams: teams,
Appearances: []personAppearance{
{Repo: "quarry", Events: 3709, First: "2026-06-01T00:00:00Z", Last: "2026-09-13T06:00:00Z"},
{Repo: "zit", Events: 288, First: "2026-07-02T00:00:00Z", Last: "2026-09-11T18:00:00Z"},
}}
var person strings.Builder
if err := noHooks.template(personPage).Execute(&person, pageData{Title: "dmestas", HideH1: true,
SheetURL: "quarry.css", Person: p}); err != nil {
t.Fatal(err)
}
if err := os.WriteFile(filepath.Join(dir, "person-teams.html"),
[]byte(person.String()), 0o644); err != nil {
t.Fatal(err)
}
t.Logf("ok: wrote %s and person-teams.html", out)
}