mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-01 12:18:50 -04:00
fix new services being assigned to wrong letter branding
when creating a service, the api accepts a `service_domain` field that it uses to populate the letter branding - if the service domain is known to match an existing letter branding option, use that automatically. However, the admin currently doesn't know about this field yet so doesn't pass anything through - the api erroneously searches the DB for letter branding with a domain of None - which they currently all have. This meant that when services were created, their letter branding was set to the most recent row in the DB (that matched None).
This commit is contained in:
@@ -219,7 +219,7 @@ def test_get_service_by_id_should_404_if_no_service_for_user(notify_api, sample_
|
||||
assert json_resp['message'] == 'No result found'
|
||||
|
||||
|
||||
def test_create_service(client, sample_user):
|
||||
def test_create_service(admin_request, sample_user):
|
||||
data = {
|
||||
'name': 'created service',
|
||||
'user_id': str(sample_user.id),
|
||||
@@ -229,14 +229,9 @@ def test_create_service(client, sample_user):
|
||||
'email_from': 'created.service',
|
||||
'created_by': str(sample_user.id)
|
||||
}
|
||||
auth_header = create_authorization_header()
|
||||
headers = [('Content-Type', 'application/json'), auth_header]
|
||||
resp = client.post(
|
||||
'/service',
|
||||
data=json.dumps(data),
|
||||
headers=headers)
|
||||
json_resp = resp.json
|
||||
assert resp.status_code == 201
|
||||
|
||||
json_resp = admin_request.post('service.create_service', _data=data, _expected_status=201)
|
||||
|
||||
assert json_resp['data']['id']
|
||||
assert json_resp['data']['name'] == 'created service'
|
||||
assert json_resp['data']['email_from'] == 'created.service'
|
||||
@@ -248,14 +243,12 @@ def test_create_service(client, sample_user):
|
||||
service_db = Service.query.get(json_resp['data']['id'])
|
||||
assert service_db.name == 'created service'
|
||||
|
||||
auth_header_fetch = create_authorization_header()
|
||||
|
||||
resp = client.get(
|
||||
'/service/{}?user_id={}'.format(json_resp['data']['id'], sample_user.id),
|
||||
headers=[auth_header_fetch]
|
||||
json_resp = admin_request.get(
|
||||
'service.get_service_by_id',
|
||||
service_id=json_resp['data']['id'],
|
||||
user_id=sample_user.id
|
||||
)
|
||||
assert resp.status_code == 200
|
||||
json_resp = resp.json
|
||||
|
||||
assert json_resp['data']['name'] == 'created service'
|
||||
assert not json_resp['data']['research_mode']
|
||||
|
||||
@@ -264,7 +257,7 @@ def test_create_service(client, sample_user):
|
||||
assert service_sms_senders[0].sms_sender == current_app.config['FROM_NUMBER']
|
||||
|
||||
|
||||
def test_create_service_with_domain_sets_letter_branding(client, sample_user):
|
||||
def test_create_service_with_domain_sets_letter_branding(admin_request, sample_user):
|
||||
letter_branding = create_letter_branding(
|
||||
name='test domain', filename='test-domain', domain='test.domain'
|
||||
)
|
||||
@@ -278,21 +271,16 @@ def test_create_service_with_domain_sets_letter_branding(client, sample_user):
|
||||
'created_by': str(sample_user.id),
|
||||
'service_domain': letter_branding.domain
|
||||
}
|
||||
auth_header = create_authorization_header()
|
||||
headers = [('Content-Type', 'application/json'), auth_header]
|
||||
resp = client.post(
|
||||
'/service',
|
||||
data=json.dumps(data),
|
||||
headers=headers)
|
||||
json_resp = resp.json
|
||||
assert resp.status_code == 201
|
||||
json_resp = admin_request.post('service.create_service', _data=data, _expected_status=201)
|
||||
assert json_resp['data']['dvla_organisation'] == '001'
|
||||
assert json_resp['data']['letter_branding'] == str(letter_branding.id)
|
||||
assert json_resp['data']['letter_logo_filename'] == str(letter_branding.filename)
|
||||
|
||||
|
||||
def test_create_service_when_letter_branding_is_empty(client, sample_user):
|
||||
# test create service before the data migration
|
||||
def test_create_service_with_no_domain_doesnt_set_letter_branding(admin_request, sample_user):
|
||||
create_letter_branding(name='no domain', filename='no-domain', domain=None)
|
||||
create_letter_branding(name='test domain', filename='test-domain', domain='test.domain')
|
||||
|
||||
data = {
|
||||
'name': 'created service',
|
||||
'user_id': str(sample_user.id),
|
||||
@@ -301,16 +289,11 @@ def test_create_service_when_letter_branding_is_empty(client, sample_user):
|
||||
'active': False,
|
||||
'email_from': 'created.service',
|
||||
'created_by': str(sample_user.id),
|
||||
'service_domain': 'test.domain'
|
||||
'service_domain': None
|
||||
}
|
||||
auth_header = create_authorization_header()
|
||||
headers = [('Content-Type', 'application/json'), auth_header]
|
||||
resp = client.post(
|
||||
'/service',
|
||||
data=json.dumps(data),
|
||||
headers=headers)
|
||||
json_resp = resp.json
|
||||
assert resp.status_code == 201
|
||||
|
||||
json_resp = admin_request.post('service.create_service', _data=data, _expected_status=201)
|
||||
|
||||
assert json_resp['data']['letter_branding'] is None
|
||||
assert json_resp['data']['letter_logo_filename'] == 'hm-government'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user