internal/httpd/depspage_test.go

v1.41.0
gitbay/internal/httpd/depspage_test.go history · blame · raw

48 lines · 1390 bytes

 1package httpd
 2
 3import (
 4	"strings"
 5	"testing"
 6
 7	"gitbay.org/gitbay/internal/control"
 8	"gitbay.org/gitbay/internal/web"
 9)
10
11// The settings page renders what `repo deps status` reports, not just the
12// toggle (#164). A renamed field would be a blank cell rather than a
13// compile error, so render the page and look for the values.
14func TestSettingsPageRendersDepsStatus(t *testing.T) {
15	var sb strings.Builder
16	err := web.Render(&sb, "settings.html", settingsPage{
17		repoPage:    testRepoPage(),
18		DepsEnabled: true,
19		Deps: control.DepsOut{
20			Enabled: true, LastCheck: "2026-09-03T08:20:25Z", IssueNumber: 140,
21			Behind: []control.DepBehind{{Ecosystem: "go", Name: "golang.org/x/crypto",
22				Current: "v0.31.0", Latest: "v0.42.0"}},
23		},
24	})
25	if err != nil {
26		t.Fatal(err)
27	}
28	page := sb.String()
29	for _, want := range []string{
30		"2026-09-03 08:20 UTC", "golang.org/x/crypto", "v0.31.0", "v0.42.0",
31		`href="/krz/gitbay/issues/140"`,
32	} {
33		if !strings.Contains(page, want) {
34			t.Errorf("settings page does not show %q", want)
35		}
36	}
37}
38
39// With checks off, none of the report shows.
40func TestSettingsPageHidesDepsStatusWhenOff(t *testing.T) {
41	var sb strings.Builder
42	if err := web.Render(&sb, "settings.html", settingsPage{repoPage: testRepoPage()}); err != nil {
43		t.Fatal(err)
44	}
45	if strings.Contains(sb.String(), "Last checked") {
46		t.Error("the report shows with checks off")
47	}
48}