diff options
| -rw-r--r-- | cmd/screentest/testdata/godev.txt | 1 | ||||
| -rw-r--r-- | internal/screentest/screentest.go | 13 |
2 files changed, 10 insertions, 4 deletions
diff --git a/cmd/screentest/testdata/godev.txt b/cmd/screentest/testdata/godev.txt index 42f21fd8..60d784ee 100644 --- a/cmd/screentest/testdata/godev.txt +++ b/cmd/screentest/testdata/godev.txt @@ -57,6 +57,7 @@ capture fullscreen 540x1080 test help pathname /help/ +status 301 capture fullscreen capture fullscreen 540x1080 diff --git a/internal/screentest/screentest.go b/internal/screentest/screentest.go index b6299e2f..bca7a8ef 100644 --- a/internal/screentest/screentest.go +++ b/internal/screentest/screentest.go @@ -893,15 +893,20 @@ func waitForEvent(eventName string) chromedp.ActionFunc { func getResponse(u string, res *Response) chromedp.ActionFunc { return func(ctx context.Context) error { chromedp.ListenTarget(ctx, func(ev interface{}) { + // URL fragments are dropped in request targets so we must strip the fragment + // from the URL to make a comparison. + _u, _ := url.Parse(u) + _u.Fragment = "" switch e := ev.(type) { case *network.EventResponseReceived: - // URL fragments are dropped in request targets so we must strip the fragment - // from the URL to make a comparison. - _u, _ := url.Parse(u) - _u.Fragment = "" if e.Response.URL == _u.String() { res.Status = int(e.Response.Status) } + // Capture the status from a redirected response. + case *network.EventRequestWillBeSent: + if e.RedirectResponse != nil && e.RedirectResponse.URL == _u.String() { + res.Status = int(e.RedirectResponse.Status) + } } }) return nil |
