Merge pull request #2518 from alphagov/delete-folder-refinements

Make some refinements to the delete folder journey
This commit is contained in:
Chris Hill-Scott
2018-11-20 14:53:05 +00:00
committed by GitHub
3 changed files with 48 additions and 33 deletions

View File

@@ -402,7 +402,7 @@ def test_get_manage_folder_page(
assert normalize_spaces(page.select_one('title').text) == (
'folder_two Templates service one GOV.UK Notify'
)
assert page.select_one('input[name=name]') is not None
assert page.select_one('input[name=name]')['value'] == 'folder_two'
delete_link = page.find('a', string="Delete this folder")
expected_delete_url = "/services/{}/templates/folders/{}/delete".format(service_one['id'], folder_id)
@@ -478,9 +478,20 @@ def test_delete_template_folder_should_request_confirmation(
'Yes, delete'
)
assert len(page.select('label')) == 0
assert len(page.select('button')) == 1
assert "Back to manage folder page" in page.text
assert page.select_one('input[name=name]')['value'] == 'sacrifice'
assert len(page.select('form')) == 2
assert len(page.select('button')) == 2
assert 'action' not in page.select('form')[0]
assert page.select('form button')[0].text == 'Yes, delete'
assert page.select('form')[1]['action'] == url_for(
'main.manage_template_folder',
service_id=service_one['id'],
template_folder_id=folder_id,
)
assert page.select('form button')[1].text == 'Save'
def test_delete_template_folder_should_detect_non_empty_folder_on_get(
@@ -511,11 +522,15 @@ def test_delete_template_folder_should_detect_non_empty_folder_on_get(
)
def test_delete_folder(client_request, service_one, mock_get_template_folders, mocker):
@pytest.mark.parametrize('parent_folder_id', (
None,
PARENT_FOLDER_ID,
))
def test_delete_folder(client_request, service_one, mock_get_template_folders, mocker, parent_folder_id):
mock_delete = mocker.patch('app.template_folder_api_client.delete_template_folder')
folder_id = str(uuid.uuid4())
mock_get_template_folders.side_effect = [[
{'id': folder_id, 'name': 'sacrifice', 'parent_id': None},
{'id': folder_id, 'name': 'sacrifice', 'parent_id': parent_folder_id},
], []]
mocker.patch(
'app.models.service.Service.get_templates',
@@ -527,9 +542,12 @@ def test_delete_folder(client_request, service_one, mock_get_template_folders, m
'main.delete_template_folder',
service_id=service_one['id'],
template_folder_id=folder_id,
_expected_redirect=url_for("main.choose_template",
service_id=service_one['id'],
_external=True)
_expected_redirect=url_for(
"main.choose_template",
service_id=service_one['id'],
template_folder_id=parent_folder_id,
_external=True,
)
)
mock_delete.assert_called_once_with(service_one['id'], folder_id)