From 2ca32019e4b8e6adb9c16ccb8b19f41fc4d356ab Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Wed, 25 Mar 2020 12:17:39 +0000 Subject: [PATCH] =?UTF-8?q?Go=20back=20to=20triage=20page=20if=20you?= =?UTF-8?q?=E2=80=99ve=20come=20from=20there?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/main/views/feedback.py | 5 +++++ app/templates/views/support/form.html | 2 +- tests/app/main/views/test_feedback.py | 32 +++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) 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,'