|
5 | 5 | from config import config |
6 | 6 | from tests.pages import ( |
7 | 7 | ChangeLinkTextForEmailFilePage, |
| 8 | + ChangeRentionPeriodForEmailFilePage, |
8 | 9 | DocumentDownloadLandingPage, |
| 10 | + EmailConfirmationSettingForEmailFilePage, |
9 | 11 | ManageEmailTemplateFilePage, |
10 | 12 | ManageFilesForEmailTemplatePage, |
11 | 13 | SendEmailPreviewPage, |
@@ -139,3 +141,85 @@ def test_send_one_off_email_with_file_via_ui(driver, login_seeded_user): |
139 | 141 | templates_page = ShowTemplatesPage(driver) |
140 | 142 | assert templates_page.get_h1_text() == "Templates" |
141 | 143 | assert template_name not in templates_page.get_all_listed_templates() |
| 144 | + |
| 145 | + |
| 146 | +@recordtime |
| 147 | +@pytest.mark.xdist_group(name="send-files-via-ui-flow") |
| 148 | +def test_email_template_file_management_settings(driver, login_seeded_user): |
| 149 | + # Test Creating an email template and attach a file to it |
| 150 | + template_name = f"Functional Tests - test email file management settings- {uuid.uuid4()}" |
| 151 | + content = "Hi ((name)), download this file:" |
| 152 | + file_name = "attachment.pdf" |
| 153 | + create_an_email_template_and_attach_a_file(driver, file_name, template_name, content) |
| 154 | + |
| 155 | + # Confirm file has been attached to template on the Preview email template page |
| 156 | + view_email_template_page = ViewEmailTemplatePage(driver) |
| 157 | + assert view_email_template_page.get_h1_text() == template_name |
| 158 | + assert view_email_template_page.get_file_added_count_text() == "1 file added" |
| 159 | + |
| 160 | + # Go to file management page |
| 161 | + view_email_template_page.click_manage_files_button() |
| 162 | + manage_files_page = ManageFilesForEmailTemplatePage(driver) |
| 163 | + assert manage_files_page.get_h1_text() == "Manage files" |
| 164 | + manage_files_page.click_manage_link(file_name) |
| 165 | + manage_a_file_page = ManageEmailTemplateFilePage(driver) |
| 166 | + assert manage_a_file_page.get_h1_text() == file_name |
| 167 | + |
| 168 | + # Change link text |
| 169 | + link_text_label = "Link text" |
| 170 | + original_link_text = manage_a_file_page.get_file_setting_value(link_text_label) |
| 171 | + assert original_link_text == "Not set" |
| 172 | + manage_a_file_page.click_change_file_setting(link_text_label) |
| 173 | + change_link_text_page = ChangeLinkTextForEmailFilePage(driver) |
| 174 | + assert change_link_text_page.get_h1_text() == "Add link text" |
| 175 | + new_link_text = "file_download_link" |
| 176 | + change_link_text_page.fill_in_link_text(new_link_text) |
| 177 | + change_link_text_page.click_continue_button() |
| 178 | + |
| 179 | + # confirm link text change |
| 180 | + assert manage_a_file_page.get_file_setting_value(link_text_label) == new_link_text |
| 181 | + |
| 182 | + # Change retention period |
| 183 | + retention_period_label = "Available for" |
| 184 | + original_retention_period_text = manage_a_file_page.get_file_setting_value(retention_period_label) |
| 185 | + assert original_retention_period_text == "26 weeks after sending\n (about 6 months)" |
| 186 | + manage_a_file_page.click_change_file_setting(retention_period_label) |
| 187 | + assert change_link_text_page.get_h1_text() == "How long the file is available" |
| 188 | + change_retention_period = ChangeRentionPeriodForEmailFilePage(driver) |
| 189 | + new_retention_period = "50" |
| 190 | + change_retention_period.fill_in_retention_period(new_retention_period) |
| 191 | + change_retention_period.click_continue_button() |
| 192 | + |
| 193 | + # confirm retention period change |
| 194 | + assert ( |
| 195 | + manage_a_file_page.get_file_setting_value(retention_period_label) |
| 196 | + == f"{new_retention_period} weeks after sending\n (about 11 months)" |
| 197 | + ) |
| 198 | + assert manage_a_file_page.get_h1_text() == file_name |
| 199 | + |
| 200 | + # Change email confirmation |
| 201 | + email_confirmation_label = "Ask recipient for email address" |
| 202 | + confirmation_label_choice = manage_a_file_page.get_file_setting_value(email_confirmation_label) |
| 203 | + assert confirmation_label_choice == "Yes" |
| 204 | + manage_a_file_page.click_change_file_setting(email_confirmation_label) |
| 205 | + email_confirmation_page = EmailConfirmationSettingForEmailFilePage(driver) |
| 206 | + assert email_confirmation_page.get_h1_text() == "Ask recipient for their email address" |
| 207 | + new_confirmation_label_choice = "No" |
| 208 | + email_confirmation_page.select_email_confirmation_option(new_confirmation_label_choice) |
| 209 | + email_confirmation_page.click_continue_button() |
| 210 | + |
| 211 | + # confirm email confirmation option change |
| 212 | + assert manage_a_file_page.get_h1_text() == file_name |
| 213 | + assert manage_a_file_page.get_file_setting_value(email_confirmation_label) == new_confirmation_label_choice |
| 214 | + |
| 215 | + # delete template which would also delete file |
| 216 | + manage_a_file_page.click_back_link() |
| 217 | + manage_files_page.click_back_link() |
| 218 | + assert view_email_template_page.get_h1_text() == template_name |
| 219 | + view_email_template_page.click_delete_template_link() |
| 220 | + view_email_template_page.click_template_deletion_confirmation_button() |
| 221 | + |
| 222 | + # confirm template has been deleted |
| 223 | + templates_page = ShowTemplatesPage(driver) |
| 224 | + assert templates_page.get_h1_text() == "Templates" |
| 225 | + assert template_name not in templates_page.get_all_listed_templates() |
0 commit comments