diff --git a/backend/models/dtos/interests_dto.py b/backend/models/dtos/interests_dto.py index 92cdac559f..fd60f73b07 100644 --- a/backend/models/dtos/interests_dto.py +++ b/backend/models/dtos/interests_dto.py @@ -7,7 +7,7 @@ class InterestDTO(Model): """DTO for a interest.""" id = IntType() - name = StringType() + name = StringType(required=True, min_length=1) user_selected = BooleanType( serialized_name="userSelected", serialize_when_none=False ) diff --git a/tests/backend/integration/api/interests/test_resources.py b/tests/backend/integration/api/interests/test_resources.py index 01e8a8994a..814b8ca2f0 100644 --- a/tests/backend/integration/api/interests/test_resources.py +++ b/tests/backend/integration/api/interests/test_resources.py @@ -95,6 +95,21 @@ def test_create_a_new_interest_by_organisation_admin_passes(self): self.assertEqual(response.status_code, 200) self.assertEqual(response_body["name"], NEW_INTEREST_NAME) + def test_create_a_new_interest_with_empty_name_fails(self): + """ + Test that endpoint returns 400 when admin creates a new interest with empty name + """ + # setup: make test user organisation admin + add_manager_to_organisation(self.test_organisation, self.test_user) + response = self.client.post( + self.endpoint_url, + headers={"Authorization": self.session_token}, + json={"name": ""}, + ) + response_body = response.get_json() + self.assertEqual(response.status_code, 400) + self.assertEqual(response_body["SubCode"], "InvalidData") + # get def test_get_all_interest_passes(self): """ @@ -230,6 +245,21 @@ def test_update_an_existent_interest_with_invalid_data_fails(self): self.assertEqual(response.status_code, 400) self.assertEqual(response_body["SubCode"], "InvalidData") + def test_update_an_interest_with_empty_name_fails(self): + """ + Test that endpoint returns 400 when updating an interest with empty name + """ + # setup: make test user organisation admin + add_manager_to_organisation(self.test_organisation, self.test_user) + response = self.client.patch( + self.endpoint_url, + headers={"Authorization": self.session_token}, + json={"name": ""}, + ) + response_body = response.get_json() + self.assertEqual(response.status_code, 400) + self.assertEqual(response_body["SubCode"], "InvalidData") + def test_update_an_existing_interest_by_organisation_admin_passes(self): """ Test that endpoint returns 200 when updating an existing interest by admin