diff --git a/app/templates/views/choose-service.html b/app/templates/views/choose-service.html index 38fe8efc2..d99e888e1 100644 --- a/app/templates/views/choose-service.html +++ b/app/templates/views/choose-service.html @@ -10,6 +10,14 @@

Choose service

+ {% if current_user.has_permissions(admin_override=True) %} + {{ browse_list([ + { + 'title': 'List all services', + 'link': url_for('.show_all_services') + } + ]) }} + {% endif %} {{ browse_list(services) }} {{ browse_list([ @@ -19,4 +27,5 @@ }, ]) }} + {% endblock %} diff --git a/tests/app/main/views/test_choose_services.py b/tests/app/main/views/test_choose_services.py index d373da631..02b0845a5 100644 --- a/tests/app/main/views/test_choose_services.py +++ b/tests/app/main/views/test_choose_services.py @@ -20,3 +20,24 @@ def test_should_show_choose_services_page(app_, assert mock_get_services.called assert services['data'][0]['name'] in resp_data assert services['data'][1]['name'] in resp_data + assert 'List all services' not in resp_data + + +def test_should_show_all_services_for_platform_admin_user(app_, + platform_admin_user, + mock_get_services, + mocker): + with app_.test_request_context(): + with app_.test_client() as client: + mocker.patch('app.user_api_client.get_user', return_value=platform_admin_user) + client.login(platform_admin_user) + response = client.get(url_for('main.choose_service')) + + assert response.status_code == 200 + resp_data = response.get_data(as_text=True) + assert 'Choose service' in resp_data + services = mock_get_services.side_effect() + assert mock_get_services.called + assert services['data'][0]['name'] in resp_data + assert services['data'][1]['name'] in resp_data + assert 'List all services' in resp_data