diff --git a/app/templates/main_nav.html b/app/templates/main_nav.html
index 884a78441..92c05dd6c 100644
--- a/app/templates/main_nav.html
+++ b/app/templates/main_nav.html
@@ -3,10 +3,10 @@
{% else %}
diff --git a/tests/app/main/test_permissions.py b/tests/app/main/test_permissions.py
index 34462f5b4..4156001f2 100644
--- a/tests/app/main/test_permissions.py
+++ b/tests/app/main/test_permissions.py
@@ -373,11 +373,76 @@ def test_service_navigation_for_org_user(
assert [
item.text.strip() for item in page.select('nav.navigation a')
] == [
- 'Team members',
'Usage',
+ 'Team members',
]
+@pytest.mark.parametrize('user_organisations, expected_menu_items, expected_status', [
+ (
+ [],
+ (
+ 'Templates',
+ 'Sent messages',
+ 'Team members',
+ ),
+ 403,
+ ),
+ (
+ [ORGANISATION_ID],
+ (
+ 'Templates',
+ 'Sent messages',
+ 'Team members',
+ 'Usage',
+ ),
+ 200,
+ ),
+])
+def test_service_user_without_manage_service_permission_can_see_usage_page_when_org_user(
+ client_request,
+ mocker,
+ active_caseworking_user,
+ mock_has_no_jobs,
+ mock_get_usage,
+ mock_get_billable_units,
+ mock_get_free_sms_fragment_limit,
+ mock_get_service,
+ mock_get_invites_for_service,
+ mock_get_users_by_service,
+ mock_get_service_organisation,
+ mock_get_service_templates,
+ mock_get_template_folders,
+ user_organisations,
+ expected_status,
+ expected_menu_items,
+):
+ active_caseworking_user['services'] = [SERVICE_ONE_ID]
+ active_caseworking_user['organisations'] = user_organisations
+ service = service_json(
+ id_=SERVICE_ONE_ID,
+ organisation_id=ORGANISATION_ID,
+ )
+ mocker.patch(
+ 'app.service_api_client.get_service',
+ return_value={'data': service}
+ )
+ client_request.login(active_caseworking_user, service=service)
+ page = client_request.get(
+ 'main.choose_template',
+ service_id=SERVICE_ONE_ID,
+ )
+ assert tuple(
+ item.text.strip() for item in page.select('nav.navigation a')
+ ) == expected_menu_items
+
+ client_request.get(
+ 'main.usage',
+ service_id=SERVICE_ONE_ID,
+ _expected_status=expected_status,
+ )
+
+
def get_name_of_decorator_from_ast_node(node):
if isinstance(node, ast.Name):
return str(node.id)