Files
notifications-admin/tests/app/main/views/test_find_services.py
Pea Tyczynska a601d6e700 Send files by email on for everyone and only depending on service
having contact details set up.

Display not set up yet for send files by email row when contact_link not set up
2020-02-27 13:36:27 +00:00

74 lines
2.6 KiB
Python

from tests import service_json
def test_find_services_by_name_page_loads_correctly(client_request, platform_admin_user):
client_request.login(platform_admin_user)
document = client_request.get('main.find_services_by_name')
assert document.h1.text.strip() == 'Find services by name'
assert len(document.find_all('input', {'type': 'search'})) > 0
def test_find_services_by_name_displays_services_found(
client_request,
platform_admin_user,
mocker
):
client_request.login(platform_admin_user)
get_services = mocker.patch(
'app.service_api_client.find_services_by_name',
return_value={"data": [service_json()]}
)
document = client_request.post(
'main.find_services_by_name',
_data={"search": "Test Service"},
_expected_status=200
)
get_services.assert_called_once_with(service_name="Test Service")
result = document.select_one('.browse-list-item a')
assert result.text.strip() == 'Test Service'
assert result.attrs["href"] == "/services/1234"
def test_find_services_by_name_displays_multiple_services(
client_request,
platform_admin_user,
mocker
):
client_request.login(platform_admin_user)
mocker.patch(
'app.service_api_client.find_services_by_name',
return_value={"data": [service_json(name="Tadfield Police"), service_json(name="Tadfield Air Base")]}
)
document = client_request.post('main.find_services_by_name', _data={"search": "Tadfield"}, _expected_status=200)
results = document.find_all('li', {'class': 'browse-list-item'})
assert len(results) == 2
assert sorted([result.text.strip() for result in results]) == ["Tadfield Air Base", "Tadfield Police"]
def test_find_services_by_name_displays_message_if_no_services_found(
client_request,
platform_admin_user,
mocker
):
client_request.login(platform_admin_user)
mocker.patch('app.service_api_client.find_services_by_name', return_value={"data": []})
document = client_request.post(
'main.find_services_by_name', _data={"search": "Nabuchodonosorian Empire"}, _expected_status=200
)
assert document.find('p', {'class': 'browse-list-hint'}).text.strip() == 'No services found.'
def test_find_services_by_name_validates_against_empty_search_submission(
client_request,
platform_admin_user,
mocker
):
client_request.login(platform_admin_user)
document = client_request.post('main.find_services_by_name', _data={"search": ""}, _expected_status=200)
expected_message = "You need to enter full or partial name to search by."
assert document.find('span', {'class': 'error-message'}).text.strip() == expected_message