mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-05-05 16:38:59 -04:00
Don’t validate phone numbers when sending emails
If you have a placeholder called `((phone number))` in your email template, and you try to send a one-off message then the form input will attempt to validate your ‘phone number’. This is not helpful if you’re trying to put a landline number in your email, for example. This only affects messages being sent through the one-off interface. This commit makes the form be aware of template type, which fixes the problem.
This commit is contained in:
@@ -9,8 +9,8 @@ def test_form_class_not_mutated(app_):
|
||||
method='POST',
|
||||
data={'placeholder_value': ''}
|
||||
):
|
||||
form1 = get_placeholder_form_instance('name', {}, optional_placeholder=False)
|
||||
form2 = get_placeholder_form_instance('city', {}, optional_placeholder=True)
|
||||
form1 = get_placeholder_form_instance('name', {}, 'sms', optional_placeholder=False)
|
||||
form2 = get_placeholder_form_instance('city', {}, 'sms', optional_placeholder=True)
|
||||
|
||||
assert not form1.validate_on_submit()
|
||||
assert form2.validate_on_submit()
|
||||
@@ -19,29 +19,36 @@ def test_form_class_not_mutated(app_):
|
||||
assert str(form2.placeholder_value.label) == '<label for="placeholder_value">city</label>'
|
||||
|
||||
|
||||
@pytest.mark.parametrize('service_can_send_international_sms, placeholder_name, value, expected_error', [
|
||||
@pytest.mark.parametrize('service_can_send_international_sms, placeholder_name, template_type, value, expected_error', [
|
||||
|
||||
(False, 'email address', '', 'Can’t be empty'),
|
||||
(False, 'email address', '12345', 'Enter a valid email address'),
|
||||
(False, 'email address', '“bad”@email-address.com', 'Enter a valid email address'),
|
||||
(False, 'email address', 'test@example.com', None),
|
||||
(False, 'email address', 'test@example.gov.uk', None),
|
||||
(False, 'email address', 'email', '', 'Can’t be empty'),
|
||||
(False, 'email address', 'email', '12345', 'Enter a valid email address'),
|
||||
(False, 'email address', 'email', '“bad”@email-address.com', 'Enter a valid email address'),
|
||||
(False, 'email address', 'email', 'test@example.com', None),
|
||||
(False, 'email address', 'email', 'test@example.gov.uk', None),
|
||||
|
||||
(False, 'phone number', '', 'Can’t be empty'),
|
||||
(False, 'phone number', '+1-2345-678890', 'Not a UK mobile number'),
|
||||
(False, 'phone number', '07900900123', None),
|
||||
(False, 'phone number', '+44(0)7900 900-123', None),
|
||||
(False, 'phone number', 'sms', '', 'Can’t be empty'),
|
||||
(False, 'phone number', 'sms', '+1-2345-678890', 'Not a UK mobile number'),
|
||||
(False, 'phone number', 'sms', '07900900123', None),
|
||||
(False, 'phone number', 'sms', '+44(0)7900 900-123', None),
|
||||
|
||||
(True, 'phone number', '+123', 'Not enough digits'),
|
||||
(True, 'phone number', '+44(0)7900 900-123', None),
|
||||
(True, 'phone number', '+1-2345-678890', None),
|
||||
(True, 'phone number', 'sms', '+123', 'Not enough digits'),
|
||||
(True, 'phone number', 'sms', '+44(0)7900 900-123', None),
|
||||
(True, 'phone number', 'sms', '+1-2345-678890', None),
|
||||
|
||||
(False, 'anything else', '', 'Can’t be empty'),
|
||||
(False, 'anything else', 'sms', '', 'Can’t be empty'),
|
||||
(False, 'anything else', 'email', '', 'Can’t be empty'),
|
||||
|
||||
(True, 'phone number', 'sms', 'invalid', 'Must not contain letters or symbols'),
|
||||
(True, 'phone number', 'email', 'invalid', None),
|
||||
(True, 'phone number', 'letter', 'invalid', None),
|
||||
(True, 'email address', 'sms', 'invalid', None),
|
||||
|
||||
])
|
||||
def test_validates_recipients(
|
||||
app_,
|
||||
placeholder_name,
|
||||
template_type,
|
||||
value,
|
||||
service_can_send_international_sms,
|
||||
expected_error,
|
||||
@@ -53,6 +60,7 @@ def test_validates_recipients(
|
||||
form = get_placeholder_form_instance(
|
||||
placeholder_name,
|
||||
{},
|
||||
template_type,
|
||||
allow_international_phone_numbers=service_can_send_international_sms,
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user