Hide name changing functionality when in folder deletion mode

Also add 'back' link
Also start work on additional tests for folder deletion flow
This commit is contained in:
Pea Tyczynska
2018-11-16 15:10:12 +00:00
parent 4373987786
commit 69ada9a312
3 changed files with 72 additions and 14 deletions

View File

@@ -442,14 +442,15 @@ def delete_template_folder(service_id, template_folder_id):
else:
abort(500, e)
flash("Are you sure you want to delete the '{}' folder?".format(template_folder_name), 'delete')
flash("Are you sure you want to delete the {} folder?".format(template_folder_name), 'delete')
return render_template(
'views/templates/manage-template-folder.html',
form=form,
template_folder_path=template_folder_path,
current_service_id=current_service.id,
template_folder_id=template_folder_id,
template_type="all"
template_type="all",
delete_folder=True
)

View File

@@ -22,18 +22,21 @@ Templates
{% endfor %}
</h1>
{% if not delete_folder %}
{% call form_wrapper() %}
{{ textbox(form.name) }}
{{ page_footer(
'Save',
delete_link=url_for(
'.delete_template_folder',
service_id=current_service_id,
template_folder_id=template_folder_id
),
delete_link_text="Delete this folder") }}
{% call form_wrapper() %}
{{ textbox(form.name) }}
{{ page_footer(
'Save',
delete_link=url_for(
'.delete_template_folder',
service_id=current_service_id,
template_folder_id=template_folder_id
),
delete_link_text="Delete this folder") }}
{% endcall %}
{% endcall %}
{% else %}
<a href="{{url_for('.manage_template_folder', service_id=current_service.id, template_folder_id=template_folder_id)}}">Back to manage folder page</a>
{% endif %}
{% endblock %}

View File

@@ -378,6 +378,60 @@ def test_rename_folder(client_request, service_one, mock_get_template_folders, m
)
def test_delete_template_folder_should_request_confirmation(
client_request, service_one, mock_get_template_folders, mocker
):
service_one['permissions'] += ['edit_folders']
folder_id = str(uuid.uuid4())
mock_get_template_folders.side_effect = [[
{'id': folder_id, 'name': 'sacrifice', 'parent_id': None},
], []]
mocker.patch(
'app.models.service.Service.get_templates',
return_value=[],
)
page = client_request.get(
'main.delete_template_folder', service_id=service_one['id'],
template_folder_id=folder_id
)
assert normalize_spaces(page.select('.banner-dangerous')[0].text) == (
'Are you sure you want to delete the sacrifice folder? '
'Yes, delete'
)
assert len(page.select('label')) == 0
assert len(page.select('button')) == 1
assert "Back to manage folder page" in page.text
def test_delete_template_folder_should_detect_non_empty_folder_on_get(
client_request, service_one, mock_get_template_folders, mocker
):
service_one['permissions'] += ['edit_folders']
folder_id = str(uuid.uuid4())
child_folder_id = str(uuid.uuid4())
mock_get_template_folders.side_effect = [[
{'id': folder_id, 'name': 'sacrifice', 'parent_id': None},
], [{'id': child_folder_id, 'name': 'sacrifice', 'parent_id': None}]]
mocker.patch(
'app.models.service.Service.get_templates',
return_value=[],
)
page = client_request.get(
'main.delete_template_folder', service_id=service_one['id'],
template_folder_id=folder_id
)
import pdb; pdb.set_trace()
assert normalize_spaces(page.select('.banner-dangerous')[0].text) == (
'Are you sure you want to delete the sacrifice folder? '
'Yes, delete'
)
assert len(page.select('label')) == 0
assert len(page.select('button')) == 1
assert "Back to manage folder page" in page.text
def test_delete_folder(client_request, service_one, mock_get_template_folders, mocker):
mock_delete = mocker.patch('app.template_folder_api_client.delete_template_folder')
folder_id = str(uuid.uuid4())