package pages import ( "bytes" "io" "log/slog" "strings" "testing" "tangled.org/core/appview/config" "tangled.org/core/appview/oauth" "tangled.org/core/appview/pages/repoinfo" "tangled.org/core/idresolver" ) // the spindle picker is free text with a datalist of recently used spindles, and // is shared by repo-new, repo-fork and repo-settings/pipelines. Rendering catches // what parsing can't: a mistyped fragment name or dict key only fails on execute. func TestSpindleInputRenders(t *testing.T) { cfg := &config.Config{} p := NewPages(cfg, idresolver.DefaultResolver("https://plc.test"), nil, nil, slog.New(slog.NewTextHandler(io.Discard, nil))) cases := []struct { name string stack []string define string params any want []string }{ { name: "repo/new", stack: []string{"repo/new"}, define: "spindle", params: NewRepoParams{Spindles: []string{"spindle.example.com"}}, want: []string{`list="spindle-options"`, `