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'];