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