diff --git a/app/main/views/feedback.py b/app/main/views/feedback.py
index 0f1189579..00896c1ce 100644
--- a/app/main/views/feedback.py
+++ b/app/main/views/feedback.py
@@ -135,6 +135,11 @@ def feedback(ticket_type):
return render_template(
'views/support/form.html',
form=form,
+ back_link=(
+ url_for('.support')
+ if severe is None else
+ url_for('.triage', ticket_type=ticket_type)
+ ),
show_status_page_banner=(ticket_type == PROBLEM_TICKET_TYPE),
page_title={
GENERAL_TICKET_TYPE: 'Contact GOV.UK Notify support',
diff --git a/app/templates/views/support/form.html b/app/templates/views/support/form.html
index 62a67e403..bf5e2c36a 100644
--- a/app/templates/views/support/form.html
+++ b/app/templates/views/support/form.html
@@ -13,7 +13,7 @@
{{ page_header(
page_title,
- back_link=url_for('.support')
+ back_link=back_link
) }}
diff --git a/tests/app/main/views/test_feedback.py b/tests/app/main/views/test_feedback.py
index 276e25619..736406859 100644
--- a/tests/app/main/views/test_feedback.py
+++ b/tests/app/main/views/test_feedback.py
@@ -462,6 +462,38 @@ def test_triage_redirects_to_correct_url(
)
+@pytest.mark.parametrize('extra_args, expected_back_link', [
+ (
+ {'severe': 'yes'},
+ partial(url_for, 'main.triage', ticket_type=PROBLEM_TICKET_TYPE)
+ ),
+ (
+ {'severe': 'no'},
+ partial(url_for, 'main.triage', ticket_type=PROBLEM_TICKET_TYPE)
+ ),
+ (
+ {'severe': 'foo'}, # hacking the URL
+ partial(url_for, 'main.support')
+ ),
+ (
+ {},
+ partial(url_for, 'main.support')
+ ),
+])
+def test_back_link_from_form(
+ client_request,
+ extra_args,
+ expected_back_link,
+):
+ page = client_request.get(
+ 'main.feedback',
+ ticket_type=PROBLEM_TICKET_TYPE,
+ **extra_args
+ )
+ assert page.select_one('.govuk-back-link')['href'] == expected_back_link()
+ assert normalize_spaces(page.select_one('h1').text) == 'Report a problem'
+
+
@pytest.mark.parametrize(
(
'is_in_business_hours, severe,'