Skip to content

Commit 993f336

Browse files
authored
Merge pull request #1647 from maykinmedia/esuite-service-pagination-regression-test
Add a paginated test to the eSuite klant retrieve service method
2 parents 86d9069 + 487a4fb commit 993f336

File tree

1 file changed

+52
-1
lines changed

1 file changed

+52
-1
lines changed

src/open_inwoner/openklant/tests/test_esuite_service.py

+52-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from open_inwoner.openklant.api_models import Klant
99
from open_inwoner.openklant.services import eSuiteKlantenService
1010
from open_inwoner.openklant.tests.data import KLANTEN_ROOT, MockAPIReadData
11-
from open_inwoner.utils.test import DisableRequestLogMixin
11+
from open_inwoner.utils.test import DisableRequestLogMixin, paginated_response
1212

1313

1414
class eSuiteServiceTestCase(TestCase, DisableRequestLogMixin):
@@ -132,3 +132,54 @@ def test_create_klant_vestigingsnummer(self):
132132
bedrijfsnaam="AcmeCorp B.V.",
133133
),
134134
)
135+
136+
def test_retrieve_klant_paginates_full_response(self):
137+
data = MockAPIReadData()
138+
base_url = (
139+
f"{KLANTEN_ROOT}klanten?subjectNatuurlijkPersoon__inpBsn={data.user.bsn}"
140+
)
141+
with requests_mock.mock() as m:
142+
m.get(
143+
base_url,
144+
json=paginated_response([data.klant_bsn])
145+
| {"next": f"{base_url}&page=2"},
146+
)
147+
m.get(
148+
f"{base_url}&page=2",
149+
json=paginated_response([data.klant_kvk])
150+
| {"next": f"{base_url}&page=3"},
151+
)
152+
m.get(
153+
f"{base_url}&page=3",
154+
json=paginated_response([data.klant_vestiging]), # next=None
155+
)
156+
157+
# Paginates all responses that match the BSN
158+
klant = self.service.retrieve_klant(user_bsn=data.user.bsn)
159+
160+
self.assertEqual(
161+
klant,
162+
Klant(
163+
url="https://klanten.nl/api/v1/klant/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
164+
bronorganisatie="123456789",
165+
klantnummer="12345678",
166+
website_url="",
167+
voornaam="John",
168+
voorvoegsel_achternaam="van der",
169+
achternaam="Doe",
170+
telefoonnummer="0612345678",
171+
telefoonnummerAlternatief="",
172+
emailadres="[email protected]",
173+
toestemming_zaak_notificaties_alleen_digitaal=False,
174+
bedrijfsnaam="",
175+
),
176+
)
177+
178+
self.assertEqual(
179+
[rh.url for rh in m.request_history],
180+
[
181+
base_url,
182+
f"{base_url}&page=2",
183+
f"{base_url}&page=3",
184+
],
185+
)

0 commit comments

Comments
 (0)