Only show ‘back to service’ for active services

When a user deletes their service we take them to the ‘Choose service’
page. Like other non-service-specific pages this has a link to the last
service you were looking at. But in this specific case the last service
you were looking at is the one you’ve just deleted. Which means the link
is confusing because:
- you thought the thing was ‘gone’
- we’ve secretly renamed it to ‘_archived Example service name’

So this commit hides the link in this specific case.
This commit is contained in:
Chris Hill-Scott
2019-05-30 10:56:19 +01:00
parent 954f43ae48
commit 9f3cc8baf1
2 changed files with 20 additions and 1 deletions

View File

@@ -2,7 +2,7 @@
{% block fullwidth_content %}
<div id="content">
{% if current_service and current_user.is_authenticated and current_user.belongs_to_service(current_service.id) %}
{% if current_service and current_service.active and current_user.is_authenticated and current_user.belongs_to_service(current_service.id) %}
<div class="navigation-service">
<a href="{{ url_for('main.show_accounts_or_dashboard') }}">Back to {{ current_service.name }}</a>
</div>

View File

@@ -144,6 +144,25 @@ def test_choose_account_should_not_show_back_to_service_link_if_not_signed_in(
assert page.select_one('.navigation-service a') is None
@pytest.mark.parametrize('active', (
False,
pytest.param(True, marks=pytest.mark.xfail(raises=AssertionError)),
))
def test_choose_account_should_not_show_back_to_service_link_if_service_archived(
client_request,
service_one,
mock_get_orgs_and_services,
active,
):
service_one['active'] = active
with client_request.session_transaction() as session:
session['service_id'] = service_one['id']
page = client_request.get('main.choose_account')
assert normalize_spaces(page.select_one('h1').text) == 'Choose service'
assert page.select_one('.navigation-service a') is None
@pytest.mark.parametrize('service, expected_status, page_text', (
(service_one, 200, (
'Test Service Switch service '