From 29b602b88d53eb806c20bd38792260a7ac481906 Mon Sep 17 00:00:00 2001 From: Ruben van der Linde Date: Wed, 21 Oct 2026 22:38:51 +0200 Subject: [PATCH] feat(example-sets): the Zuiddrecht cast has the Woo en informatie team The dossiq boards name the team Woo en informatie: Pieter works in it, Anouk Bakker leads it, and it is the team on the Lindelaan Woo case. The cast gains the group, Pieter and Thomas join it, and Anouk becomes its team leader. Assisted-by: ClaudeCode:claude-opus-5-5 --- lib/Settings/example-sets/zuiddrecht.json | 17 ++++++++++++----- .../changes/zuiddrecht-woo-team/proposal.md | 9 +++++++++ .../specs/example-sets/spec.md | 12 ++++++++++++ openspec/changes/zuiddrecht-woo-team/tasks.md | 2 ++ .../ExampleSet/ExampleSetCatalogueTest.php | 6 +++++- 5 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 openspec/changes/zuiddrecht-woo-team/proposal.md create mode 100644 openspec/changes/zuiddrecht-woo-team/specs/example-sets/spec.md create mode 100644 openspec/changes/zuiddrecht-woo-team/tasks.md diff --git a/lib/Settings/example-sets/zuiddrecht.json b/lib/Settings/example-sets/zuiddrecht.json index 51f67261bfb..27870aa7d2e 100644 --- a/lib/Settings/example-sets/zuiddrecht.json +++ b/lib/Settings/example-sets/zuiddrecht.json @@ -60,6 +60,11 @@ "gid": "zuiddrecht-juridische-zaken", "displayName": "Juridische zaken" }, + { + "key": "woo-en-informatie", + "gid": "zuiddrecht-woo-en-informatie", + "displayName": "Woo en informatie" + }, { "key": "communicatie", "gid": "zuiddrecht-communicatie", @@ -276,7 +281,8 @@ "department": "Juridische zaken", "groups": [ "medewerkers", - "juridische-zaken" + "juridische-zaken", + "woo-en-informatie" ], "function": "Woo-coordinator" }, @@ -289,12 +295,12 @@ "familyName": "Bakker", "email": "anouk.bakker@zuiddrecht.example", "role": "employee", - "department": "Juridische zaken", + "department": "Woo en informatie", "groups": [ "medewerkers", - "juridische-zaken" + "woo-en-informatie" ], - "function": "Juridisch adviseur Woo" + "function": "Teamleider" }, { "key": "marleen", @@ -324,7 +330,8 @@ "department": "Vergunningen", "groups": [ "medewerkers", - "vergunningen" + "vergunningen", + "woo-en-informatie" ], "function": "Behandelaar" }, diff --git a/openspec/changes/zuiddrecht-woo-team/proposal.md b/openspec/changes/zuiddrecht-woo-team/proposal.md new file mode 100644 index 00000000000..daa357bdaf2 --- /dev/null +++ b/openspec/changes/zuiddrecht-woo-team/proposal.md @@ -0,0 +1,9 @@ +## Why + +The dossiq boards name a team, Woo en informatie. Pieter Jansen works in it, Anouk Bakker leads it, and it is the team on the Lindelaan Woo case and in the share dialog of a saved view. The Zuiddrecht cast had no such group, and it listed Anouk as a legal adviser in Juridische zaken. + +## What Changes + +- The cast gains the group `woo-en-informatie` (`zuiddrecht-woo-en-informatie`, "Woo en informatie"). +- Pieter Jansen and Thomas Kuiper join that group. +- Anouk Bakker becomes the team leader of Woo en informatie. diff --git a/openspec/changes/zuiddrecht-woo-team/specs/example-sets/spec.md b/openspec/changes/zuiddrecht-woo-team/specs/example-sets/spec.md new file mode 100644 index 00000000000..f60b141acac --- /dev/null +++ b/openspec/changes/zuiddrecht-woo-team/specs/example-sets/spec.md @@ -0,0 +1,12 @@ +# example-sets Delta + +## ADDED Requirements + +### Requirement: The Zuiddrecht cast has the Woo en informatie team + +The Zuiddrecht cast SHALL hold the group `woo-en-informatie`, displayed as "Woo en informatie", with Pieter Jansen, Thomas Kuiper and Anouk Bakker as members. Anouk Bakker SHALL be its team leader. + +#### Scenario: Sharing a saved view with the team +- **GIVEN** the set is installed +- **WHEN** Pieter shares a saved view +- **THEN** the group "Woo en informatie" SHALL be offered, with three members diff --git a/openspec/changes/zuiddrecht-woo-team/tasks.md b/openspec/changes/zuiddrecht-woo-team/tasks.md new file mode 100644 index 00000000000..180be6e0510 --- /dev/null +++ b/openspec/changes/zuiddrecht-woo-team/tasks.md @@ -0,0 +1,2 @@ +- [x] T01 Cast group woo-en-informatie with Pieter, Thomas and Anouk; Anouk is its team leader +- [x] T02 PHPUnit: the shipped Zuiddrecht set names the team and its leader diff --git a/tests/Unit/Service/ExampleSet/ExampleSetCatalogueTest.php b/tests/Unit/Service/ExampleSet/ExampleSetCatalogueTest.php index 0f5386b3eb7..de73984b06e 100644 --- a/tests/Unit/Service/ExampleSet/ExampleSetCatalogueTest.php +++ b/tests/Unit/Service/ExampleSet/ExampleSetCatalogueTest.php @@ -112,7 +112,7 @@ public function testTheShippedZuiddrechtSetIsWhole(): void { // The handler the dossiq boards draw as "u", who owns a saved view. $pieter = $plan['cast']['people']['pieter']; $this->assertSame( - expected: ['pieter', 'Pieter Jansen', ['vergunningen']], + expected: ['pieter', 'Pieter Jansen', ['vergunningen', 'woo-en-informatie']], actual: [$pieter['uid'], $pieter['displayName'], array_values(array_diff($pieter['groups'], ['medewerkers']))] ); // The jeugdteam's regisseur of the jeugdwet example case. @@ -120,6 +120,10 @@ public function testTheShippedZuiddrechtSetIsWhole(): void { $this->assertSame(['brp' => ['mock' => true], 'kvk' => ['mock' => true]], $plan['requires']); $this->assertSame(['vergunningen'], array_values(array_diff($plan['cast']['people']['marleen']['groups'], ['medewerkers']))); $this->assertSame('Teamleider', $plan['cast']['people']['marleen']['function']); + // The Woo team the dossiq boards name, led by Anouk Bakker. + $woo = array_keys(array_filter($plan['cast']['people'], static fn (array $p): bool => in_array('woo-en-informatie', ($p['groups'] ?? []), true))); + $this->assertSame(expected: ['thomas', 'anouk', 'pieter'], actual: $woo); + $this->assertSame(expected: ['Teamleider', 'Woo en informatie'], actual: [$plan['cast']['people']['anouk']['function'], $plan['cast']['people']['anouk']['department']]); $this->assertNotContains('admin', array_column($plan['cast']['groups'], 'gid')); $this->assertNotContains('noor', array_keys(array_filter($plan['cast']['people'], static fn (array $p): bool => in_array('admin', ($p['groups'] ?? []), true)))); $apps = json_decode((string) file_get_contents(dirname(__DIR__, 4).'/lib/Settings/example-sets/zuiddrecht.json'), true)['apps'];