Compare commits

..
2 Commits
Author SHA1 Message Date
notandClaude Opus 4.8 756e718ee2 fix(acl): set indicatiegebruiksrecht=false on the diploma document (refs #103)
CI / lint (pull_request) Successful in 1m22s
CI / build (pull_request) Successful in 1m3s
CI / unit (pull_request) Successful in 1m18s
CI / frontend (pull_request) Successful in 2m45s
CI / mutation (pull_request) Successful in 5m42s
CI / verify-stack (pull_request) Failing after 5m44s
Records 'no usage-rights restrictions' explicitly so OpenZaak allows the
related zaak to be closed on behandelaar approval, fixing the verify-stack
e2e regression introduced by S-10b diploma upload.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-21 13:31:44 +02:00
notandClaude Opus 4.8 53e9564f94 test(acl): diploma document sets indicatiegebruiksrecht so the zaak can close (refs #103)
The behandelaar approval closes the zaak via OpenZaak. A related
informatieobject with indicatieGebruiksrecht left null makes OpenZaak
reject the close (400 indicatiegebruiksrecht-unset), surfacing as a 500
and failing the registration e2e flow.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-21 13:31:44 +02:00
3 changed files with 12 additions and 2 deletions
@@ -99,7 +99,10 @@ public sealed class OpenZaakGateway(HttpClient http, OpenZaakOptions options) :
request.Inhoud.Length,
request.Vertrouwelijkheidaanduiding,
request.Formaat,
"definitief"),
"definitief",
// No usage-rights restrictions apply. Left null, OpenZaak rejects closing the related
// zaak with "indicatiegebruiksrecht-unset"; false records the deliberate "none" answer.
false),
"Creating the informatieobject", ct);
// 2. Relate it to the zaak (Zaken API — no CRS).
@@ -248,7 +251,8 @@ public sealed class OpenZaakGateway(HttpClient http, OpenZaakOptions options) :
[property: JsonPropertyName("bestandsomvang")] int Bestandsomvang,
[property: JsonPropertyName("vertrouwelijkheidaanduiding")] string Vertrouwelijkheidaanduiding,
[property: JsonPropertyName("formaat")] string Formaat,
[property: JsonPropertyName("status")] string Status);
[property: JsonPropertyName("status")] string Status,
[property: JsonPropertyName("indicatiegebruiksrecht")] bool Indicatiegebruiksrecht);
private sealed record ZaakInformatieobjectDto(
[property: JsonPropertyName("zaak")] string Zaak,
@@ -118,6 +118,9 @@ public sealed class OpenZaakGatewayIntegrationTests(OpenZaakFixture stack)
Assert.Equal("diploma.pdf", doc.GetProperty("bestandsnaam").GetString());
Assert.Equal(informatieobjecttype.ToString(), doc.GetProperty("informatieobjecttype").GetString());
Assert.Equal(content.Length, doc.GetProperty("bestandsomvang").GetInt32());
// indicatieGebruiksrecht is recorded as "no restrictions"; left null, OpenZaak would refuse to
// close the zaak this document is related to (the S-10b regression that broke the e2e flow).
Assert.False(doc.GetProperty("indicatiegebruiksrecht").GetBoolean());
// ...and it is related to the zaak (a zaakinformatieobject links the two).
var relations = await stack.GetJsonAsync(new Uri(stack.BaseUrl,
@@ -489,6 +489,9 @@ public class OpenZaakGatewayTests
Assert.Contains("\"formaat\":\"application/pdf\"", create.Body);
Assert.Contains("\"vertrouwelijkheidaanduiding\":\"openbaar\"", create.Body);
Assert.Contains("\"status\":\"definitief\"", create.Body);
// indicatieGebruiksrecht must be set explicitly (false = no usage restrictions); left null,
// OpenZaak refuses to close the zaak this document is related to ("indicatiegebruiksrecht-unset").
Assert.Contains("\"indicatiegebruiksrecht\":false", create.Body);
// The file content is base64-encoded into `inhoud`, with its byte length in `bestandsomvang`.
Assert.Contains($"\"inhoud\":\"{Convert.ToBase64String([10, 20, 30])}\"", create.Body);
Assert.Contains("\"bestandsomvang\":3", create.Body);