Skip to content
quarry Artifact [a5577e852a]
Login

Artifact [a5577e852a]

Artifact a5577e852a7937c4b0aea33c74ccb29a3454cdb91f3c0ea7989540dbdc2d1dc8:


package web

import (
	"strings"
	"testing"
)

// A check-in that went through a landing links to it, by data hook, and
// one that did not says nothing.
func TestCheckinPageLinksItsLanding(t *testing.T) {
	render := func(d checkinDetail) string {
		t.Helper()
		var sb strings.Builder
		d.Hash = strings.Repeat("a", 64)
		if err := noHooks.template(checkinPage).Execute(&sb, pageData{Repo: "alpha", Checkin: d}); err != nil {
			t.Fatal(err)
		}
		return sb.String()
	}
	var d checkinDetail
	if strings.Contains(render(d), `data-hook="landed-by"`) {
		t.Error("FAIL: a check-in no landing touched names one")
	}
	d.Landing = &checkinLanding{ID: strings.Repeat("b", 64), Number: 7, Title: "Ship it", State: "accepted", Role: "merge"}
	html := render(d)
	for _, want := range []string{`data-hook="landed-by"`, `data-role="merge"`, `href="/r/alpha/landing/` + strings.Repeat("b", 12) + `"`, `data-hook="landing-number"`} {
		if !strings.Contains(html, want) {
			t.Errorf("FAIL: page lacks %s", want)
		}
	}
}