ADR proposal: provisioning strategy for the ACL OpenZaak integration test #53
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Decision to record
S-04a (#46) requires an integration test that exercises
OpenZaakGatewayagainst real OpenZaak (real JWT auth + the realPOST /zaken/api/v1/zakencontract), which the stubbed-HttpMessageHandlerunit test cannot cover.Two decisions need an ADR before coding:
New dependency: Testcontainers (.NET). There is no OpenZaak Testcontainers module, so we use the generic container builder to bring up the graph.
docker/compose orchestration + readiness polling glue in the test host.Provisioning approach: full Testcontainers graph (PostGIS + Redis + OpenZaak + setup_configuration JWT client) over targeting the already-running
make stack-upcompose stack. Chosen for hermeticity and self-containment (#46's open question).Publish-in-arrange. OpenZaak's Zaken API rejects a zaak against a concept zaaktype. The S-01 BIG seed (ADR-0002) intentionally leaves
BIG-REGISTRATIEas a concept. The integration test therefore needs an opt-in path (extendingseed_catalogus.py) that adds the minimal statustype/resultaattype/roltype and publishes the zaaktype. Default seed behaviour stays concept-only.ADR file (
docs/architecture/adr-0006-*.md) lands in the PR that implements #46.Refs #46.
ADR proposal: Testcontainers for the ACL OpenZaak integration testto ADR proposal: provisioning strategy for the ACL OpenZaak integration testDecision updated after investigation.
Originally proposed bringing the OpenZaak graph up via Testcontainers. Two findings reversed that:
setup_configurationone-shot + API) in C#, duplicatinginfra/openzaak/docker-compose.ymland rotting with it (rubs against CLAUDE.md §13).selectielijst.openzaak.nl(OpenZaak fetches it to validate the resultaattype). The self-containment that motivated Testcontainers is already lost.Revised decision: the integration test targets the running compose stack (
make openzaak-up+ an opt-inOZ_PUBLISH=1seed). No new NuGet dependency. CI brings the stack up beforemake integration.This is recorded in ADR-0006 (lands in the #46 PR). Refs #46.