Skip to content

Commit

Permalink
✅ [#1950] Add tests for Mijn aanvragen for vestiging
Browse files Browse the repository at this point in the history
  • Loading branch information
stevenbal committed Jan 9, 2024
1 parent 70bb721 commit 1b7ac8c
Show file tree
Hide file tree
Showing 2 changed files with 160 additions and 3 deletions.
52 changes: 50 additions & 2 deletions src/open_inwoner/openklant/tests/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,14 @@ def __init__(self):
emailadres="[email protected]",
telefoonnummer="0687654321",
)
self.klant_vestiging = generate_oas_component(
"kc",
"schemas/Klant",
uuid="bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
url=f"{KLANTEN_ROOT}klant/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
emailadres="[email protected]",
telefoonnummer="0612345678",
)
self.contactmoment = generate_oas_component(
"cmc",
"schemas/ContactMoment",
Expand All @@ -147,6 +155,17 @@ def __init__(self):
status=Status.afgehandeld,
antwoord="",
)
self.contactmoment_vestiging = generate_oas_component(
"cmc",
"schemas/ContactMoment",
uuid="aaaaaaaa-aaaa-aaaa-aaaa-eeeeeeeeeeee",
url=f"{CONTACTMOMENTEN_ROOT}contactmoment/aaaaaaaa-aaaa-aaaa-aaaa-eeeeeeeeeeee",
identificatie="AB123",
type="SomeType",
kanaal="MAIL",
status=Status.afgehandeld,
antwoord="",
)
self.klant_contactmoment = generate_oas_component(
"cmc",
"schemas/KlantContactMoment",
Expand All @@ -163,17 +182,37 @@ def __init__(self):
klant=self.klant2["url"],
contactmoment=self.contactmoment2["url"],
)
self.klant_contactmoment3 = generate_oas_component(
"cmc",
"schemas/KlantContactMoment",
uuid="aaaaaaaa-aaaa-aaaa-aaaa-dddddddddddd",
url=f"{CONTACTMOMENTEN_ROOT}klantcontactmomenten/aaaaaaaa-aaaa-aaaa-aaaa-dddddddddddd",
klant=self.klant["url"],
contactmoment=self.contactmoment_vestiging["url"],
)
self.klant_contactmoment4 = generate_oas_component(
"cmc",
"schemas/KlantContactMoment",
uuid="aaaaaaaa-aaaa-aaaa-aaaa-ffffffffffff",
url=f"{CONTACTMOMENTEN_ROOT}klantcontactmomenten/aaaaaaaa-aaaa-aaaa-aaaa-ffffffffffff",
klant=self.klant_vestiging["url"],
contactmoment=self.contactmoment_vestiging["url"],
)

def install_mocks(self, m) -> "MockAPIReadData":
self.setUpOASMocks(m)

for resource_attr in [
"klant",
"klant2",
"klant_vestiging",
"contactmoment",
"contactmoment2",
"contactmoment_vestiging",
"klant_contactmoment",
"klant_contactmoment2",
"klant_contactmoment3",
"klant_contactmoment4",
]:
resource = getattr(self, resource_attr)
m.get(resource["url"], json=resource)
Expand All @@ -193,15 +232,24 @@ def install_mocks(self, m) -> "MockAPIReadData":
f"{KLANTEN_ROOT}klanten?subjectNietNatuurlijkPersoon__innNnpId={self.eherkenning_user.rsin}",
json=paginated_response([self.klant2]),
)
m.get(
f"{KLANTEN_ROOT}klanten?subjectVestiging__vestigingsNummer=1234",
json=paginated_response([self.klant_vestiging]),
)

m.get(
f"{CONTACTMOMENTEN_ROOT}klantcontactmomenten?klant={self.klant['url']}",
json=paginated_response([self.klant_contactmoment]),
)

m.get(
f"{CONTACTMOMENTEN_ROOT}klantcontactmomenten?klant={self.klant2['url']}",
json=paginated_response([self.klant_contactmoment2]),
json=paginated_response(
[self.klant_contactmoment2, self.klant_contactmoment3]
),
)
m.get(
f"{CONTACTMOMENTEN_ROOT}klantcontactmomenten?klant={self.klant_vestiging['url']}",
json=paginated_response([self.klant_contactmoment4]),
)

return self
Expand Down
111 changes: 110 additions & 1 deletion src/open_inwoner/openklant/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,11 @@
from open_inwoner.accounts.tests.factories import UserFactory
from open_inwoner.openklant.models import OpenKlantConfig
from open_inwoner.openklant.tests.data import MockAPIReadData
from open_inwoner.utils.test import ClearCachesMixin, DisableRequestLogMixin
from open_inwoner.utils.test import (
ClearCachesMixin,
DisableRequestLogMixin,
set_kvk_branch_number_in_session,
)


@requests_mock.Mocker()
Expand Down Expand Up @@ -97,6 +101,49 @@ def test_list_for_kvk_or_rsin(self, m):
},
)

@set_kvk_branch_number_in_session("1234")
def test_list_for_vestiging(self, m):
data = MockAPIReadData().install_mocks(m)
self.client.force_login(user=data.eherkenning_user)

for use_rsin_for_innNnpId_query_parameter in [True, False]:
with self.subTest(
use_rsin_for_innNnpId_query_parameter=use_rsin_for_innNnpId_query_parameter
):
config = OpenKlantConfig.get_solo()
config.use_rsin_for_innNnpId_query_parameter = (
use_rsin_for_innNnpId_query_parameter
)
config.save()

detail_url = reverse(
"cases:contactmoment_detail",
kwargs={"kcm_uuid": data.klant_contactmoment4["uuid"]},
)
list_url = reverse("cases:contactmoment_list")

response = self.client.get(list_url)

kcms = response.context["contactmomenten"]
self.assertEqual(len(kcms), 1)

self.assertEqual(
kcms[0],
{
"registered_date": datetime.fromisoformat(
data.contactmoment_vestiging["registratiedatum"]
),
"channel": data.contactmoment_vestiging["kanaal"].title(),
"text": data.contactmoment_vestiging["tekst"],
"onderwerp": data.contactmoment_vestiging["onderwerp"],
"antwoord": data.contactmoment_vestiging["antwoord"],
"identificatie": data.contactmoment_vestiging["identificatie"],
"type": data.contactmoment_vestiging["type"],
"status": _("Afgehandeld"),
"url": detail_url,
},
)

def test_show_detail_for_bsn(self, m):
data = MockAPIReadData().install_mocks(m)

Expand Down Expand Up @@ -161,6 +208,68 @@ def test_show_detail_for_kvk_or_rsin(self, m):
},
)

@set_kvk_branch_number_in_session("1234")
def test_show_detail_for_vestiging(self, m):
data = MockAPIReadData().install_mocks(m)
self.client.force_login(user=data.eherkenning_user)

for use_rsin_for_innNnpId_query_parameter in [True, False]:
with self.subTest(
use_rsin_for_innNnpId_query_parameter=use_rsin_for_innNnpId_query_parameter
):
config = OpenKlantConfig.get_solo()
config.use_rsin_for_innNnpId_query_parameter = (
use_rsin_for_innNnpId_query_parameter
)
config.save()

detail_url = reverse(
"cases:contactmoment_detail",
kwargs={"kcm_uuid": data.klant_contactmoment4["uuid"]},
)
response = self.client.get(detail_url)

kcm = response.context["contactmoment"]
self.assertEqual(
kcm,
{
"registered_date": datetime.fromisoformat(
data.contactmoment_vestiging["registratiedatum"]
),
"channel": data.contactmoment_vestiging["kanaal"].title(),
"text": data.contactmoment_vestiging["tekst"],
"onderwerp": data.contactmoment_vestiging["onderwerp"],
"antwoord": data.contactmoment_vestiging["antwoord"],
"identificatie": data.contactmoment_vestiging["identificatie"],
"type": data.contactmoment_vestiging["type"],
"status": _("Afgehandeld"),
"url": detail_url,
},
)

@set_kvk_branch_number_in_session("1234")
def test_cannot_access_detail_for_hoofdvestiging_as_vestiging(self, m):
data = MockAPIReadData().install_mocks(m)
self.client.force_login(user=data.eherkenning_user)

for use_rsin_for_innNnpId_query_parameter in [True, False]:
with self.subTest(
use_rsin_for_innNnpId_query_parameter=use_rsin_for_innNnpId_query_parameter
):
config = OpenKlantConfig.get_solo()
config.use_rsin_for_innNnpId_query_parameter = (
use_rsin_for_innNnpId_query_parameter
)
config.save()

detail_url = reverse(
"cases:contactmoment_detail",
kwargs={"kcm_uuid": data.klant_contactmoment2["uuid"]},
)
response = self.client.get(detail_url)

self.assertEqual(response.status_code, 404)

def test_list_requires_bsn_or_kvk(self, m):
user = UserFactory()
list_url = reverse("cases:contactmoment_list")
Expand Down

0 comments on commit 1b7ac8c

Please sign in to comment.