Skip to content

Commit 57f2c55

Browse files
authored
retrofit(coverage): spec-coverage to zero uncovered methods (#301)
* retrofit(coverage): reverse-spec + annotate backend to 0 uncovered Covers all 287 backend methods flagged by csc.py spec-coverage report: - 14 reverse-spec capabilities (cronjob-context, aangeboden-gebruik-api, contactpersonen-api, dashboard-views-api, repair-init, settings-admin-controller, settings-service, archimate-export/import, contactpersoon-sync, organization-sync, softwarecatalogue-orchestration, email-delivery, sc-handlers) + 1 extend (progress-tracking#REQ-006) - 286 docblock @SPEC annotations inserted (script-assisted, comment-only, 0 code-line deletions, all php -l clean) - 2 inline DataDownloadResponse render() passthroughs marked @SPEC exclude Re: #294 * retrofit(coverage): reverse-spec + annotate frontend to 0 uncovered Closes spec coverage to zero uncovered methods for the frontend layer. Annotates 575 Vue/JS methods with @SPEC references and adds 5 reverse-spec openspec changes covering the frontend capabilities: - fe-object-modals: object lifecycle + bulk-operation modals (8 REQ) - fe-organizations: org & contact-person UI (6 REQ) - fe-settings-ui: admin settings sections (10 REQ) - fe-shell-navigation: dashboard, sidebars, reusable components (4 REQ) - fe-stores: Pinia stores, object-ops plugin, theme, heartbeat (7 REQ) Genuine framework plumbing (SPA shell hooks, Pinia plugin installer/$patch passthrough, DI getters, i18n wrapper, class constructor) marked @SPEC exclude with reasons. Comment-only additive changes; all JS/Vue script blocks parse.
1 parent 9ced404 commit 57f2c55

148 files changed

Lines changed: 3456 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

lib/BackgroundJob/CronjobContextTrait.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ trait CronjobContextTrait
7373
* @param string $jobId The identifier of the cronjob (e.g., 'organization_contact_sync')
7474
*
7575
* @return bool True if context was successfully set, false otherwise
76+
* @spec openspec/changes/retrofit-2026-05-26-cronjob-context/tasks.md#task-1
7677
*/
7778
protected function setCronjobContext(string $jobId): bool
7879
{
@@ -183,6 +184,7 @@ protected function setCronjobContext(string $jobId): bool
183184
* @param string $jobId The identifier of the cronjob
184185
*
185186
* @return void
187+
* @spec openspec/changes/retrofit-2026-05-26-cronjob-context/tasks.md#task-1
186188
*/
187189
protected function clearCronjobContext(string $jobId): void
188190
{

lib/BackgroundJob/OrganizationContactSyncJob.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ public function __construct(
7878
* @return void
7979
*
8080
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
81+
* @spec openspec/changes/retrofit-2026-05-26-cronjob-context/tasks.md#task-2
8182
*/
8283
protected function run($argument): void
8384
{

lib/Controller/AangebodenGebruikController.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ public function __construct(
8585
* @NoCSRFRequired
8686
* @PublicPage
8787
* @PublicPage
88+
* @spec openspec/changes/retrofit-2026-05-26-aangeboden-gebruik-api/tasks.md#task-1
8889
*/
8990
public function getGebruiksWhereAfnemer(): JSONResponse
9091
{
@@ -160,6 +161,7 @@ public function getGebruiksWhereAfnemer(): JSONResponse
160161
* @NoAdminRequired
161162
* @NoCSRFRequired
162163
* @PublicPage
164+
* @spec openspec/changes/retrofit-2026-05-26-aangeboden-gebruik-api/tasks.md#task-1
163165
*/
164166
public function getKoppelingenGebruikByUuid(string $uuid): JSONResponse
165167
{
@@ -250,6 +252,7 @@ public function getKoppelingenGebruikByUuid(string $uuid): JSONResponse
250252
* @NoAdminRequired
251253
* @NoCSRFRequired
252254
* @PublicPage
255+
* @spec openspec/changes/retrofit-2026-05-26-aangeboden-gebruik-api/tasks.md#task-1
253256
*/
254257
public function getAllGebruiksForAmbtenaar(): JSONResponse
255258
{
@@ -357,6 +360,7 @@ public function getAllGebruiksForAmbtenaar(): JSONResponse
357360
* @PublicPage
358361
*
359362
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
363+
* @spec openspec/changes/retrofit-2026-05-26-aangeboden-gebruik-api/tasks.md#task-1
360364
*/
361365
public function getSingleGebruikForAmbtenaar(string $gebruikId): JSONResponse
362366
{
@@ -529,6 +533,7 @@ private function isUserInGroup(string $groupName): bool
529533
* @NoCSRFRequired
530534
* @PublicPage
531535
* @PublicPage
536+
* @spec openspec/changes/retrofit-2026-05-26-aangeboden-gebruik-api/tasks.md#task-1
532537
*/
533538
public function getGebruiksWhereDeelnemers(): JSONResponse
534539
{
@@ -607,6 +612,7 @@ public function getGebruiksWhereDeelnemers(): JSONResponse
607612
* @NoCSRFRequired
608613
* @PublicPage
609614
* @PublicPage
615+
* @spec openspec/changes/retrofit-2026-05-26-aangeboden-gebruik-api/tasks.md#task-2
610616
*/
611617
public function setGebruikSelfToActiveOrg(string $gebruikId): JSONResponse
612618
{
@@ -714,6 +720,7 @@ function ($key) {
714720
* @NoCSRFRequired
715721
* @PublicPage
716722
* @PublicPage
723+
* @spec openspec/changes/retrofit-2026-05-26-aangeboden-gebruik-api/tasks.md#task-2
717724
*/
718725
public function deleteGebruikAsAfnemer(string $gebruikId): JSONResponse
719726
{
@@ -814,6 +821,7 @@ function ($key) {
814821
* @PublicPage
815822
*
816823
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
824+
* @spec openspec/changes/retrofit-2026-05-26-aangeboden-gebruik-api/tasks.md#task-3
817825
*/
818826
public function getApiDocumentation(): JSONResponse
819827
{

lib/Controller/ContactpersonenController.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ public function __construct(
169169
*
170170
* @NoAdminRequired
171171
* @NoCSRFRequired
172+
* @spec openspec/changes/retrofit-2026-05-26-contactpersonen-api/tasks.md#task-1
172173
*/
173174
public function getContactpersonen(string $organisationId): JSONResponse
174175
{
@@ -264,6 +265,7 @@ function ($group) {
264265
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
265266
* @SuppressWarnings(PHPMD.NPathComplexity)
266267
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
268+
* @spec openspec/changes/retrofit-2026-05-26-contactpersonen-api/tasks.md#task-2
267269
*/
268270
public function convertToUser(string $contactpersoonId): JSONResponse
269271
{
@@ -489,6 +491,7 @@ public function convertToUser(string $contactpersoonId): JSONResponse
489491
*
490492
* @NoAdminRequired
491493
* @NoCSRFRequired
494+
* @spec openspec/changes/retrofit-2026-05-26-contactpersonen-api/tasks.md#task-3
492495
*/
493496
public function changePassword(string $username, string $newPassword): JSONResponse
494497
{
@@ -577,6 +580,7 @@ public function changePassword(string $username, string $newPassword): JSONRespo
577580
*
578581
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
579582
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
583+
* @spec openspec/changes/retrofit-2026-05-26-contactpersonen-api/tasks.md#task-3
580584
*/
581585
public function updateUserGroups(string $username, array $groups=[]): JSONResponse
582586
{
@@ -700,6 +704,7 @@ function ($group) {
700704
*
701705
* @NoAdminRequired
702706
* @NoCSRFRequired
707+
* @spec openspec/changes/retrofit-2026-05-26-contactpersonen-api/tasks.md#task-1
703708
*/
704709
public function getContactPersonsWithUserDetailsForOrganization(string $organizationUuid): JSONResponse
705710
{
@@ -791,6 +796,7 @@ public function getContactPersonsWithUserDetailsForOrganization(string $organiza
791796
* @NoCSRFRequired
792797
*
793798
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
799+
* @spec openspec/changes/retrofit-2026-05-26-contactpersonen-api/tasks.md#task-1
794800
*/
795801
public function getUserInfo(string $contactpersoonId): JSONResponse
796802
{
@@ -917,6 +923,7 @@ public function getUserInfo(string $contactpersoonId): JSONResponse
917923
*
918924
* @NoAdminRequired
919925
* @NoCSRFRequired
926+
* @spec openspec/changes/retrofit-2026-05-26-contactpersonen-api/tasks.md#task-3
920927
*/
921928
public function getAvailableGroups(): JSONResponse
922929
{
@@ -981,6 +988,7 @@ public function getAvailableGroups(): JSONResponse
981988
*
982989
* @NoAdminRequired
983990
* @NoCSRFRequired
991+
* @spec openspec/changes/retrofit-2026-05-26-contactpersonen-api/tasks.md#task-3
984992
*/
985993
public function disableUser(string $contactpersoonId): JSONResponse
986994
{
@@ -1028,6 +1036,7 @@ public function disableUser(string $contactpersoonId): JSONResponse
10281036
*
10291037
* @NoAdminRequired
10301038
* @NoCSRFRequired
1039+
* @spec openspec/changes/retrofit-2026-05-26-contactpersonen-api/tasks.md#task-3
10311040
*/
10321041
public function enableUser(string $contactpersoonId): JSONResponse
10331042
{
@@ -1073,6 +1082,7 @@ public function enableUser(string $contactpersoonId): JSONResponse
10731082
*
10741083
* @NoAdminRequired
10751084
* @NoCSRFRequired
1085+
* @spec openspec/changes/retrofit-2026-05-26-contactpersonen-api/tasks.md#task-1
10761086
*/
10771087
public function testBulkUserInfo(): JSONResponse
10781088
{
@@ -1133,6 +1143,7 @@ public function testBulkUserInfo(): JSONResponse
11331143
*
11341144
* @NoAdminRequired
11351145
* @NoCSRFRequired
1146+
* @spec openspec/changes/retrofit-2026-05-26-contactpersonen-api/tasks.md#task-1
11361147
*/
11371148
public function getBulkUserInfo(): JSONResponse
11381149
{
@@ -1198,6 +1209,7 @@ public function getBulkUserInfo(): JSONResponse
11981209
* @NoCSRFRequired
11991210
*
12001211
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
1212+
* @spec openspec/changes/retrofit-2026-05-26-contactpersonen-api/tasks.md#task-1
12011213
*/
12021214
public function getMe(): JSONResponse
12031215
{

lib/Controller/DashboardController.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public function __construct($appName, IRequest $request)
4343
* @NoCSRFRequired
4444
*
4545
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
46+
* @spec openspec/changes/retrofit-2026-05-26-dashboard-views-api/tasks.md#task-1
4647
*/
4748
public function page(?string $getParameter): TemplateResponse
4849
{
@@ -75,6 +76,7 @@ public function page(?string $getParameter): TemplateResponse
7576
* @NoCSRFRequired
7677
*
7778
* @return JSONResponse The JSON response with empty results
79+
* @spec openspec/changes/retrofit-2026-05-26-dashboard-views-api/tasks.md#task-1
7880
*/
7981
public function index(): JSONResponse
8082
{

lib/Controller/PreferencesController.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ public function __construct(
6262
*
6363
* @NoAdminRequired
6464
* @NoCSRFRequired
65+
* @spec openspec/changes/retrofit-2026-05-26-dashboard-views-api/tasks.md#task-3
6566
*/
6667
public function getPreference(string $key): JSONResponse
6768
{
@@ -101,6 +102,7 @@ public function getPreference(string $key): JSONResponse
101102
*
102103
* @NoAdminRequired
103104
* @NoCSRFRequired
105+
* @spec openspec/changes/retrofit-2026-05-26-dashboard-views-api/tasks.md#task-3
104106
*/
105107
public function setPreference(string $key, string $value=''): JSONResponse
106108
{

0 commit comments

Comments
 (0)