mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-07 09:48:25 -04:00
Add tests for template folder navigation
This commit is contained in:
@@ -1,5 +1,13 @@
|
|||||||
|
import uuid
|
||||||
|
|
||||||
|
import pytest
|
||||||
from flask import url_for
|
from flask import url_for
|
||||||
|
|
||||||
|
from tests.conftest import SERVICE_ONE_ID, normalize_spaces
|
||||||
|
|
||||||
|
PARENT_FOLDER_ID = '7e979e79-d970-43a5-ac69-b625a8d147b0'
|
||||||
|
CHILD_FOLDER_ID = '92ee1ee0-e4ee-4dcc-b1a7-a5da9ebcfa2b'
|
||||||
|
|
||||||
|
|
||||||
def test_add_page_shows_option_for_folder(
|
def test_add_page_shows_option_for_folder(
|
||||||
client_request,
|
client_request,
|
||||||
@@ -59,3 +67,89 @@ def test_post_add_template_folder_page(client_request, service_one, mocker):
|
|||||||
)
|
)
|
||||||
|
|
||||||
mock_create.assert_called_once_with(service_one['id'], name='foo', parent_id=None)
|
mock_create.assert_called_once_with(service_one['id'], name='foo', parent_id=None)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
'expected_page_title, extra_args, expected_nav_links, expected_links',
|
||||||
|
[
|
||||||
|
(
|
||||||
|
'Templates',
|
||||||
|
{},
|
||||||
|
['Text message', 'Email', 'Letter'],
|
||||||
|
[
|
||||||
|
'folder_one',
|
||||||
|
'folder_two',
|
||||||
|
'sms_template_one',
|
||||||
|
'sms_template_two',
|
||||||
|
'email_template_one',
|
||||||
|
'email_template_two',
|
||||||
|
'letter_template_one',
|
||||||
|
'letter_template_two',
|
||||||
|
]
|
||||||
|
),
|
||||||
|
(
|
||||||
|
'Templates',
|
||||||
|
{'template_type': 'sms'},
|
||||||
|
['All', 'Email', 'Letter'],
|
||||||
|
['folder_one', 'folder_two', 'sms_template_one', 'sms_template_two'],
|
||||||
|
),
|
||||||
|
(
|
||||||
|
'Templates / folder_one',
|
||||||
|
{'template_type': 'sms', 'template_folder_id': PARENT_FOLDER_ID},
|
||||||
|
['All', 'Email', 'Letter'],
|
||||||
|
['folder_one_one', 'folder_one_two'],
|
||||||
|
),
|
||||||
|
(
|
||||||
|
'Templates / folder_one / folder_one_one',
|
||||||
|
{'template_folder_id': CHILD_FOLDER_ID},
|
||||||
|
['Text message', 'Email', 'Letter'],
|
||||||
|
[],
|
||||||
|
),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
def test_should_show_templates_folder_page(
|
||||||
|
client_request,
|
||||||
|
mock_get_service_templates,
|
||||||
|
mock_get_template_folders,
|
||||||
|
mock_has_no_jobs,
|
||||||
|
service_one,
|
||||||
|
mocker,
|
||||||
|
fake_uuid,
|
||||||
|
expected_page_title,
|
||||||
|
extra_args,
|
||||||
|
expected_nav_links,
|
||||||
|
expected_links,
|
||||||
|
):
|
||||||
|
|
||||||
|
mock_get_template_folders.return_value = [
|
||||||
|
{'id': PARENT_FOLDER_ID, 'name': 'folder_one', 'parent_id': None},
|
||||||
|
{'id': str(uuid.uuid4()), 'name': 'folder_two', 'parent_id': None},
|
||||||
|
{'id': CHILD_FOLDER_ID, 'name': 'folder_one_one', 'parent_id': PARENT_FOLDER_ID},
|
||||||
|
{'id': str(uuid.uuid4()), 'name': 'folder_one_two', 'parent_id': PARENT_FOLDER_ID},
|
||||||
|
]
|
||||||
|
|
||||||
|
service_one['permissions'] += ['letter', 'edit_folders']
|
||||||
|
|
||||||
|
page = client_request.get(
|
||||||
|
'main.choose_template',
|
||||||
|
service_id=SERVICE_ONE_ID,
|
||||||
|
**extra_args
|
||||||
|
)
|
||||||
|
|
||||||
|
assert normalize_spaces(page.select_one('h1').text) == expected_page_title
|
||||||
|
|
||||||
|
links_in_page = page.select('.pill a')
|
||||||
|
|
||||||
|
assert len(links_in_page) == len(expected_nav_links)
|
||||||
|
|
||||||
|
for index, expected_link in enumerate(expected_nav_links):
|
||||||
|
assert links_in_page[index].text.strip() == expected_link
|
||||||
|
|
||||||
|
page_links = page.select('.message-name a')
|
||||||
|
|
||||||
|
assert len(page_links) == len(expected_links)
|
||||||
|
|
||||||
|
for index, expected_link in enumerate(expected_links):
|
||||||
|
assert page_links[index].text.strip() == expected_link
|
||||||
|
|
||||||
|
mock_get_service_templates.assert_called_once_with(SERVICE_ONE_ID)
|
||||||
|
|||||||
Reference in New Issue
Block a user