From 28ef6910a38221d97d8b8671a49fb17dccf12304 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Thu, 22 Nov 2018 17:32:28 +0000 Subject: [PATCH] Hide templates and folders not at current level Things in subfolders need to be in the page so we can search for them. But the default view should be only the things are the current level. So we can use CSS to hide items that are below the current level. --- .../stylesheets/components/message.scss | 4 ++ tests/app/main/views/test_template_folders.py | 51 +++++++++++++++++-- 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/app/assets/stylesheets/components/message.scss b/app/assets/stylesheets/components/message.scss index 47ee96790..003bffaeb 100644 --- a/app/assets/stylesheets/components/message.scss +++ b/app/assets/stylesheets/components/message.scss @@ -48,6 +48,10 @@ } + &-hidden-by-default { + display: none; + } + } &-folder { diff --git a/tests/app/main/views/test_template_folders.py b/tests/app/main/views/test_template_folders.py index fd452b3a5..6151febb4 100644 --- a/tests/app/main/views/test_template_folders.py +++ b/tests/app/main/views/test_template_folders.py @@ -107,6 +107,7 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare 'extra_args,' 'expected_nav_links,' 'expected_items, ' + 'expected_displayed_items, ' 'expected_empty_message ' ), [ @@ -131,6 +132,16 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare 'letter_template_one Letter template', 'letter_template_two Letter template', ], + [ + 'folder_one 2 folders', + 'folder_two Empty', + 'sms_template_one Text message template', + 'sms_template_two Text message template', + 'email_template_one Email template', + 'email_template_two Email template', + 'letter_template_one Letter template', + 'letter_template_two Letter template', + ], None, ), ( @@ -147,6 +158,11 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare 'sms_template_one Text message template', 'sms_template_two Text message template', ], + [ + 'folder_one 1 folder', + 'sms_template_one Text message template', + 'sms_template_two Text message template', + ], None, ), ( @@ -162,6 +178,10 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare 'folder_one_one / letter_template_nested Letter template', 'folder_one_two Empty', ], + [ + 'folder_one_one 1 template, 1 folder', + 'folder_one_two Empty', + ], None, ), ( @@ -175,6 +195,9 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare 'folder_one_one / folder_one_one_one 1 template', 'folder_one_one / folder_one_one_one / sms_template_nested Text message template', ], + [ + 'folder_one_one 1 folder', + ], None, ), ( @@ -184,6 +207,7 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare {'template_type': 'email', 'template_folder_id': PARENT_FOLDER_ID}, ['All', 'Text message', 'Letter'], [], + [], 'There are no email templates in this folder', ), ( @@ -197,6 +221,10 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare 'folder_one_one_one / sms_template_nested Text message template', 'letter_template_nested Letter template', ], + [ + 'folder_one_one_one 1 template', + 'letter_template_nested Letter template', + ], None, ), ( @@ -208,6 +236,9 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare [ 'sms_template_nested Text message template', ], + [ + 'sms_template_nested Text message template', + ], None, ), ( @@ -217,6 +248,7 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare {'template_folder_id': FOLDER_TWO_ID}, ['Text message', 'Email', 'Letter'], [], + [], 'This folder is empty', ), ( @@ -226,6 +258,7 @@ def test_post_add_template_folder_page(client_request, service_one, mocker, pare {'template_folder_id': FOLDER_TWO_ID, 'template_type': 'sms'}, ['All', 'Email', 'Letter'], [], + [], 'This folder is empty', ), ] @@ -243,6 +276,7 @@ def test_should_show_templates_folder_page( extra_args, expected_nav_links, expected_items, + expected_displayed_items, expected_empty_message, ): mock_get_template_folders.return_value = [ @@ -295,11 +329,22 @@ def test_should_show_templates_folder_page( for index, expected_link in enumerate(expected_nav_links): assert links_in_page[index].text.strip() == expected_link - page_items = page.select('.template-list-item') - assert len(page_items) == len(expected_items) + all_page_items = page.select('.template-list-item') + assert len(all_page_items) == len(expected_items) for index, expected_item in enumerate(expected_items): - assert normalize_spaces(page_items[index].text) == expected_item + assert normalize_spaces(all_page_items[index].text) == expected_item + + displayed_page_items = page.find_all(lambda tag: ( + tag.has_attr('class') + and 'template-list-item' in tag['class'] + and 'template-list-item-hidden-by-default' not in tag['class'] + )) + assert len(displayed_page_items) == len(expected_displayed_items) + + for index, expected_item in enumerate(expected_displayed_items): + assert '/' not in expected_item # Yo dawg I heard you like tests… + assert normalize_spaces(displayed_page_items[index].text) == expected_item if expected_empty_message: assert normalize_spaces(page.select_one('.template-list-empty').text) == (