Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c9bb1efc7c |
@@ -1039,67 +1039,6 @@ func TestHook_ResubmitFromEventLog(t *testing.T) {
|
|||||||
assert.Equal(t, int64(2), events, "the resubmit stores a new event")
|
assert.Equal(t, int64(2), events, "the resubmit stores a new event")
|
||||||
}
|
}
|
||||||
|
|
||||||
// TestHook_LinksBetweenPages follows each link to a webhook page that
|
|
||||||
// the tests above do not: the navbar's "Webhooks" links, the back and
|
|
||||||
// Cancel links, the list's link to a webhook, the "Full Event Log"
|
|
||||||
// link beside the recent events, and the event log's page links. Each
|
|
||||||
// must point where it should, and that page must render.
|
|
||||||
func TestHook_LinksBetweenPages(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
env := newTestEnv(t)
|
|
||||||
|
|
||||||
userID, _ := env.seedUser(t, "navigator", "somepassword")
|
|
||||||
cookies := env.authCookies(t, userID, "navigator")
|
|
||||||
wh := env.seedWebhook(t, userID)
|
|
||||||
tgt := env.seedTarget(t, wh.ID)
|
|
||||||
|
|
||||||
// The event log shows 25 events a page; one more gives it a second
|
|
||||||
// page, so it renders its Next and Previous links.
|
|
||||||
for range 26 {
|
|
||||||
env.seedEvent(t, wh.ID, "paged")
|
|
||||||
}
|
|
||||||
|
|
||||||
list := "/hooks"
|
|
||||||
newForm := list + "/new"
|
|
||||||
page := "/hook/" + wh.ID
|
|
||||||
targetEdit := page + "/targets/" + tgt.ID + "/edit"
|
|
||||||
events := page + "/events"
|
|
||||||
back := `href="([^"]+)"[^>]*>← Back to `
|
|
||||||
cancel := `href="([^"]+)"[^>]*>Cancel<`
|
|
||||||
|
|
||||||
for _, link := range []struct{ from, pattern, want string }{
|
|
||||||
// The navbar on the profile page: its desktop link, then its
|
|
||||||
// mobile menu link.
|
|
||||||
{
|
|
||||||
"/user/navigator/",
|
|
||||||
`href="([^"]+)" class="btn-text">Webhooks<`,
|
|
||||||
list,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"/user/navigator/",
|
|
||||||
`href="([^"]+)" class="btn-text w-full[^"]*">Webhooks<`,
|
|
||||||
list,
|
|
||||||
},
|
|
||||||
{list, `href="(/hook/[^"]+)"`, page},
|
|
||||||
{newForm, back, list},
|
|
||||||
{newForm, cancel, list},
|
|
||||||
{page, back, list},
|
|
||||||
{page, `Recent Events</h2>\s*<a href="([^"]+)"`, events},
|
|
||||||
{page + "/edit", back, page},
|
|
||||||
{page + "/edit", cancel, page},
|
|
||||||
{targetEdit, back, page},
|
|
||||||
{targetEdit, cancel, page},
|
|
||||||
{events, back, page},
|
|
||||||
{events, `href="([^"]+)"[^>]*>Next →<`, events + "?page=2"},
|
|
||||||
{events + "?page=2", `href="([^"]+)"[^>]*>← Previous<`, events + "?page=1"},
|
|
||||||
} {
|
|
||||||
got := env.urlFrom(t, link.from, link.pattern, cookies)
|
|
||||||
assert.Equal(t, link.want, got, "%s: %s", link.from, link.pattern)
|
|
||||||
assert.Equal(t, http.StatusOK, env.get(got, cookies).Code, got)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// TestSourceLogs_TruncationLinkDownloadsTheBody walks the whole
|
// TestSourceLogs_TruncationLinkDownloadsTheBody walks the whole
|
||||||
// feature the way a user does: render the event log page through
|
// feature the way a user does: render the event log page through
|
||||||
// the production router, take the download URL out of the markup
|
// the production router, take the download URL out of the markup
|
||||||
|
|||||||
Reference in New Issue
Block a user