diff --git a/app/templates/views/choose-account.html b/app/templates/views/choose-account.html index c5f3f78df..4ff59bb63 100644 --- a/app/templates/views/choose-account.html +++ b/app/templates/views/choose-account.html @@ -7,7 +7,7 @@ organisations=[], services=[] ) %} - {% if show_heading %} + {% if show_heading and (services or organisations) %}

@@ -33,7 +33,7 @@ {{ service.name }} {% endfor %} - {% if show_heading %} + {% if show_heading and (services or organisations) %}

@@ -77,14 +77,14 @@ {% if current_user.organisations %} {{ service_list( heading='Live services', - show_heading=current_user.trial_mode_services, + show_heading=current_user.trial_mode_services or current_user.platform_admin, organisations=current_user.organisations, services=current_user.live_services ) }} {% else %} {{ service_list( heading='Live services', - show_heading=(current_user.trial_mode_services and current_user.live_services), + show_heading=(current_user.trial_mode_services and current_user.live_services) or current_user.platform_admin, services=current_user.live_services ) }} {% endif %} @@ -92,7 +92,7 @@ {% if current_user.trial_mode_services %} {{ service_list( heading='Trial mode services', - show_heading=(current_user.organisations or current_user.live_services), + show_heading=(current_user.organisations or current_user.live_services or current_user.platform_admin), services=current_user.trial_mode_services ) }} {% endif %} diff --git a/tests/app/main/views/accounts/test_choose_accounts.py b/tests/app/main/views/accounts/test_choose_accounts.py index b39e25ac3..42938a5c2 100644 --- a/tests/app/main/views/accounts/test_choose_accounts.py +++ b/tests/app/main/views/accounts/test_choose_accounts.py @@ -86,9 +86,12 @@ def test_choose_account_should_show_choose_accounts_page( assert normalize_spaces(page.h1.text) == 'Choose service' outer_list_items = page.select('nav ul')[0].select('li') + headings = page.select('main h2') assert len(outer_list_items) == 8 + assert normalize_spaces(headings[0].text) == 'Live services' + # first org assert outer_list_items[0].a.text == 'Org 1' assert outer_list_items[0].a['href'] == url_for('.organisation_dashboard', org_id='o1') @@ -122,6 +125,8 @@ def test_choose_account_should_show_choose_accounts_page( assert outer_list_items[7].a.text == 'service two (org 2)' assert outer_list_items[7].a['href'] == url_for('.service_dashboard', service_id='67890') + assert normalize_spaces(headings[1].text) == 'Trial mode services' + # trial services trial_services_list_items = page.select('nav ul')[1].select('li') assert len(trial_services_list_items) == 3 @@ -151,9 +156,47 @@ def test_choose_account_should_show_choose_accounts_page_if_no_services( add_service_link = links[0] assert normalize_spaces(page.h1.text) == 'Choose service' assert normalize_spaces(add_service_link.text) == 'Add a new service' + assert not page.select('main h2') assert add_service_link['href'] == url_for('main.add_service') +@pytest.mark.parametrize('orgs_and_services, expected_headings', ( + ({ + 'organisations': [], + 'services': [] + }, [ + 'Platform admin', + ]), + (SAMPLE_DATA, [ + 'Platform admin', + 'Live services', + 'Trial mode services', + ]), + ({ + 'organisations': [], + 'services': [{ + 'name': 'Live service', + 'id': OS2, + 'restricted': False, + 'organisation': None, + }], + }, [ + 'Platform admin', + 'Live services', + ]), + ({ + 'organisations': [], + 'services': [{ + 'name': 'Trial service', + 'id': OS2, + 'restricted': True, + 'organisation': None, + }], + }, [ + 'Platform admin', + 'Trial mode services', + ]), +)) def test_choose_account_should_should_organisations_link_for_platform_admin( client_request, platform_admin_user, @@ -161,7 +204,10 @@ def test_choose_account_should_should_organisations_link_for_platform_admin( mock_get_orgs_and_services, mock_get_organisation_services, mock_get_service_and_organisation_counts, + orgs_and_services, + expected_headings, ): + mock_get_orgs_and_services.return_value = orgs_and_services client_request.login(platform_admin_user) page = client_request.get('main.choose_account') @@ -173,6 +219,10 @@ def test_choose_account_should_should_organisations_link_for_platform_admin( assert first_link['href'] == url_for('main.organisations') assert normalize_spaces(first_hint.text) == '3 organisations, 9,999 live services' + assert [ + normalize_spaces(h2.text) for h2 in page.select('main h2') + ] == expected_headings + def test_choose_account_should_show_back_to_service_link( client_request,