From 3b7cd81fc8808472910ceb570a47a6b21271c968 Mon Sep 17 00:00:00 2001 From: Ruben van der Linde Date: Tue, 26 May 2026 06:42:08 +0200 Subject: [PATCH 1/3] chore: remove stale generated test-results --- test-results/README.md | 247 -- test-results/api/issues/105.md | 23 - test-results/api/issues/141.md | 26 - test-results/api/issues/144.md | 31 - test-results/api/issues/148.md | 30 - test-results/api/issues/15.md | 22 - test-results/api/issues/155.md | 23 - test-results/api/issues/160.md | 22 - test-results/api/issues/169.md | 23 - test-results/api/issues/186.md | 22 - test-results/api/issues/187.md | 20 - test-results/api/issues/208.md | 19 - test-results/api/issues/225.md | 22 - test-results/api/issues/23.md | 25 - test-results/api/issues/231.md | 21 - test-results/api/issues/266.md | 23 - test-results/api/issues/278.md | 21 - test-results/api/issues/280.md | 22 - test-results/api/issues/286.md | 21 - test-results/api/issues/300.md | 20 - test-results/api/issues/302.md | 20 - test-results/api/issues/306.md | 20 - test-results/api/issues/307.md | 20 - test-results/api/issues/308.md | 20 - test-results/api/issues/312.md | 24 - test-results/api/issues/314.md | 23 - test-results/api/issues/315.md | 27 - test-results/api/issues/316.md | 19 - test-results/api/issues/317.md | 19 - test-results/api/issues/319.md | 19 - test-results/api/issues/320.md | 21 - test-results/api/issues/323.md | 19 - test-results/api/issues/324.md | 21 - test-results/api/issues/325.md | 19 - test-results/api/issues/332.md | 20 - test-results/api/issues/333.md | 22 - test-results/api/issues/336.md | 19 - test-results/api/issues/339.md | 21 - test-results/api/issues/340.md | 21 - test-results/api/issues/343.md | 23 - test-results/api/issues/344.md | 22 - test-results/api/issues/345.md | 22 - test-results/api/issues/346.md | 25 - test-results/api/issues/347.md | 20 - test-results/api/issues/348.md | 21 - test-results/api/issues/349.md | 22 - test-results/api/issues/352.md | 22 - test-results/api/issues/353.md | 22 - test-results/api/issues/354.md | 26 - test-results/api/issues/355.md | 23 - test-results/api/issues/357.md | 21 - test-results/api/issues/358.md | 20 - test-results/api/issues/359.md | 20 - test-results/api/issues/360.md | 20 - test-results/api/issues/363.md | 21 - test-results/api/issues/364.md | 21 - test-results/api/issues/365.md | 23 - test-results/api/issues/366.md | 21 - test-results/api/issues/367.md | 20 - test-results/api/issues/368.md | 22 - test-results/api/issues/369.md | 21 - test-results/api/issues/370.md | 22 - test-results/api/issues/371.md | 20 - test-results/api/issues/373.md | 21 - test-results/api/issues/374.md | 20 - test-results/api/issues/375.md | 21 - test-results/api/issues/377.md | 20 - test-results/api/issues/378.md | 21 - test-results/api/issues/379.md | 22 - test-results/api/issues/380.md | 21 - test-results/api/issues/381.md | 21 - test-results/api/issues/382.md | 20 - test-results/api/issues/383.md | 20 - test-results/api/issues/384.md | 20 - test-results/api/issues/385.md | 20 - test-results/api/issues/391.md | 22 - test-results/api/issues/392.md | 23 - test-results/api/issues/393.md | 24 - test-results/api/issues/394.md | 25 - test-results/api/issues/396.md | 22 - test-results/api/issues/398.md | 24 - test-results/api/issues/399.md | 21 - test-results/api/issues/400.md | 23 - test-results/api/issues/401.md | 21 - test-results/api/issues/402.md | 23 - test-results/api/issues/403.md | 20 - test-results/api/issues/405.md | 20 - test-results/api/issues/406.md | 21 - test-results/api/issues/407.md | 21 - test-results/api/issues/409.md | 20 - test-results/api/issues/411.md | 22 - test-results/api/issues/413.md | 21 - test-results/api/issues/414.md | 20 - test-results/api/issues/417.md | 20 - test-results/api/issues/418.md | 22 - test-results/api/issues/419.md | 20 - test-results/api/issues/420.md | 20 - test-results/api/issues/430.md | 20 - test-results/api/issues/431.md | 20 - test-results/api/issues/432.md | 21 - test-results/api/issues/433.md | 21 - test-results/api/issues/434.md | 21 - test-results/api/issues/435.md | 24 - test-results/api/issues/436.md | 23 - test-results/api/issues/437.md | 23 - test-results/api/issues/438.md | 21 - test-results/api/issues/439.md | 23 - test-results/api/issues/440.md | 23 - test-results/api/issues/441.md | 20 - test-results/api/issues/442.md | 21 - test-results/api/issues/443.md | 20 - test-results/api/issues/447.md | 21 - test-results/api/issues/450.md | 20 - test-results/api/issues/451.md | 21 - test-results/api/issues/452.md | 21 - test-results/api/issues/453.md | 22 - test-results/api/issues/454.md | 22 - test-results/api/issues/455.md | 23 - test-results/api/issues/57.md | 20 - test-results/api/issues/6.md | 25 - test-results/api/issues/65.md | 30 - test-results/api/issues/73.md | 24 - test-results/api/issues/85.md | 27 - test-results/api/results-raw.txt | 2049 ----------------- test-results/api/results.md | 87 - .../160-poster-betrouwbaarheid-loaded.jpeg | Bin 46809 -> 0 bytes .../results-authenticated.md | 189 -- .../architectuur-expert/retest-148.md | 49 - .../architectuur-expert/retest-critical.md | 64 - test-results/bezoeker/01-search-page.jpeg | Bin 199154 -> 0 bytes .../02-app-detail-3d-digital-twin.jpeg | Bin 203780 -> 0 bytes test-results/bezoeker/03-dienst-detail.jpeg | Bin 89947 -> 0 bytes test-results/bezoeker/04-concept-visible.jpeg | Bin 130319 -> 0 bytes test-results/bezoeker/results-public.md | 282 --- test-results/bezoeker/retest-455.md | 52 - test-results/bezoeker/retest-critical.md | 36 - .../05-search-filters-panel.jpeg | Bin 39343 -> 0 bytes .../06-glossary-admin.jpeg | Bin 53530 -> 0 bytes .../07-cms-pages-admin.jpeg | Bin 49997 -> 0 bytes .../07-pages-snapshot.md | 391 ---- .../results-authenticated.md | 337 --- .../gemeente/results-authenticated.md | 419 ---- test-results/gemeente/retest-critical.md | 42 - test-results/issue-responses.md | 44 - .../leverancier/results-authenticated.md | 297 --- .../03-softwarecatalog-loaded.jpeg | Bin 31875 -> 0 bytes .../samenwerking/04-dashboard-stats.jpeg | Bin 32247 -> 0 bytes .../05-test-samenwerking-search.jpeg | Bin 34795 -> 0 bytes .../06-opencatalogi-dashboard.jpeg | Bin 21235 -> 0 bytes .../samenwerking/r4-01-dashboard-login.jpeg | Bin 33364 -> 0 bytes .../samenwerking/r4-01b-dashboard-full.jpeg | Bin 38223 -> 0 bytes .../r4-02-default-org-wizards.jpeg | Bin 44095 -> 0 bytes .../samenwerking/r4-02-koppelingen-page.jpeg | Bin 43313 -> 0 bytes ...est-samenwerking-wizards-after-switch.jpeg | Bin 43947 -> 0 bytes .../r4-04-koppeling-wizard-no-apps.jpeg | Bin 60813 -> 0 bytes .../samenwerking/results-authenticated.md | 203 -- .../security-officer/results-authenticated.md | 265 --- .../security-officer/retest-395-455.md | 65 - 158 files changed, 7767 deletions(-) delete mode 100644 test-results/README.md delete mode 100644 test-results/api/issues/105.md delete mode 100644 test-results/api/issues/141.md delete mode 100644 test-results/api/issues/144.md delete mode 100644 test-results/api/issues/148.md delete mode 100644 test-results/api/issues/15.md delete mode 100644 test-results/api/issues/155.md delete mode 100644 test-results/api/issues/160.md delete mode 100644 test-results/api/issues/169.md delete mode 100644 test-results/api/issues/186.md delete mode 100644 test-results/api/issues/187.md delete mode 100644 test-results/api/issues/208.md delete mode 100644 test-results/api/issues/225.md delete mode 100644 test-results/api/issues/23.md delete mode 100644 test-results/api/issues/231.md delete mode 100644 test-results/api/issues/266.md delete mode 100644 test-results/api/issues/278.md delete mode 100644 test-results/api/issues/280.md delete mode 100644 test-results/api/issues/286.md delete mode 100644 test-results/api/issues/300.md delete mode 100644 test-results/api/issues/302.md delete mode 100644 test-results/api/issues/306.md delete mode 100644 test-results/api/issues/307.md delete mode 100644 test-results/api/issues/308.md delete mode 100644 test-results/api/issues/312.md delete mode 100644 test-results/api/issues/314.md delete mode 100644 test-results/api/issues/315.md delete mode 100644 test-results/api/issues/316.md delete mode 100644 test-results/api/issues/317.md delete mode 100644 test-results/api/issues/319.md delete mode 100644 test-results/api/issues/320.md delete mode 100644 test-results/api/issues/323.md delete mode 100644 test-results/api/issues/324.md delete mode 100644 test-results/api/issues/325.md delete mode 100644 test-results/api/issues/332.md delete mode 100644 test-results/api/issues/333.md delete mode 100644 test-results/api/issues/336.md delete mode 100644 test-results/api/issues/339.md delete mode 100644 test-results/api/issues/340.md delete mode 100644 test-results/api/issues/343.md delete mode 100644 test-results/api/issues/344.md delete mode 100644 test-results/api/issues/345.md delete mode 100644 test-results/api/issues/346.md delete mode 100644 test-results/api/issues/347.md delete mode 100644 test-results/api/issues/348.md delete mode 100644 test-results/api/issues/349.md delete mode 100644 test-results/api/issues/352.md delete mode 100644 test-results/api/issues/353.md delete mode 100644 test-results/api/issues/354.md delete mode 100644 test-results/api/issues/355.md delete mode 100644 test-results/api/issues/357.md delete mode 100644 test-results/api/issues/358.md delete mode 100644 test-results/api/issues/359.md delete mode 100644 test-results/api/issues/360.md delete mode 100644 test-results/api/issues/363.md delete mode 100644 test-results/api/issues/364.md delete mode 100644 test-results/api/issues/365.md delete mode 100644 test-results/api/issues/366.md delete mode 100644 test-results/api/issues/367.md delete mode 100644 test-results/api/issues/368.md delete mode 100644 test-results/api/issues/369.md delete mode 100644 test-results/api/issues/370.md delete mode 100644 test-results/api/issues/371.md delete mode 100644 test-results/api/issues/373.md delete mode 100644 test-results/api/issues/374.md delete mode 100644 test-results/api/issues/375.md delete mode 100644 test-results/api/issues/377.md delete mode 100644 test-results/api/issues/378.md delete mode 100644 test-results/api/issues/379.md delete mode 100644 test-results/api/issues/380.md delete mode 100644 test-results/api/issues/381.md delete mode 100644 test-results/api/issues/382.md delete mode 100644 test-results/api/issues/383.md delete mode 100644 test-results/api/issues/384.md delete mode 100644 test-results/api/issues/385.md delete mode 100644 test-results/api/issues/391.md delete mode 100644 test-results/api/issues/392.md delete mode 100644 test-results/api/issues/393.md delete mode 100644 test-results/api/issues/394.md delete mode 100644 test-results/api/issues/396.md delete mode 100644 test-results/api/issues/398.md delete mode 100644 test-results/api/issues/399.md delete mode 100644 test-results/api/issues/400.md delete mode 100644 test-results/api/issues/401.md delete mode 100644 test-results/api/issues/402.md delete mode 100644 test-results/api/issues/403.md delete mode 100644 test-results/api/issues/405.md delete mode 100644 test-results/api/issues/406.md delete mode 100644 test-results/api/issues/407.md delete mode 100644 test-results/api/issues/409.md delete mode 100644 test-results/api/issues/411.md delete mode 100644 test-results/api/issues/413.md delete mode 100644 test-results/api/issues/414.md delete mode 100644 test-results/api/issues/417.md delete mode 100644 test-results/api/issues/418.md delete mode 100644 test-results/api/issues/419.md delete mode 100644 test-results/api/issues/420.md delete mode 100644 test-results/api/issues/430.md delete mode 100644 test-results/api/issues/431.md delete mode 100644 test-results/api/issues/432.md delete mode 100644 test-results/api/issues/433.md delete mode 100644 test-results/api/issues/434.md delete mode 100644 test-results/api/issues/435.md delete mode 100644 test-results/api/issues/436.md delete mode 100644 test-results/api/issues/437.md delete mode 100644 test-results/api/issues/438.md delete mode 100644 test-results/api/issues/439.md delete mode 100644 test-results/api/issues/440.md delete mode 100644 test-results/api/issues/441.md delete mode 100644 test-results/api/issues/442.md delete mode 100644 test-results/api/issues/443.md delete mode 100644 test-results/api/issues/447.md delete mode 100644 test-results/api/issues/450.md delete mode 100644 test-results/api/issues/451.md delete mode 100644 test-results/api/issues/452.md delete mode 100644 test-results/api/issues/453.md delete mode 100644 test-results/api/issues/454.md delete mode 100644 test-results/api/issues/455.md delete mode 100644 test-results/api/issues/57.md delete mode 100644 test-results/api/issues/6.md delete mode 100644 test-results/api/issues/65.md delete mode 100644 test-results/api/issues/73.md delete mode 100644 test-results/api/issues/85.md delete mode 100644 test-results/api/results-raw.txt delete mode 100644 test-results/api/results.md delete mode 100644 test-results/architectuur-expert/160-poster-betrouwbaarheid-loaded.jpeg delete mode 100644 test-results/architectuur-expert/results-authenticated.md delete mode 100644 test-results/architectuur-expert/retest-148.md delete mode 100644 test-results/architectuur-expert/retest-critical.md delete mode 100644 test-results/bezoeker/01-search-page.jpeg delete mode 100644 test-results/bezoeker/02-app-detail-3d-digital-twin.jpeg delete mode 100644 test-results/bezoeker/03-dienst-detail.jpeg delete mode 100644 test-results/bezoeker/04-concept-visible.jpeg delete mode 100644 test-results/bezoeker/results-public.md delete mode 100644 test-results/bezoeker/retest-455.md delete mode 100644 test-results/bezoeker/retest-critical.md delete mode 100644 test-results/functioneel-beheerder/05-search-filters-panel.jpeg delete mode 100644 test-results/functioneel-beheerder/06-glossary-admin.jpeg delete mode 100644 test-results/functioneel-beheerder/07-cms-pages-admin.jpeg delete mode 100644 test-results/functioneel-beheerder/07-pages-snapshot.md delete mode 100644 test-results/functioneel-beheerder/results-authenticated.md delete mode 100644 test-results/gemeente/results-authenticated.md delete mode 100644 test-results/gemeente/retest-critical.md delete mode 100644 test-results/issue-responses.md delete mode 100644 test-results/leverancier/results-authenticated.md delete mode 100644 test-results/samenwerking/03-softwarecatalog-loaded.jpeg delete mode 100644 test-results/samenwerking/04-dashboard-stats.jpeg delete mode 100644 test-results/samenwerking/05-test-samenwerking-search.jpeg delete mode 100644 test-results/samenwerking/06-opencatalogi-dashboard.jpeg delete mode 100644 test-results/samenwerking/r4-01-dashboard-login.jpeg delete mode 100644 test-results/samenwerking/r4-01b-dashboard-full.jpeg delete mode 100644 test-results/samenwerking/r4-02-default-org-wizards.jpeg delete mode 100644 test-results/samenwerking/r4-02-koppelingen-page.jpeg delete mode 100644 test-results/samenwerking/r4-03-test-samenwerking-wizards-after-switch.jpeg delete mode 100644 test-results/samenwerking/r4-04-koppeling-wizard-no-apps.jpeg delete mode 100644 test-results/samenwerking/results-authenticated.md delete mode 100644 test-results/security-officer/results-authenticated.md delete mode 100644 test-results/security-officer/retest-395-455.md diff --git a/test-results/README.md b/test-results/README.md deleted file mode 100644 index 1dd6a589..00000000 --- a/test-results/README.md +++ /dev/null @@ -1,247 +0,0 @@ -# GEMMA Softwarecatalogus — Test Results Summary - -**Date:** 2026-03-19 -**Environment:** http://localhost:3000 (Frontend), http://localhost:8080 (Backend) -**Method:** Combined API tests (Newman) + Browser tests (7 persona agents) - ---- - -## Overall Results - -| Status | Count | Percentage | -|--------|-------|------------| -| **PASS** | 33 | 39% | -| **PARTIAL** | 27 | 32% | -| **FAIL** | 7 | 8% | -| **CANNOT_TEST** | 18 | 21% | -| **Total tested** | 85 | — | - -## API Test Results -- 454 assertions executed, 417 passed (91.9%) -- 334 requests, 28s duration, avg 65ms response time -- 25 of 37 failures are systemic (OpenCatalogi publications API returns HTTP 500) -- Core API (folders 00-10): 12 failures across 7 issues - -## FAIL Issues (Requires Attention) - -| Issue | Title | Severity | Agent(s) | Summary | -|-------|-------|----------|----------|---------| -| #395 | Menu linkerkant verdwijnt | HIGH | Gemeente, Security | Left navigation menu completely absent on all beheer pages. Console: "Beheer menu (position 7) not found or has no children". Affects all authenticated personas. | -| #455 | Koppelingen/contactpersonen tabs publiekelijk niet getoond | HIGH | Bezoeker, Security | Koppelingen and Contactpersonen tabs missing from public AND authenticated detail pages. Backend `/uses` and `/used` endpoints return HTTP 500. | -| #349 | UUID's onder standaarden filter | HIGH | Gemeente | Standaardversies on search result cards show raw UUIDs. Name resolution returns 404 for standard version references. | -| #377 | Tabel toont diensten niet | MEDIUM | Leverancier | Diensten column shows "-" for all rows in beheer table, despite applications having linked diensten. | -| #400 | Koppeling opslaan geeft foutmelding | MEDIUM | API | API tests: koppeling visibility in list, re-save, and data persistence all fail (3 assertions). | -| #155 | Definities via interactieve optie (Begrippenlijst) | MEDIUM | API, Func. Beheerder | All 5 Newman glossary assertions fail (endpoint empty/not returning data). API returns 6 terms but interactive UI untestable. | -| #332 | Voorpagina inrichten | MEDIUM | API, Func. Beheerder | Authenticated search endpoint assertion fails in API tests. Homepage loads but CMS editing untestable. | - -## PARTIAL Issues - -| Issue | Title | Agent(s) | Summary | -|-------|-------|----------|---------| -| #144 | Overzicht organisaties met zoek- en filteropties | Gemeente, Leverancier | Filters present and working. Some koppeling card names show UUIDs instead of readable names. | -| #278 | Filterteksten aanpassen | Gemeente, Bezoeker | Filter labels updated correctly (Type, Licentievorm, etc.). Wizard consistency and VNG documentation untested. | -| #340 | Bevindingen tussenoplevering Zoeken | Gemeente | Most criteria met (sorting, Type filter, dates on cards). Diensttype filter and active filter indicator untested. | -| #187 | Tekstvoorstellen (remaining text changes) | Leverancier, Func. Beheerder | Dashboard text correct. Many wizard/dialog texts untestable due to org fetch errors. | -| #57 | Pakketten opvoeren voor samenwerkingsverband | Samenwerking | 5/6 criteria pass. Login, dashboard, wizards all work. Member municipality delegation feature not implemented. | -| #186 | Koppelingen | Samenwerking | Detail pages render. External services resolve. Module name resolution fails causing UUID-only titles. | -| #85 | Publieke API toegang tot aanbodinformatie | Security, Func. Beheerder | Public API returns data correctly. OAS documentation endpoint returns HTTP 500. | -| #183 | Wachtwoord vergeten optie | Security | UI flow works (button, form, navigation). Email delivery cannot be tested (SMTP disabled). | -| #148 | GEMMA-architectuur opvraagbaar met API | Architectuur, Func. Beheerder | API data correct (4,353 elements, 6,049 relations, 248 views). OAS regression to 500. "Gemma downloaden" button disappeared. Model-id filter non-functional. | -| #92 | Webstatistiekenpakket (Piwik Pro) | Func. Beheerder | Piwik Pro script shell present but not configured (empty srcUrl, dataLayerName, id). SiteImprove removed. | -| #169 | Rest issues Organisatie en Configuratie | Func. Beheerder | Organisation activation works via API. Frontend org display untestable due to org fetch errors. | -| #141 | Organisaties samenvoegen (Merge) | Func. Beheerder | Merge test org created/deleted via API. Merge UI dialog in backend not tested. | -| #15 | Data exporteren | Func. Beheerder, Gemeente | CSV and Excel export work via API. Includes human-readable `_columnName` columns. Frontend export button untestable. | -| #316 | Dienst toevoegen: Stap 1 | Gemeente | Uses "publiceren" flow instead of "toevoegen" flow. Text mismatch with acceptance criteria. | -| #317 | Dienst toevoegen: Stap 2 | Gemeente | Different flow than expected. Shows dienst detail fields instead of gebruiksinformatie. | -| #318 | Dienst toevoegen: Stap 3 | Gemeente | Review step present. Text partially matches acceptance criteria. | -| #319 | Koppeling toevoegen: Stap 1 | Gemeente | Uses "publiceren" flow. Title and section header text mismatch. | -| #320 | Koppeling toevoegen: Stap 2 | Gemeente | Status and startdatum fields present. Text differs from expected. | -| #322 | Koppeling toevoegen: Stap 4 | Gemeente | Review present. Blue info box text about visibility differs. | -| #323 | Applicatie toevoegen: Stap 1 | Gemeente | Most text matches. Extra "klanten" paragraph incorrect for gemeente perspective. | -| #324 | Applicatie toevoegen: Stap 2 | Gemeente | Fields correct. Hosting showed "Geen hosting opties beschikbaar". | -| #327 | Applicatie toevoegen: Stap 5 Controleren | Gemeente | Review text uses "applicatiegebruik melding" instead of expected text. | -| #314 | Wizard koppeling vindt applicaties niet | Leverancier | Applications found in dropdown, but wizard blocked at next step (Volgende disabled). | -| #454 | Wizard koppelingen bestaande niet gevonden | Leverancier | Wizard correctly showed "Geen bestaande koppelingen" but blocked at next step. | -| #456 | Consistentie in werking van wizards | Leverancier | Applicatie and Dienst wizards consistent. Koppeling wizard has Volgende button bug. | -| #397 | Pagina aanmaken via CMS | Func. Beheerder | CMS pages API returns 2 pages (Home, About). Admin CMS navigation untestable. | -| #135 | Non-functionele eisen Referentiearchitectuur | Architectuur | API performance acceptable. Architecture UI section completely inaccessible (CMS page 404). Regression. | - -## Results by Agent - -### 1. Leverancier — Jan Pietersen (browser-1) -| PASS | PARTIAL | FAIL | CANNOT_TEST | CLOSED | -|------|---------|------|-------------|--------| -| 19 | 4 | 2 | 15 | 33 | - -Key findings: -- Applicatie and Dienst wizards complete successfully end-to-end -- **New bug:** Koppeling wizard Volgende button stays disabled despite all required fields filled -- Applicatiegebruik wizard hit 503 (backend maintenance mode during test) -- Beheer table shows applications from ALL organizations (RBAC scoping concern) -- #377 FAIL: Diensten column shows "-" despite linked diensten existing - -### 2. Gemeente — Maria van der Berg (browser-2) -| PASS | PARTIAL | FAIL | CANNOT_TEST | -|------|---------|------|-------------| -| 10 | 12 | 2 | 5 | - -Key findings: -- All 3 wizard walkthroughs (Applicatie, Dienst, Koppeling) completed successfully -- Koppeling wizard Volgende button required force-click to proceed (same bug as Leverancier) -- #395 FAIL: No left sidebar navigation on any beheer page -- #349 FAIL: Standaardversies show raw UUIDs on koppeling cards -- Many wizard text issues: "publiceren" flow used instead of "toevoegen" flow (#316-#327) - -### 3. Security Officer — Mark Jansen (browser-3) -| PASS | PARTIAL | FAIL | CANNOT_TEST | -|------|---------|------|-------------| -| 6 | 5 | 2 | 1 | - -Key findings: -- RBAC enforcement solid: gemeente contacts blocked for unauthenticated, 305 visible for authenticated gebruik-beheerder -- #455 FAIL: Koppelingen/Contactpersonen tabs missing (uses/used endpoints return 500) -- #395 FAIL: Left sidebar menu completely absent -- **Security finding (MEDIUM):** Public search facets expose private data type counts (305 contactpersonen, 19,502 gebruik records) -- SiteImprove completely removed (#406 PASS) - -### 4. Functioneel Beheerder — Peter van Dijk (browser-4) -| PASS | PARTIAL | FAIL | CANNOT_TEST | -|------|---------|------|-------------| -| 9 | 7 | 0 | 7 | - -Key findings: -- #410 PASS: Dashboard writes "softwarecatalogus" (lowercase) correctly -- #286 PASS: Password change works without 500 error -- #396 PASS: Nextcloud version 32.0.5 -- #393 PASS: Backend register endpoints all return 200; CSV/Excel export works -- OAS endpoint returns HTTP 500 for both register 3 and 4 -- Organisation UUID mapping broken for all test users (systemic environment issue) - -### 5. Samenwerking — Linda Bakker (browser-5) -| PASS | PARTIAL | FAIL | CANNOT_TEST | -|------|---------|------|-------------| -| 0 | 2 | 0 | 0 | - -Key findings: -- #57 PARTIAL (stable): TypeError fix confirmed stable (8th consecutive test). New org dropdown added. Member municipality delegation not yet implemented. -- #186 PARTIAL (stable): Koppeling detail pages render. External services resolve correctly. Module name resolution failures cause UUID-only titles. -- Category search (`categorie=koppeling`) returns 0 results - -### 6. Bezoeker — Anonymous Visitor (browser-6) -| PASS | PARTIAL | FAIL | CANNOT_TEST | -|------|---------|------|-------------| -| 4 | 1 | 1 | 7 | - -Key findings: -- #394 PASS: Contactpersonen RBAC correctly enforced (0 results unauthenticated) -- #315 PASS: No municipal data visible publicly, RBAC filtering active -- #267 PASS: "Softwarecatalogus" naming consistent across all pages -- #455 FAIL: Only Standaarden and Geschikt voor tabs shown on detail pages -- Many issues CANNOT_TEST due to missing test data (no dienst/koppeling publications) - -### 7. Architectuur Expert — Dr. Sarah de Vries (browser-7) -| PASS | PARTIAL | FAIL | CANNOT_TEST | -|------|---------|------|-------------| -| 0 | 2 | 0 | 1 | - -Key findings: -- #148 PARTIAL: GEMMA API data correct (4,353 elements, 6,049 relations, 248 views, 1 model). OAS endpoint regression to 500. "Gemma downloaden" button disappeared. Model-id filter non-functional. -- #160 CANNOT_TEST: Entire referentiearchitectuur section inaccessible (CMS page 404). Regression from previous run. -- #135 PARTIAL: API performance acceptable but architecture UI completely inaccessible. Worse than previous run. - -## PASS Issues (Verified Working) - -| Issue | Title | Agent(s) | -|-------|-------|----------| -| #267 | Naam is softwarecatalogus i.p.v. Softwarecatalogus | Bezoeker | -| #263 | Niet ingelogd: gebruik tab toont gemeenten | Bezoeker | -| #315 | Zoekpagina toont gemeentelijk applicatielandschap | Bezoeker, Gemeente, Security | -| #394 | Contactpersonen gemeenten publiekelijk zichtbaar | Bezoeker, Security | -| #266 | Na inloggen: Mijn account leeg? | Gemeente | -| #280 | Zoeken: sorteren gaat niet goed | Gemeente | -| #344 | Zoeken: Geen resultaten bij Gravenbeheercomponent | Gemeente, Leverancier | -| #353 | Mijn account functie niet aangepast | Gemeente | -| #343 | Filter 'Type koppeling' toevoegen | Gemeente | -| #346 | Paginering werkt niet | Gemeente | -| #325 | Applicatie toevoegen: Stap 3 Referentiecomponenten | Gemeente | -| #326 | Applicatie toevoegen: Stap 4 Deelnemer | Gemeente | -| #321 | Koppeling toevoegen: Stap 3 Deelnemer | Gemeente | -| #328 | Applicatie toevoegen: Stap 1.1 Nieuwe applicatie | Gemeente | -| #354 | Diensten: incomplete lijst applicaties | Leverancier | -| #357 | Diensten: Diensttype en Type door elkaar | Leverancier | -| #371 | Applicatie: UUID onder compliance | Leverancier | -| #373 | Applicatie: Gekoppelde diensten niet getoond | Leverancier | -| #375 | Applicaties: versie voor SaaS applicaties | Leverancier | -| #376 | Applicaties: labels wizard en tabel anders | Leverancier | -| #381 | Applicaties: non-compliant vervangen door niet ondersteund | Leverancier | -| #384 | Applicaties: eenduidige manier van bewerken | Leverancier | -| #443 | Dienst pagina: diensttypen aan elkaar geschreven | Leverancier | -| #444 | Vormgeving veranderd bij te lange URLs | Leverancier | -| #445 | Nieuwe dienst verkeerde afsluitende pagina | Leverancier | -| #446 | Dienst publiceren: tekstuele inconsistenties | Leverancier | -| #404 | Regelmatig witte schermen | Security | -| #409 | Footer anders: inlog of uitgelogd | Security, Func. Beheerder | -| #406 | SiteImprove verwijderen | Security, Func. Beheerder | -| #410 | Dashboard schrijfwijze softwarecatalogus | Func. Beheerder | -| #286 | 500-error bij wachtwoord wijzigen | Func. Beheerder | -| #396 | Verouderde NextCloud versie | Func. Beheerder | -| #393 | Backend fouten in voorzieningenregister | Func. Beheerder | - -## Bugs Fixed This Session (11 total) - -| # | Bug | Repo | Impact | -|---|-----|------|--------| -| 1 | Register `languages` property missing | openregister | ALL API 500s | -| 2 | Named parameter `_rbac` mismatch | openregister | ALL PATCH/PUT 500s | -| 3 | Deelnemers empty if block | softwarecatalog | Endpoint always 500 | -| 4 | Publications schema enrichment | opencatalogi | Blank search page | -| 5 | explode() on array in RenderObject | openregister | POST response 500s | -| 6 | Schema URL path wrong | tilburg-woo-ui (5 files) | Gemeente wizards blocked | -| 7 | Diensten missing from catalog | softwarecatalog + data | Diensten invisible in search | -| 8 | View rendering wrong component | tilburg-woo-ui | /beheer/views empty | -| 9 | Default Org UUID mapping | Data + openregister | Functioneel-beheerder blocked | -| 10 | Koppeling wizard missing Naam field | tilburg-woo-ui | "Volgende" permanently disabled | -| 11 | Glossary URL validation + Delete dialog | opencatalogi + nextcloud-vue | Form blocked + UUID shown | - -## CANNOT_TEST Issues - -| Issue | Title | Agent(s) | Reason | -|-------|-------|----------|--------| -| #105 | Aanbieders zien applicatielandschappen niet | Leverancier | `/beheer/applicatielandschappen` route not found | -| #312 | Koppeling heeft verplicht een naam | Leverancier | Koppeling wizard blocked (Volgende disabled) | -| #348 | Standaarden bij Centric Begraven | Leverancier | No imported data in test environment | -| #352 | Mijn account contactpersoon | Leverancier | `/account` page not tested | -| #367 | Contactpersonen tussenvoegsel niet getoond | Leverancier | No contactpersonen with tussenvoegsel in test data | -| #368 | Koppeling zonder richting | Leverancier | Koppeling wizard blocked | -| #369 | Koppeling niet zichtbaar | Leverancier | Koppeling wizard blocked | -| #342 | Zoeken referentiecomponenten duidelijk maken | Gemeente | Need to filter by Type=Applicatie | -| #350 | Link achter gebruikersnaam | Gemeente | Username link not visible in current layout | -| #355 | Diensten export UUID's | Gemeente | Browser download not testable via Playwright | -| #403 | Tekst verwijderen aanpassen | Func. Beheerder | Frontend beheer pages empty due to org fetch 404 | -| #449 | Handleiding facets configureren | Func. Beheerder | Facet editing in backend not navigated | -| #450 | Icoon publiceren verwijderen | Func. Beheerder, Leverancier | Backend UI not inspected | -| #447 | Concept leverancier direct vindbaar | Bezoeker, Security | No concept-status organisations in test data | -| #345 | Dienst verschijnt niet in filters | Bezoeker | Diensten not published as OpenCatalogi publications | -| #347 | Dienstkaartje toont array | Bezoeker | No dienst cards in search results | -| #160 | Performance plotten views | Architectuur | Entire referentiearchitectuur section inaccessible (CMS page 404) | -| #278 (func.) | Filterteksten (backend) | Func. Beheerder | Search page blocked by org fetch error for this agent | - -## Recommendations - -### Immediate (P0) -1. **Fix `/uses` and `/used` endpoints** returning HTTP 500 on publication detail pages (#455) -- breaks tabs for all users (both public and authenticated) -2. **Fix OAS endpoint** regression on registers 3 and 4 -- investigate `organisation` field causing 500 -3. **Fix beheer left sidebar menu** (position 7) not rendering (#395) -- affects all authenticated users -4. **Fix koppeling wizard** Volgende button validation logic -- blocks koppeling creation entirely - -### High Priority (P1) -5. **Fix search facets** to exclude private data types (contactpersoon, gebruik, koppeling) for unauthenticated users -- information leakage -6. **Fix wizard routing**: "toevoegen" buttons should route to gebruik flow, not publiceren flow (affects #316-#322) -7. **Fix referentiearchitectuur CMS pages** -- only "home" and "about" exist, all architecture routes broken (#160, #135) -8. **Fix name resolution** for module UUIDs in koppelingen -- causes UUID-only titles throughout the platform - -### Before Next Test Run (P2) -9. Fix organisation UUID mapping: ensure test-setup.sh creates register objects matching Nextcloud user org UUIDs -10. Create dienst and koppeling publications in test data so bezoeker can test #345, #347, #443, #448, #453 -11. Create at least one concept-status organisation to test #447 -12. Configure Piwik Pro analytics (srcUrl, dataLayerName, id) on test environment to verify #92 diff --git a/test-results/api/issues/105.md b/test-results/api/issues/105.md deleted file mode 100644 index a6629d76..00000000 --- a/test-results/api/issues/105.md +++ /dev/null @@ -1,23 +0,0 @@ -# #105 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #105 AC4: Authenticated user sees own gebruik -**Response Time:** 868ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #105 AC1: Aanbod-beheerder sees applicaties | PASS | 650ms | -| #105 AC5: Results include user's org and public Leverancier modules | PASS | 650ms | -| #105 AC2: Admin sees applicaties | PASS | 868ms | -| #105 AC3: Gebruik endpoint accessible | PASS | 82ms | -| #105 AC4: Authenticated user can access gebruik | PASS | 82ms | - diff --git a/test-results/api/issues/141.md b/test-results/api/issues/141.md deleted file mode 100644 index 044c61a3..00000000 --- a/test-results/api/issues/141.md +++ /dev/null @@ -1,26 +0,0 @@ -# #141 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #141 Merge: koppeling preservation -**Response Time:** 84ms - -## References - -- Issue description: [issues/141.md](../../issues/141.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #141 AC1: Multiple organisations exist for merge testing | PASS | 78ms | -| #141 AC2: Applications have organisation reference for merge | PASS | 84ms | -| #141 AC3: Applications have @self metadata for tracking | PASS | 84ms | -| #141 AC4: Koppelingen accessible for merge transfer | PASS | 83ms | -| #141 AC5: Koppelingen have module references | PASS | 83ms | -| #141 After merge, koppeling names resolve to readable names (not UUIDs) | PASS | 78ms | -| #141 After merge, koppeling count is available — total count returned | PASS | 78ms | - diff --git a/test-results/api/issues/144.md b/test-results/api/issues/144.md deleted file mode 100644 index 6cf4ae69..00000000 --- a/test-results/api/issues/144.md +++ /dev/null @@ -1,31 +0,0 @@ -# #144 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #144 Leverancier count: migration check -**Response Time:** 514ms - -## References - -- Issue description: [issues/144.md](../../issues/144.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #144 AC1: Search returns results | PASS | 393ms | -| #144 AC5: Results contain beschrijvingKort | PASS | 393ms | -| #144 AC8: Organisation names are readable text (not UUID) | PASS | 84ms | -| #144 AC2: Partial name search returns results | PASS | 132ms | -| #144 AC3: Facet data returned with results | PASS | 109ms | -| #144 AC4: Facets contain expected fields | PASS | 109ms | -| #144 AC5: Sorted results returned | PASS | 94ms | -| #144 AC6: No search filter returns results | PASS | 85ms | -| #144 AC7: Filtered search has fewer results than unfiltered | PASS | 103ms | -| #144 AC9: Authenticated search returns results with org context | PASS | 514ms | -| #144 Leverancier count matches migration source — at least 300 leveranciers exist | PASS | 87ms | -| #144 Leverancier count is reasonable — not more than 500 | PASS | 87ms | - diff --git a/test-results/api/issues/148.md b/test-results/api/issues/148.md deleted file mode 100644 index 810efd38..00000000 --- a/test-results/api/issues/148.md +++ /dev/null @@ -1,30 +0,0 @@ -# #148 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #148 AC7: Elements have type and name properties -**Response Time:** 501ms - -## References - -- Issue description: [issues/148.md](../../issues/148.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #148 AC1: Views endpoint returns 200 | PASS | 335ms | -| #148: Views returns results array | PASS | 335ms | -| #148: Views count > 0 | PASS | 335ms | -| #148: Response includes total count | PASS | 335ms | -| #148: Single view accessible | PASS | 97ms | -| #148 AC3: Elements endpoint returns data | PASS | 82ms | -| #148 AC4: Elements have type information | PASS | 82ms | -| #148 AC5: Relations endpoint returns data | PASS | 82ms | -| #148 AC6: Registers endpoint lists available registers | PASS | 501ms | -| #148 AC7: Elements have identifier property | PASS | 90ms | -| #148 AC8: Elements omit empty properties | PASS | 90ms | - diff --git a/test-results/api/issues/15.md b/test-results/api/issues/15.md deleted file mode 100644 index 595bbc8a..00000000 --- a/test-results/api/issues/15.md +++ /dev/null @@ -1,22 +0,0 @@ -# #15 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #15 AC4: Export scoped to user org -**Response Time:** 12877ms - -## References - -- Issue description: [issues/15.md](../../issues/15.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #15: Export endpoint accessible | PASS | 3508ms | -| #15 AC2: Export accessible for gebruik-beheerder | PASS | 12877ms | -| #15 AC4: Export for jan accessible | PASS | 11115ms | - diff --git a/test-results/api/issues/155.md b/test-results/api/issues/155.md deleted file mode 100644 index 31250caa..00000000 --- a/test-results/api/issues/155.md +++ /dev/null @@ -1,23 +0,0 @@ -# #155 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #155 AC1: Glossary endpoint returns terms -**Response Time:** 109ms - -## References - -- Issue description: [issues/155.md](../../issues/155.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #155 AC2: Glossary search accessible | PASS | 81ms | -| #155 AC3: Glossary has terms | PASS | 86ms | -| #155 AC4: Glossary search is case-insensitive | PASS | 86ms | -| #155 AC1: Glossary endpoint returns data | PASS | 109ms | - diff --git a/test-results/api/issues/160.md b/test-results/api/issues/160.md deleted file mode 100644 index 83905fcb..00000000 --- a/test-results/api/issues/160.md +++ /dev/null @@ -1,22 +0,0 @@ -# #160 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #160 AC1: View payload size reasonable with _unset=xml -**Response Time:** 310ms - -## References - -- Issue description: [issues/160.md](../../issues/160.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #160 AC5: Backend API returns view data <500ms | PASS | 296ms | -| #160: Views response contains results array | PASS | 296ms | -| #160 AC1: Filtered views payload size < 500KB | PASS | 310ms | - diff --git a/test-results/api/issues/169.md b/test-results/api/issues/169.md deleted file mode 100644 index 99ed62ff..00000000 --- a/test-results/api/issues/169.md +++ /dev/null @@ -1,23 +0,0 @@ -# #169 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #169 AC1: NC organisations endpoint accessible -**Response Time:** 91ms - -## References - -- Issue description: [issues/169.md](../../issues/169.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #169 AC3: NC organisations have status info | PASS | 68ms | -| #169 AC4: Organisation objects have name and uuid | PASS | 68ms | -| #169 AC1: Nextcloud organisations accessible | PASS | 91ms | -| #169 AC2: Organisations have required fields | PASS | 91ms | - diff --git a/test-results/api/issues/186.md b/test-results/api/issues/186.md deleted file mode 100644 index ec94d7bd..00000000 --- a/test-results/api/issues/186.md +++ /dev/null @@ -1,22 +0,0 @@ -# #186 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #186 AC2: Koppelingen detail has module references -**Response Time:** 642ms - -## References - -- Issue description: [issues/186.md](../../issues/186.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #186 AC1: Koppeling names are readable (not blank/UUID) | PASS | 642ms | -| #186 AC2: Koppelingen have moduleA/moduleB fields | PASS | 82ms | -| #186 AC3: Koppeling has naam for display | PASS | 82ms | - diff --git a/test-results/api/issues/187.md b/test-results/api/issues/187.md deleted file mode 100644 index 57a72c73..00000000 --- a/test-results/api/issues/187.md +++ /dev/null @@ -1,20 +0,0 @@ -# #187 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #187 AC1: Contact person definition accessible -**Response Time:** 78ms - -## References - -- Issue description: [issues/187.md](../../issues/187.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #187 AC1: Contact person schema accessible | PASS | 78ms | - diff --git a/test-results/api/issues/208.md b/test-results/api/issues/208.md deleted file mode 100644 index 3fe87994..00000000 --- a/test-results/api/issues/208.md +++ /dev/null @@ -1,19 +0,0 @@ -# #208 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #208 AC1: Table view shows naam and type -**Response Time:** 89ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #208 AC1: Applications have naam for table display | PASS | 89ms | - diff --git a/test-results/api/issues/225.md b/test-results/api/issues/225.md deleted file mode 100644 index ba342570..00000000 --- a/test-results/api/issues/225.md +++ /dev/null @@ -1,22 +0,0 @@ -# #225 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #225 AC3: Authenticated sees more org fields -**Response Time:** 87ms - -## References - -- Issue description: [issues/225.md](../../issues/225.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #225 AC1: Public can access organisations | PASS | 81ms | -| #225 AC2: Public organisations have limited fields | PASS | 81ms | -| #225 AC3: Authenticated org listing accessible | PASS | 87ms | - diff --git a/test-results/api/issues/23.md b/test-results/api/issues/23.md deleted file mode 100644 index 8d8f1c6c..00000000 --- a/test-results/api/issues/23.md +++ /dev/null @@ -1,25 +0,0 @@ -# #23 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #23 AC5: Contactpersonen present -**Response Time:** 955ms - -## References - -- Issue description: [issues/23.md](../../issues/23.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #23 AC2: Applications searchable | PASS | 550ms | -| #23 AC9: Org names are text (not UUID) | PASS | 955ms | -| #23 AC1: Organisations present in new system | PASS | 79ms | -| #23 AC3: Diensten present in new system | PASS | 75ms | -| #23 AC4: Koppelingen present in new system | PASS | 79ms | -| #23 AC5: Contactpersonen present in new system | PASS | 79ms | - diff --git a/test-results/api/issues/231.md b/test-results/api/issues/231.md deleted file mode 100644 index dd10a53c..00000000 --- a/test-results/api/issues/231.md +++ /dev/null @@ -1,21 +0,0 @@ -# #231 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #231 AC1: Views available for export -**Response Time:** 102ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #231 AC1: Views available for AMEF export | PASS | 102ms | -| #231 AC2: Views have xml field for export | PASS | 102ms | -| #231 AC3: Elements available for export relationship check | PASS | 102ms | - diff --git a/test-results/api/issues/266.md b/test-results/api/issues/266.md deleted file mode 100644 index cdd96e9b..00000000 --- a/test-results/api/issues/266.md +++ /dev/null @@ -1,23 +0,0 @@ -# #266 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #266 AC1: /api/me returns firstName -**Response Time:** 594ms - -## References - -- Issue description: [issues/266.md](../../issues/266.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #266 AC5: /api/me returns correct personal data | PASS | 528ms | -| #266: User/me returns profile data | PASS | 594ms | -| #266 AC1: /api/me returns firstName field | PASS | 72ms | -| #266 AC2: /api/me returns email | PASS | 72ms | - diff --git a/test-results/api/issues/278.md b/test-results/api/issues/278.md deleted file mode 100644 index 60ebbd5d..00000000 --- a/test-results/api/issues/278.md +++ /dev/null @@ -1,21 +0,0 @@ -# #278 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #278 AC1: Filter values are readable strings -**Response Time:** 97ms - -## References - -- Issue description: [issues/278.md](../../issues/278.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #278 AC1: Facets returned with results | PASS | 97ms | -| #278 AC2: geregistreerdDoor facet has buckets | PASS | 97ms | - diff --git a/test-results/api/issues/280.md b/test-results/api/issues/280.md deleted file mode 100644 index 105af423..00000000 --- a/test-results/api/issues/280.md +++ /dev/null @@ -1,22 +0,0 @@ -# #280 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #280 AC3: Page 2 continues sort order -**Response Time:** 94ms - -## References - -- Issue description: [issues/280.md](../../issues/280.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #280 AC1: Sort parameter accepted | PASS | 94ms | -| #280 AC2: Sorted page 1 accessible | PASS | 88ms | -| #280 AC3: Page 2 first item follows page 1 last item | PASS | 78ms | - diff --git a/test-results/api/issues/286.md b/test-results/api/issues/286.md deleted file mode 100644 index 6ace53b2..00000000 --- a/test-results/api/issues/286.md +++ /dev/null @@ -1,21 +0,0 @@ -# #286 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #286 AC4: Login with current password succeeds -**Response Time:** 841ms - -## References - -- Issue description: [issues/286.md](../../issues/286.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #286 AC4: User can log in with password | PASS | 841ms | -| #286 AC4: Server responds with 2xx | PASS | 841ms | - diff --git a/test-results/api/issues/300.md b/test-results/api/issues/300.md deleted file mode 100644 index 5708d05f..00000000 --- a/test-results/api/issues/300.md +++ /dev/null @@ -1,20 +0,0 @@ -# #300 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #300 AC1-4: Jan's app count is correct -**Response Time:** 99ms - -## References - -- Issue description: [issues/300.md](../../issues/300.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #300 AC4: Returned objects are valid and accessible | PASS | 99ms | - diff --git a/test-results/api/issues/302.md b/test-results/api/issues/302.md deleted file mode 100644 index 2ae2d063..00000000 --- a/test-results/api/issues/302.md +++ /dev/null @@ -1,20 +0,0 @@ -# #302 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #302 AC1: Application fields populated after load -**Response Time:** 86ms - -## References - -- Issue description: [issues/302.md](../../issues/302.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #302 AC1: Applications have populated fields | PASS | 86ms | - diff --git a/test-results/api/issues/306.md b/test-results/api/issues/306.md deleted file mode 100644 index 23203741..00000000 --- a/test-results/api/issues/306.md +++ /dev/null @@ -1,20 +0,0 @@ -# #306 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #306 AC1: Diensten have clean labels -**Response Time:** 81ms - -## References - -- Issue description: [issues/306.md](../../issues/306.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #306 AC1: Diensten have naam field | PASS | 81ms | - diff --git a/test-results/api/issues/307.md b/test-results/api/issues/307.md deleted file mode 100644 index cc148692..00000000 --- a/test-results/api/issues/307.md +++ /dev/null @@ -1,20 +0,0 @@ -# #307 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #307 AC1-2: Jan's diensten scoped to own org -**Response Time:** 113ms - -## References - -- Issue description: [issues/307.md](../../issues/307.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #307 AC1: Diensten are accessible to user | PASS | 113ms | - diff --git a/test-results/api/issues/308.md b/test-results/api/issues/308.md deleted file mode 100644 index 2e74c1ed..00000000 --- a/test-results/api/issues/308.md +++ /dev/null @@ -1,20 +0,0 @@ -# #308 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #306 AC1: Diensten have clean labels -**Response Time:** 81ms - -## References - -- Issue description: [issues/308.md](../../issues/308.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #308 AC1: Diensten have expected fields | PASS | 81ms | - diff --git a/test-results/api/issues/312.md b/test-results/api/issues/312.md deleted file mode 100644 index ea0d551d..00000000 --- a/test-results/api/issues/312.md +++ /dev/null @@ -1,24 +0,0 @@ -# #312 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #312 AC4: Koppelingen with names retain them -**Response Time:** 216ms - -## References - -- Issue description: [issues/312.md](../../issues/312.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #312 AC1: Koppelingen have naam field | PASS | 79ms | -| #312 AC2: Koppeling names are non-empty | PASS | 79ms | -| #312 AC3: Most koppelingen have non-UUID names | PASS | 79ms | -| #312 AC4: Non-empty koppeling names exist | PASS | 216ms | -| #312 AC5: Koppelingen with moduleA have populated field | PASS | 216ms | - diff --git a/test-results/api/issues/314.md b/test-results/api/issues/314.md deleted file mode 100644 index f2980b8e..00000000 --- a/test-results/api/issues/314.md +++ /dev/null @@ -1,23 +0,0 @@ -# #314 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #314 AC3: Search apps by name in wizard context -**Response Time:** 114ms - -## References - -- Issue description: [issues/314.md](../../issues/314.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #314 AC1: User can list applications for koppeling wizard | PASS | 95ms | -| #314 AC2: Authenticated user can list applications | PASS | 95ms | -| #314 AC3: Search within wizard context works | PASS | 114ms | -| #314 AC4: Search returns results array | PASS | 114ms | - diff --git a/test-results/api/issues/315.md b/test-results/api/issues/315.md deleted file mode 100644 index 822e3287..00000000 --- a/test-results/api/issues/315.md +++ /dev/null @@ -1,27 +0,0 @@ -# #315 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #315 AC8: Single app detail shows correct supplier -**Response Time:** 96ms - -## References - -- Issue description: [issues/315.md](../../issues/315.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #315 AC1: Filter returns only leveranciers | PASS | 89ms | -| #315 AC4: Applicatie has geregistreerdDoor field | PASS | 96ms | -| #315 AC2: Public applicaties accessible | PASS | 90ms | -| #315 AC3: Admin sees apps from all geregistreerdDoor types | PASS | 88ms | -| #315 AC5: Admin total exceeds or equals public total | PASS | 91ms | -| #315 AC6: Public apps have geregistreerdDoor field | PASS | 88ms | -| #315 AC7: geregistreerdDoor is readable string not UUID | PASS | 88ms | -| #315 AC8: App detail has supplier info | PASS | 88ms | - diff --git a/test-results/api/issues/316.md b/test-results/api/issues/316.md deleted file mode 100644 index 7eee4fdb..00000000 --- a/test-results/api/issues/316.md +++ /dev/null @@ -1,19 +0,0 @@ -# #316 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #324 AC1: Gebruik objects have expected fields -**Response Time:** 83ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #316 AC1: Gebruik schema supports search | PASS | 83ms | - diff --git a/test-results/api/issues/317.md b/test-results/api/issues/317.md deleted file mode 100644 index d6d4d0d3..00000000 --- a/test-results/api/issues/317.md +++ /dev/null @@ -1,19 +0,0 @@ -# #317 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #324 AC1: Gebruik objects have expected fields -**Response Time:** 83ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #317 AC1: Gebruik has valid structure | PASS | 83ms | - diff --git a/test-results/api/issues/319.md b/test-results/api/issues/319.md deleted file mode 100644 index 7cbe16f8..00000000 --- a/test-results/api/issues/319.md +++ /dev/null @@ -1,19 +0,0 @@ -# #319 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #319 AC1: Search koppelingen by name -**Response Time:** 93ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #319 AC1: Koppeling search returns results | PASS | 93ms | - diff --git a/test-results/api/issues/320.md b/test-results/api/issues/320.md deleted file mode 100644 index b3f58a71..00000000 --- a/test-results/api/issues/320.md +++ /dev/null @@ -1,21 +0,0 @@ -# #320 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #320 AC1: Koppelingen have status field -**Response Time:** 118ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #320 AC2: Koppelingen have status-related fields | PASS | 118ms | -| #320 AC3: Koppelingen have type categorization | PASS | 118ms | -| #320 AC1: Koppelingen have expected structure | PASS | 80ms | - diff --git a/test-results/api/issues/323.md b/test-results/api/issues/323.md deleted file mode 100644 index 25894fed..00000000 --- a/test-results/api/issues/323.md +++ /dev/null @@ -1,19 +0,0 @@ -# #323 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #323 AC1: Application search works -**Response Time:** 112ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #323 AC1: Application search in wizard context works | PASS | 112ms | - diff --git a/test-results/api/issues/324.md b/test-results/api/issues/324.md deleted file mode 100644 index b5ca4e83..00000000 --- a/test-results/api/issues/324.md +++ /dev/null @@ -1,21 +0,0 @@ -# #324 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #324 AC2: Gebruik objects have status field -**Response Time:** 103ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #324 AC1: Gebruik objects accessible | PASS | 83ms | -| #324 AC2: Gebruik objects accessible | PASS | 103ms | -| #324 AC3: Gebruik has valid structure | PASS | 103ms | - diff --git a/test-results/api/issues/325.md b/test-results/api/issues/325.md deleted file mode 100644 index c7f05082..00000000 --- a/test-results/api/issues/325.md +++ /dev/null @@ -1,19 +0,0 @@ -# #325 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #325 AC1: Reference components accessible -**Response Time:** 96ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #325 AC1: Applications with reference components accessible | PASS | 96ms | - diff --git a/test-results/api/issues/332.md b/test-results/api/issues/332.md deleted file mode 100644 index 48f75673..00000000 --- a/test-results/api/issues/332.md +++ /dev/null @@ -1,20 +0,0 @@ -# #332 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #332 AC5: Search respects user permissions -**Response Time:** 585ms - -## References - -- Issue description: [issues/332.md](../../issues/332.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #332: Authenticated search works | PASS | 585ms | - diff --git a/test-results/api/issues/333.md b/test-results/api/issues/333.md deleted file mode 100644 index e7ba75ed..00000000 --- a/test-results/api/issues/333.md +++ /dev/null @@ -1,22 +0,0 @@ -# #333 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #333 AC3: Referentiecomponent facet no UUIDs -**Response Time:** 372ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #333 AC1: Organisation facet values are readable | PASS | 88ms | -| #333 AC2: Type facet values are readable | PASS | 88ms | -| #333 AC3: referentieComponenten facet accessible | PASS | 372ms | -| #333 AC4: referentieComponenten buckets have readable labels | PASS | 372ms | - diff --git a/test-results/api/issues/336.md b/test-results/api/issues/336.md deleted file mode 100644 index 88137e12..00000000 --- a/test-results/api/issues/336.md +++ /dev/null @@ -1,19 +0,0 @@ -# #336 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #336 AC1: Objects have consistent identification -**Response Time:** 913ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #336 AC1: All applicaties have @self.id | PASS | 913ms | - diff --git a/test-results/api/issues/339.md b/test-results/api/issues/339.md deleted file mode 100644 index 12e172db..00000000 --- a/test-results/api/issues/339.md +++ /dev/null @@ -1,21 +0,0 @@ -# #339 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #339 AC1: Users endpoint accessible -**Response Time:** 192ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #339 AC2: Users list has multiple entries | PASS | 73ms | -| #339 AC3: User list response has OCS format | PASS | 73ms | -| #339 AC1: Users list accessible | PASS | 192ms | - diff --git a/test-results/api/issues/340.md b/test-results/api/issues/340.md deleted file mode 100644 index 1318bddf..00000000 --- a/test-results/api/issues/340.md +++ /dev/null @@ -1,21 +0,0 @@ -# #340 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #340 AC2: Sort applied after search filter -**Response Time:** 94ms - -## References - -- Issue description: [issues/340.md](../../issues/340.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #340 AC1: Default sort produces results | PASS | 94ms | -| #340 AC2: Search + sort combined works | PASS | 79ms | - diff --git a/test-results/api/issues/343.md b/test-results/api/issues/343.md deleted file mode 100644 index bc5f8603..00000000 --- a/test-results/api/issues/343.md +++ /dev/null @@ -1,23 +0,0 @@ -# #343 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #343 AC2: Filter koppelingen by type=intern -**Response Time:** 84ms - -## References - -- Issue description: [issues/343.md](../../issues/343.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #343: Koppelingen endpoint returns results | PASS | 74ms | -| #343 AC5: Koppelingen have koppelingType attribute | PASS | 74ms | -| #343 AC1: Filter by extern returns results | PASS | 82ms | -| #343 AC2: Filter by intern returns results | PASS | 84ms | - diff --git a/test-results/api/issues/344.md b/test-results/api/issues/344.md deleted file mode 100644 index 5cace163..00000000 --- a/test-results/api/issues/344.md +++ /dev/null @@ -1,22 +0,0 @@ -# #344 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #344 AC2: Filter by specific reference component -**Response Time:** 94ms - -## References - -- Issue description: [issues/344.md](../../issues/344.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #344 AC3: Works for unauthenticated users | PASS | 79ms | -| #344 AC2: Reference component facet returns buckets | PASS | 94ms | -| #344 AC3: Multiple reference components available | PASS | 94ms | - diff --git a/test-results/api/issues/345.md b/test-results/api/issues/345.md deleted file mode 100644 index fc7de980..00000000 --- a/test-results/api/issues/345.md +++ /dev/null @@ -1,22 +0,0 @@ -# #345 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #345 AC1: Diensttype facet populated with values -**Response Time:** 82ms - -## References - -- Issue description: [issues/345.md](../../issues/345.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #345 AC5: Diensten endpoint returns results | PASS | 69ms | -| #345 AC2: Diensttype facet structure correct | PASS | 82ms | -| #345 AC3: Diensten schema returns only diensten | PASS | 82ms | - diff --git a/test-results/api/issues/346.md b/test-results/api/issues/346.md deleted file mode 100644 index cb013288..00000000 --- a/test-results/api/issues/346.md +++ /dev/null @@ -1,25 +0,0 @@ -# #346 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #346 AC5: Pagination with filter applied -**Response Time:** 83ms - -## References - -- Issue description: [issues/346.md](../../issues/346.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #346: Page 1 returns results | PASS | 83ms | -| #346 AC1: Page 2 shows different results than page 1 | PASS | 78ms | -| #346 AC3: Page 3 accessible | PASS | 79ms | -| #346 AC4: Total stays consistent across pages | PASS | 79ms | -| #346 AC5: Pagination works with filter | PASS | 82ms | -| #346 AC6: Pagination with sort maintains consistency | PASS | 82ms | - diff --git a/test-results/api/issues/347.md b/test-results/api/issues/347.md deleted file mode 100644 index dab1bdb4..00000000 --- a/test-results/api/issues/347.md +++ /dev/null @@ -1,20 +0,0 @@ -# #347 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #347 AC2: Dienst type values are readable -**Response Time:** 85ms - -## References - -- Issue description: [issues/347.md](../../issues/347.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #347 AC2: Diensttype values are human-readable | PASS | 85ms | - diff --git a/test-results/api/issues/348.md b/test-results/api/issues/348.md deleted file mode 100644 index 45060689..00000000 --- a/test-results/api/issues/348.md +++ /dev/null @@ -1,21 +0,0 @@ -# #348 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #348 AC1: Applications have standaardversies data -**Response Time:** 87ms - -## References - -- Issue description: [issues/348.md](../../issues/348.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #348 AC1: Applications accessible for standards check | PASS | 87ms | -| #348 AC2: Public can view application standards | PASS | 87ms | - diff --git a/test-results/api/issues/349.md b/test-results/api/issues/349.md deleted file mode 100644 index d17810bb..00000000 --- a/test-results/api/issues/349.md +++ /dev/null @@ -1,22 +0,0 @@ -# #349 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #349 Standaardversies facet: no UUIDs -**Response Time:** 100ms - -## References - -- Issue description: [issues/349.md](../../issues/349.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #349 AC1: Standards facet accessible | PASS | 81ms | -| #349 AC2: Standards facet values not UUIDs | PASS | 81ms | -| #349 Standaardversies facet returns readable names — no UUID labels in facet buckets | PASS | 100ms | - diff --git a/test-results/api/issues/352.md b/test-results/api/issues/352.md deleted file mode 100644 index c076bf1b..00000000 --- a/test-results/api/issues/352.md +++ /dev/null @@ -1,22 +0,0 @@ -# #352 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #352 AC2: Updated name reflected in contact person -**Response Time:** 458ms - -## References - -- Issue description: [issues/352.md](../../issues/352.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #352: Name update succeeds | PASS | 458ms | -| #352 AC3: No cache clearing needed - name appears | PASS | 78ms | -| #352 AC2: Contact persons accessible for sync check | PASS | 85ms | - diff --git a/test-results/api/issues/353.md b/test-results/api/issues/353.md deleted file mode 100644 index 1cc43b48..00000000 --- a/test-results/api/issues/353.md +++ /dev/null @@ -1,22 +0,0 @@ -# #353 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #353 AC1: /api/user/me has functie field -**Response Time:** 422ms - -## References - -- Issue description: [issues/353.md](../../issues/353.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #353: Functie update succeeds | PASS | 422ms | -| #353 AC1: Updated functie shows immediately | PASS | 76ms | -| #353 AC1: /api/me includes functie | PASS | 80ms | - diff --git a/test-results/api/issues/354.md b/test-results/api/issues/354.md deleted file mode 100644 index 0ad6e73a..00000000 --- a/test-results/api/issues/354.md +++ /dev/null @@ -1,26 +0,0 @@ -# #354 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #354 AC6: Consistent search results -**Response Time:** 155ms - -## References - -- Issue description: [issues/354.md](../../issues/354.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #354 AC1: Partial search on diensten works | PASS | 82ms | -| #354 AC2: Substring search returns matching results | PASS | 112ms | -| #354 AC3: Search with limit=40 returns up to 40 results | PASS | 90ms | -| #354 AC4: Partial/substring matching works | PASS | 90ms | -| #354 AC1: App search returns results | PASS | 143ms | -| #354 AC5: Partial name search works | PASS | 143ms | -| #354 AC6: Repeated search returns identical results | PASS | 155ms | - diff --git a/test-results/api/issues/355.md b/test-results/api/issues/355.md deleted file mode 100644 index 7e1860ab..00000000 --- a/test-results/api/issues/355.md +++ /dev/null @@ -1,23 +0,0 @@ -# #355 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #355 AC1: Application data contains readable geregistreerdDoor -**Response Time:** 80ms - -## References - -- Issue description: [issues/355.md](../../issues/355.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #355 AC1: geregistreerdDoor is human-readable in API response | PASS | 80ms | -| #355 AC2: Application names are human-readable | PASS | 80ms | -| #355 AC3: Applications have display names for export | PASS | 80ms | -| #355 AC4: Data has both IDs and readable fields for re-import | PASS | 80ms | - diff --git a/test-results/api/issues/357.md b/test-results/api/issues/357.md deleted file mode 100644 index 807258bc..00000000 --- a/test-results/api/issues/357.md +++ /dev/null @@ -1,21 +0,0 @@ -# #357 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #357 AC1: Dienst type values are consistent -**Response Time:** 82ms - -## References - -- Issue description: [issues/357.md](../../issues/357.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #357 AC1: Diensttype facet has no test values | PASS | 82ms | -| #357 AC2: Diensttype values are readable | PASS | 82ms | - diff --git a/test-results/api/issues/358.md b/test-results/api/issues/358.md deleted file mode 100644 index 54da168d..00000000 --- a/test-results/api/issues/358.md +++ /dev/null @@ -1,20 +0,0 @@ -# #358 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #358 AC1: Public search does not return concept-status items -**Response Time:** 94ms - -## References - -- Issue description: [issues/358.md](../../issues/358.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #358 AC1: No concept-status items in public results | PASS | 94ms | - diff --git a/test-results/api/issues/359.md b/test-results/api/issues/359.md deleted file mode 100644 index 7bb84306..00000000 --- a/test-results/api/issues/359.md +++ /dev/null @@ -1,20 +0,0 @@ -# #359 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #359 AC1: App configuration endpoint accessible -**Response Time:** 61ms - -## References - -- Issue description: [issues/359.md](../../issues/359.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #359 AC1: Configuration endpoint responds | PASS | 61ms | - diff --git a/test-results/api/issues/360.md b/test-results/api/issues/360.md deleted file mode 100644 index ec0c9e7c..00000000 --- a/test-results/api/issues/360.md +++ /dev/null @@ -1,20 +0,0 @@ -# #360 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #360 AC1: Configuration persists via API -**Response Time:** 60ms - -## References - -- Issue description: [issues/360.md](../../issues/360.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #360 AC1: Config endpoint available for persistence | PASS | 60ms | - diff --git a/test-results/api/issues/363.md b/test-results/api/issues/363.md deleted file mode 100644 index f6dc08d2..00000000 --- a/test-results/api/issues/363.md +++ /dev/null @@ -1,21 +0,0 @@ -# #363 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #363 AC1: API responses use consistent terminology -**Response Time:** 92ms - -## References - -- Issue description: [issues/363.md](../../issues/363.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #363 AC1: No standalone catalogus in API response | PASS | 92ms | -| #363 AC2: No space-separated software catalogus | PASS | 92ms | - diff --git a/test-results/api/issues/364.md b/test-results/api/issues/364.md deleted file mode 100644 index 8948881c..00000000 --- a/test-results/api/issues/364.md +++ /dev/null @@ -1,21 +0,0 @@ -# #364 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #364 AC1: Contact persons have email field -**Response Time:** 87ms - -## References - -- Issue description: [issues/364.md](../../issues/364.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #364 AC1: Contact persons accessible | PASS | 87ms | -| #364 AC2: Contact persons with email have non-empty value | PASS | 87ms | - diff --git a/test-results/api/issues/365.md b/test-results/api/issues/365.md deleted file mode 100644 index e6de7bcc..00000000 --- a/test-results/api/issues/365.md +++ /dev/null @@ -1,23 +0,0 @@ -# #365 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #365 AC2: Contact person has rol field -**Response Time:** 358ms - -## References - -- Issue description: [issues/365.md](../../issues/365.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #365 AC1: Editing does NOT produce 400 error | PASS | 358ms | -| #365 AC3: Changes visible after saving | PASS | 211ms | -| #365 AC4: Contacts without rol still valid | PASS | 86ms | -| #365 AC2: Contact persons have expected structure | PASS | 81ms | - diff --git a/test-results/api/issues/366.md b/test-results/api/issues/366.md deleted file mode 100644 index 4bc1f94f..00000000 --- a/test-results/api/issues/366.md +++ /dev/null @@ -1,21 +0,0 @@ -# #366 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #366 AC1: Contact persons have consistent rol field -**Response Time:** 88ms - -## References - -- Issue description: [issues/366.md](../../issues/366.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #366 AC1: Contacts have rol field for role checking | PASS | 88ms | -| #366 AC2: Role values are valid strings | PASS | 88ms | - diff --git a/test-results/api/issues/367.md b/test-results/api/issues/367.md deleted file mode 100644 index 48c00eb2..00000000 --- a/test-results/api/issues/367.md +++ /dev/null @@ -1,20 +0,0 @@ -# #367 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #367 AC1: Contact persons have naam field -**Response Time:** 77ms - -## References - -- Issue description: [issues/367.md](../../issues/367.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #367 AC1: Contacts have readable naam | PASS | 77ms | - diff --git a/test-results/api/issues/368.md b/test-results/api/issues/368.md deleted file mode 100644 index 1e8bb73d..00000000 --- a/test-results/api/issues/368.md +++ /dev/null @@ -1,22 +0,0 @@ -# #368 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #368 AC1: Koppelingen have valid richting values -**Response Time:** 80ms - -## References - -- Issue description: [issues/368.md](../../issues/368.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #368 AC1: Richting field not default Richting placeholder | PASS | 80ms | -| #368 AC2: Valid richting values only | PASS | 80ms | -| #368 AC3: Existing koppelingen without richting handled gracefully | PASS | 80ms | - diff --git a/test-results/api/issues/369.md b/test-results/api/issues/369.md deleted file mode 100644 index 392dd6b6..00000000 --- a/test-results/api/issues/369.md +++ /dev/null @@ -1,21 +0,0 @@ -# #369 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #369 AC1: Created koppelingen visible in list -**Response Time:** 84ms - -## References - -- Issue description: [issues/369.md](../../issues/369.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #369 AC1: Recently created koppelingen appear in list | PASS | 84ms | -| #369 AC2: Koppelingen have application name and type fields | PASS | 84ms | - diff --git a/test-results/api/issues/370.md b/test-results/api/issues/370.md deleted file mode 100644 index 109671a3..00000000 --- a/test-results/api/issues/370.md +++ /dev/null @@ -1,22 +0,0 @@ -# #370 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #370 AC1: Application objects have expected fields -**Response Time:** 88ms - -## References - -- Issue description: [issues/370.md](../../issues/370.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #370 AC1: Applications have naam field | PASS | 88ms | -| #370 AC2: Applications have geregistreerdDoor field | PASS | 88ms | -| #370 AC3: Application naam is a non-empty string | PASS | 88ms | - diff --git a/test-results/api/issues/371.md b/test-results/api/issues/371.md deleted file mode 100644 index 52035b1c..00000000 --- a/test-results/api/issues/371.md +++ /dev/null @@ -1,20 +0,0 @@ -# #371 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #371 AC1: Compliance column no longer in list response -**Response Time:** 86ms - -## References - -- Issue description: [issues/371.md](../../issues/371.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #371 AC1: Application list valid (compliance column removed per #430) | PASS | 86ms | - diff --git a/test-results/api/issues/373.md b/test-results/api/issues/373.md deleted file mode 100644 index 65cfa276..00000000 --- a/test-results/api/issues/373.md +++ /dev/null @@ -1,21 +0,0 @@ -# #373 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #373 AC2: Diensten reference applicaties -**Response Time:** 83ms - -## References - -- Issue description: [issues/373.md](../../issues/373.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #373 AC1: Diensten data accessible | PASS | 83ms | -| #373 AC2: Diensten have data structure for app linking | PASS | 77ms | - diff --git a/test-results/api/issues/374.md b/test-results/api/issues/374.md deleted file mode 100644 index 05efac52..00000000 --- a/test-results/api/issues/374.md +++ /dev/null @@ -1,20 +0,0 @@ -# #374 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #374 AC1: Standards references use readable format -**Response Time:** 115ms - -## References - -- Issue description: [issues/374.md](../../issues/374.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #374 AC1: Standards references accessible in readable format | PASS | 115ms | - diff --git a/test-results/api/issues/375.md b/test-results/api/issues/375.md deleted file mode 100644 index 7ea99c8f..00000000 --- a/test-results/api/issues/375.md +++ /dev/null @@ -1,21 +0,0 @@ -# #375 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #375 AC2: Applications have type field for version categorization -**Response Time:** 88ms - -## References - -- Issue description: [issues/375.md](../../issues/375.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #375 AC1: Applications have type information | PASS | 84ms | -| #375 AC2: Type facet available for version categorization | PASS | 88ms | - diff --git a/test-results/api/issues/377.md b/test-results/api/issues/377.md deleted file mode 100644 index 05b8eb12..00000000 --- a/test-results/api/issues/377.md +++ /dev/null @@ -1,20 +0,0 @@ -# #377 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #373 AC2: Diensten reference applicaties -**Response Time:** 77ms - -## References - -- Issue description: [issues/377.md](../../issues/377.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #377 AC1: Diensten schema accessible for relationship check | PASS | 77ms | - diff --git a/test-results/api/issues/378.md b/test-results/api/issues/378.md deleted file mode 100644 index 038e8ca5..00000000 --- a/test-results/api/issues/378.md +++ /dev/null @@ -1,21 +0,0 @@ -# #378 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #378 AC2: GET and verify field structure before edit -**Response Time:** 89ms - -## References - -- Issue description: [issues/378.md](../../issues/378.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #378 AC1: Fetch application for edit test | PASS | 89ms | -| #378 AC2: Application has standards-related fields | PASS | 80ms | - diff --git a/test-results/api/issues/379.md b/test-results/api/issues/379.md deleted file mode 100644 index 735a1b04..00000000 --- a/test-results/api/issues/379.md +++ /dev/null @@ -1,22 +0,0 @@ -# #379 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #379 AC2: Authenticated shows same app data -**Response Time:** 93ms - -## References - -- Issue description: [issues/379.md](../../issues/379.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #379 AC1: Public standards data accessible | PASS | 93ms | -| #379 AC2: Authenticated app data accessible | PASS | 83ms | -| #379 AC3: Public and auth return same total for public apps | PASS | 83ms | - diff --git a/test-results/api/issues/380.md b/test-results/api/issues/380.md deleted file mode 100644 index 3a4c5de6..00000000 --- a/test-results/api/issues/380.md +++ /dev/null @@ -1,21 +0,0 @@ -# #380 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #380 AC2: Repeated query returns same total -**Response Time:** 97ms - -## References - -- Issue description: [issues/380.md](../../issues/380.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #380 AC1: Total count available for consistency checking | PASS | 85ms | -| #380 AC2: Count consistent across repeated queries | PASS | 97ms | - diff --git a/test-results/api/issues/381.md b/test-results/api/issues/381.md deleted file mode 100644 index 9f9c5757..00000000 --- a/test-results/api/issues/381.md +++ /dev/null @@ -1,21 +0,0 @@ -# #381 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #381 AC1: No 'non-compliant' in API responses -**Response Time:** 934ms - -## References - -- Issue description: [issues/381.md](../../issues/381.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #381 AC1: No 'non-compliant' in response | PASS | 934ms | -| #381 AC6: No 'Compliant' (English) in response | PASS | 934ms | - diff --git a/test-results/api/issues/382.md b/test-results/api/issues/382.md deleted file mode 100644 index 535d89dd..00000000 --- a/test-results/api/issues/382.md +++ /dev/null @@ -1,20 +0,0 @@ -# #382 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #382 AC2-3: URL handling for standards -**Response Time:** 266ms - -## References - -- Issue description: [issues/382.md](../../issues/382.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #382: URL field saved correctly | PASS | 266ms | - diff --git a/test-results/api/issues/383.md b/test-results/api/issues/383.md deleted file mode 100644 index dfcf96d8..00000000 --- a/test-results/api/issues/383.md +++ /dev/null @@ -1,20 +0,0 @@ -# #383 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #383 AC1: Export endpoint respects limit parameter -**Response Time:** 87ms - -## References - -- Issue description: [issues/383.md](../../issues/383.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #383 AC1: Export scoping — limit parameter restricts results | PASS | 87ms | - diff --git a/test-results/api/issues/384.md b/test-results/api/issues/384.md deleted file mode 100644 index 43539ab0..00000000 --- a/test-results/api/issues/384.md +++ /dev/null @@ -1,20 +0,0 @@ -# #384 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #384 AC1: GET returns all fields for edit pre-fill -**Response Time:** 80ms - -## References - -- Issue description: [issues/384.md](../../issues/384.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #384 AC1: Application GET returns full data for editing | PASS | 80ms | - diff --git a/test-results/api/issues/385.md b/test-results/api/issues/385.md deleted file mode 100644 index e6917649..00000000 --- a/test-results/api/issues/385.md +++ /dev/null @@ -1,20 +0,0 @@ -# #385 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #385 AC1: Applications have version-related fields -**Response Time:** 99ms - -## References - -- Issue description: [issues/385.md](../../issues/385.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #385 AC1: Applications accessible with version fields | PASS | 99ms | - diff --git a/test-results/api/issues/391.md b/test-results/api/issues/391.md deleted file mode 100644 index 19303577..00000000 --- a/test-results/api/issues/391.md +++ /dev/null @@ -1,22 +0,0 @@ -# #391 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #391 AC1: Organisation users endpoint accessible -**Response Time:** 92ms - -## References - -- Issue description: [issues/391.md](../../issues/391.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #391 AC2: Contact persons list for activation candidates | PASS | 89ms | -| #391 AC3: Contacts have expected fields for activation | PASS | 89ms | -| #391 AC1: Organisations endpoint for user management | PASS | 92ms | - diff --git a/test-results/api/issues/392.md b/test-results/api/issues/392.md deleted file mode 100644 index 21bf7a87..00000000 --- a/test-results/api/issues/392.md +++ /dev/null @@ -1,23 +0,0 @@ -# #392 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #392 AC1: Contact persons with email accessible -**Response Time:** 76ms - -## References - -- Issue description: [issues/392.md](../../issues/392.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #392 AC3: Organisations accessible for user conversion | PASS | 72ms | -| #392 AC4: Organisation structure supports user management | PASS | 72ms | -| #392 AC1: Contact persons accessible for conversion check | PASS | 76ms | -| #392 AC2: Contact persons have expected structure | PASS | 76ms | - diff --git a/test-results/api/issues/393.md b/test-results/api/issues/393.md deleted file mode 100644 index 8be16604..00000000 --- a/test-results/api/issues/393.md +++ /dev/null @@ -1,24 +0,0 @@ -# #393 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #393 AC3: Export endpoint for diensten -**Response Time:** 624ms - -## References - -- Issue description: [issues/393.md](../../issues/393.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #393 AC5: No 500 errors | PASS | 624ms | -| #393 AC1: Registers endpoint returns data | PASS | 199ms | -| #393 AC2: Schemas endpoint returns data | PASS | 95ms | -| #393 AC3: Diensten export accessible | PASS | 208ms | -| #393 AC4: Export per schema works | PASS | 208ms | - diff --git a/test-results/api/issues/394.md b/test-results/api/issues/394.md deleted file mode 100644 index 1ff2ff21..00000000 --- a/test-results/api/issues/394.md +++ /dev/null @@ -1,25 +0,0 @@ -# #394 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #394 AC4: User sees scoped contactpersonen -**Response Time:** 103ms - -## References - -- Issue description: [issues/394.md](../../issues/394.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #394 AC1: Public applicatie list accessible | PASS | 103ms | -| #394 AC2: Public results contain applicatie data | PASS | 103ms | -| #394 AC6: Authenticated user can see contacts | PASS | 87ms | -| #394 AC2: Public contactpersonen access limited | PASS | 85ms | -| #394 AC3: Admin can list all contactpersonen | PASS | 83ms | -| #394 AC4: User contactpersonen list accessible | PASS | 96ms | - diff --git a/test-results/api/issues/396.md b/test-results/api/issues/396.md deleted file mode 100644 index 46633915..00000000 --- a/test-results/api/issues/396.md +++ /dev/null @@ -1,22 +0,0 @@ -# #396 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #396 AC1: Nextcloud status endpoint -**Response Time:** 31ms - -## References - -- Issue description: [issues/396.md](../../issues/396.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #396 AC1: Nextcloud is running | PASS | 31ms | -| #396 AC4: Version info available | PASS | 31ms | -| #396 AC1: Nextcloud status accessible | PASS | 29ms | - diff --git a/test-results/api/issues/398.md b/test-results/api/issues/398.md deleted file mode 100644 index 659491d5..00000000 --- a/test-results/api/issues/398.md +++ /dev/null @@ -1,24 +0,0 @@ -# #398 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #398 Leveranciers facet: UUID check (re-opened) -**Response Time:** 124ms - -## References - -- Issue description: [issues/398.md](../../issues/398.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #398 AC1: geregistreerdDoor facet accessible | PASS | 90ms | -| #398 AC2: Facet includes Leverancier bucket | PASS | 90ms | -| #398 AC3: Facet buckets have label field | PASS | 124ms | -| #398 AC4: Facet values are human-readable supplier names | PASS | 124ms | -| #398 Leveranciers filter shows readable names — no UUID labels in geregistreerdDoor facet | PASS | 109ms | - diff --git a/test-results/api/issues/399.md b/test-results/api/issues/399.md deleted file mode 100644 index e15d10f9..00000000 --- a/test-results/api/issues/399.md +++ /dev/null @@ -1,21 +0,0 @@ -# #399 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #399 AC1: Different supplier apps visible to public -**Response Time:** 92ms - -## References - -- Issue description: [issues/399.md](../../issues/399.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #399 AC1: Public sees apps from multiple suppliers | PASS | 92ms | -| #399 AC2: Published apps accessible consistently | PASS | 92ms | - diff --git a/test-results/api/issues/400.md b/test-results/api/issues/400.md deleted file mode 100644 index 3bf5f1f4..00000000 --- a/test-results/api/issues/400.md +++ /dev/null @@ -1,23 +0,0 @@ -# #400 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #400 AC5: Data persisted correctly -**Response Time:** 250ms - -## References - -- Issue description: [issues/400.md](../../issues/400.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #400 AC2: Koppeling saved without error | PASS | 77ms | -| #400 AC3: Koppeling visible in list | PASS | 80ms | -| #400 AC4: Re-save works without errors | PASS | 250ms | -| #400 AC5: Data persisted correctly | PASS | 90ms | - diff --git a/test-results/api/issues/401.md b/test-results/api/issues/401.md deleted file mode 100644 index 1111b6ce..00000000 --- a/test-results/api/issues/401.md +++ /dev/null @@ -1,21 +0,0 @@ -# #401 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #401 AC1: Koppelingen have richting field -**Response Time:** 80ms - -## References - -- Issue description: [issues/401.md](../../issues/401.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #401 AC1: Koppelingen data structure valid | PASS | 80ms | -| #401 AC2: Koppelingen have moduleA and moduleB | PASS | 80ms | - diff --git a/test-results/api/issues/402.md b/test-results/api/issues/402.md deleted file mode 100644 index 6f183660..00000000 --- a/test-results/api/issues/402.md +++ /dev/null @@ -1,23 +0,0 @@ -# #402 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #402 AC2: Second identical request returns same data -**Response Time:** 96ms - -## References - -- Issue description: [issues/402.md](../../issues/402.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #402: API returns consistent data (no browser dependency) | PASS | 96ms | -| #402 AC1: API response is deterministic | PASS | 84ms | -| #402 AC2: Repeated request returns same total | PASS | 88ms | -| #402 AC3: Same first result on repeat | PASS | 88ms | - diff --git a/test-results/api/issues/403.md b/test-results/api/issues/403.md deleted file mode 100644 index 9a4c0460..00000000 --- a/test-results/api/issues/403.md +++ /dev/null @@ -1,20 +0,0 @@ -# #403 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #403 AC1: Koppelingen reference modules (dependency chain exists) -**Response Time:** 75ms - -## References - -- Issue description: [issues/403.md](../../issues/403.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #403 AC1: Dependency chain exists for delete prevention | PASS | 75ms | - diff --git a/test-results/api/issues/405.md b/test-results/api/issues/405.md deleted file mode 100644 index 1a165a42..00000000 --- a/test-results/api/issues/405.md +++ /dev/null @@ -1,20 +0,0 @@ -# #405 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #405 AC2: Application relations can be checked before delete -**Response Time:** 81ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #405 AC1: Can fetch application for dependency analysis | PASS | 81ms | -| #405 AC2: Can check koppelingen for dependency analysis | PASS | 77ms | - diff --git a/test-results/api/issues/406.md b/test-results/api/issues/406.md deleted file mode 100644 index 905b4f3a..00000000 --- a/test-results/api/issues/406.md +++ /dev/null @@ -1,21 +0,0 @@ -# #406 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #406 AC1-2: No siteimprove in page source -**Response Time:** 203ms - -## References - -- Issue description: [issues/406.md](../../issues/406.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #406 AC1: No siteimproveanalytics.com in response | PASS | 203ms | -| #406 AC2: No siteimprove references | PASS | 203ms | - diff --git a/test-results/api/issues/407.md b/test-results/api/issues/407.md deleted file mode 100644 index d2466b94..00000000 --- a/test-results/api/issues/407.md +++ /dev/null @@ -1,21 +0,0 @@ -# #407 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #407 AC1: Application standards accessible -**Response Time:** 87ms - -## References - -- Issue description: [issues/407.md](../../issues/407.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #407: No double 'id-id-' in standard links | PASS | 87ms | -| #407 AC1: Applications with standards data accessible | PASS | 82ms | - diff --git a/test-results/api/issues/409.md b/test-results/api/issues/409.md deleted file mode 100644 index aaf853f0..00000000 --- a/test-results/api/issues/409.md +++ /dev/null @@ -1,20 +0,0 @@ -# #409 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #409 AC1: Footer links in unauthenticated page -**Response Time:** 99ms - -## References - -- Issue description: [issues/409.md](../../issues/409.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #409: Page accessible without auth | PASS | 99ms | - diff --git a/test-results/api/issues/411.md b/test-results/api/issues/411.md deleted file mode 100644 index f75802f9..00000000 --- a/test-results/api/issues/411.md +++ /dev/null @@ -1,22 +0,0 @@ -# #411 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #411 AC3: Organisaties have website populated -**Response Time:** 81ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #411 AC1: Some applicaties have beschrijvingKort | PASS | 81ms | -| #411 AC2: Organisaties have website field | PASS | 81ms | -| #411 AC3: Organisaties accessible | PASS | 79ms | -| #411 AC4: Some organisaties have website | PASS | 79ms | - diff --git a/test-results/api/issues/413.md b/test-results/api/issues/413.md deleted file mode 100644 index 7aaedb49..00000000 --- a/test-results/api/issues/413.md +++ /dev/null @@ -1,21 +0,0 @@ -# #413 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #413 AC1: Views endpoint returns filtered views -**Response Time:** 339ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #413 AC1: Views endpoint returns results | PASS | 339ms | -| #413: Filter reduces result count (publiceren filter active) | PASS | 339ms | -| #413: Filtered views have no xml field (_unset=xml working) | PASS | 339ms | - diff --git a/test-results/api/issues/414.md b/test-results/api/issues/414.md deleted file mode 100644 index 288f322f..00000000 --- a/test-results/api/issues/414.md +++ /dev/null @@ -1,20 +0,0 @@ -# #414 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #414 AC2: Cross-org usage visibility -**Response Time:** 212ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #414: Deelnemers endpoint accessible | PASS | 212ms | -| #414 AC2: Gemeente user can see gebruik data | PASS | 82ms | - diff --git a/test-results/api/issues/417.md b/test-results/api/issues/417.md deleted file mode 100644 index efd0b34d..00000000 --- a/test-results/api/issues/417.md +++ /dev/null @@ -1,20 +0,0 @@ -# #417 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #391 AC2: Contact persons accessible for activation check -**Response Time:** 89ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #417 AC1: Contact persons have email for validation | PASS | 89ms | -| #417 AC2: Contact schema supports email field | PASS | 89ms | - diff --git a/test-results/api/issues/418.md b/test-results/api/issues/418.md deleted file mode 100644 index ccc16e9e..00000000 --- a/test-results/api/issues/418.md +++ /dev/null @@ -1,22 +0,0 @@ -# #418 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #418 AC2: Diensten list in single call -**Response Time:** 1011ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #418 AC1: Single API call returns apps | PASS | 1011ms | -| #418 AC2: No 404 errors | PASS | 1011ms | -| #418 AC2: Diensten batch load returns data | PASS | 86ms | -| #418 AC3: Diensten batch response time < 2s | PASS | 86ms | - diff --git a/test-results/api/issues/419.md b/test-results/api/issues/419.md deleted file mode 100644 index 3b90b3c9..00000000 --- a/test-results/api/issues/419.md +++ /dev/null @@ -1,20 +0,0 @@ -# #419 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #419 AC1: Standard version data accessible -**Response Time:** 670ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #419: Applicatie has standaardVersies field | PASS | 670ms | -| #419 AC1: Applications accessible for version check | PASS | 84ms | - diff --git a/test-results/api/issues/420.md b/test-results/api/issues/420.md deleted file mode 100644 index aea67afa..00000000 --- a/test-results/api/issues/420.md +++ /dev/null @@ -1,20 +0,0 @@ -# #420 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #420 AC2: Gemeente-beheerder sees aanbod -**Response Time:** 656ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #420: Aanbod endpoint returns results | PASS | 656ms | -| #420 AC2: Gemeente-beheerder aanbod accessible | PASS | 177ms | - diff --git a/test-results/api/issues/430.md b/test-results/api/issues/430.md deleted file mode 100644 index bf2a453b..00000000 --- a/test-results/api/issues/430.md +++ /dev/null @@ -1,20 +0,0 @@ -# #430 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #430 AC1: Application list response structure -**Response Time:** 81ms - -## References - -- Issue description: [issues/430.md](../../issues/430.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #430 AC1: Applications list returns valid data | PASS | 81ms | - diff --git a/test-results/api/issues/431.md b/test-results/api/issues/431.md deleted file mode 100644 index 679e7694..00000000 --- a/test-results/api/issues/431.md +++ /dev/null @@ -1,20 +0,0 @@ -# #431 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #431 AC1: /api/user/me has middleName field -**Response Time:** 89ms - -## References - -- Issue description: [issues/431.md](../../issues/431.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #431 AC1: /api/me supports middleName (tussenvoegsel) | PASS | 89ms | - diff --git a/test-results/api/issues/432.md b/test-results/api/issues/432.md deleted file mode 100644 index c82518b9..00000000 --- a/test-results/api/issues/432.md +++ /dev/null @@ -1,21 +0,0 @@ -# #432 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #432 AC2: Koppeling detail name matches list -**Response Time:** 91ms - -## References - -- Issue description: [issues/432.md](../../issues/432.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #432 AC1: Koppeling list has consistent names | PASS | 81ms | -| #432 AC2: Detail name matches list name | PASS | 91ms | - diff --git a/test-results/api/issues/433.md b/test-results/api/issues/433.md deleted file mode 100644 index ae8e2f35..00000000 --- a/test-results/api/issues/433.md +++ /dev/null @@ -1,21 +0,0 @@ -# #433 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #433 AC1: Koppelingen have expected fields populated -**Response Time:** 79ms - -## References - -- Issue description: [issues/433.md](../../issues/433.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #433 AC1: Koppelingen have moduleA field | PASS | 79ms | -| #433 AC2: Koppelingen have moduleB field | PASS | 79ms | - diff --git a/test-results/api/issues/434.md b/test-results/api/issues/434.md deleted file mode 100644 index 35e5d2b8..00000000 --- a/test-results/api/issues/434.md +++ /dev/null @@ -1,21 +0,0 @@ -# #434 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #434 AC2: Contact created for account holder -**Response Time:** 105ms - -## References - -- Issue description: [issues/434.md](../../issues/434.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #434 AC1: Contact persons list has entries | PASS | 105ms | -| #434 AC2: Contacts list includes account holder contacts | PASS | 87ms | - diff --git a/test-results/api/issues/435.md b/test-results/api/issues/435.md deleted file mode 100644 index 0545ef0b..00000000 --- a/test-results/api/issues/435.md +++ /dev/null @@ -1,24 +0,0 @@ -# #435 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #435 AC2: Leverancier filter returns expected apps -**Response Time:** 85ms - -## References - -- Issue description: [issues/435.md](../../issues/435.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #435: Unauth app count | PASS | 85ms | -| #435 AC6: Auth and unauth counts comparable | PASS | 78ms | -| #435 AC1: Leverancier apps count > 0 | PASS | 79ms | -| #435 AC2: Multiple leverancier apps imported | PASS | 79ms | -| #435 AC3: Import total is substantial | PASS | 79ms | - diff --git a/test-results/api/issues/436.md b/test-results/api/issues/436.md deleted file mode 100644 index 23d90774..00000000 --- a/test-results/api/issues/436.md +++ /dev/null @@ -1,23 +0,0 @@ -# #436 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #436 AC4: Public organisatie list returns 200 -**Response Time:** 80ms - -## References - -- Issue description: [issues/436.md](../../issues/436.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #436 AC1: Public applicatie list returns 200 (not 401) | PASS | 80ms | -| #436 AC2: Public response has results array | PASS | 80ms | -| #436 AC3: Public diensten list returns 200 (not 401) | PASS | 76ms | -| #436 AC4: Public organisatie list returns 200 (not 401) | PASS | 77ms | - diff --git a/test-results/api/issues/437.md b/test-results/api/issues/437.md deleted file mode 100644 index 2c068cf1..00000000 --- a/test-results/api/issues/437.md +++ /dev/null @@ -1,23 +0,0 @@ -# #437 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #437 AC3: Koppelingen have type field -**Response Time:** 84ms - -## References - -- Issue description: [issues/437.md](../../issues/437.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #437 AC1: Leverancier user can create koppeling | PASS | 84ms | -| #437 AC2: No 400 error | PASS | 84ms | -| #437 AC3: Koppelingen have type field populated | PASS | 81ms | -| #437 AC4: Koppelingen have status field | PASS | 81ms | - diff --git a/test-results/api/issues/438.md b/test-results/api/issues/438.md deleted file mode 100644 index 25f499ca..00000000 --- a/test-results/api/issues/438.md +++ /dev/null @@ -1,21 +0,0 @@ -# #438 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #438 AC1: Filter by specific diensttype -**Response Time:** 77ms - -## References - -- Issue description: [issues/438.md](../../issues/438.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #438 AC1: Diensttype filter returns results | PASS | 77ms | -| #438 AC2: Filtered diensten match requested type | PASS | 77ms | - diff --git a/test-results/api/issues/439.md b/test-results/api/issues/439.md deleted file mode 100644 index 0a5959c6..00000000 --- a/test-results/api/issues/439.md +++ /dev/null @@ -1,23 +0,0 @@ -# #439 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #439 AC4: Empty search doesn't cause errors -**Response Time:** 120ms - -## References - -- Issue description: [issues/439.md](../../issues/439.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #439 AC1: Overview returns 200 | PASS | 82ms | -| #439 AC2: Overview has valid JSON structure | PASS | 82ms | -| #439 AC3: No empty results when data exists | PASS | 82ms | -| #439 AC4: No-match search returns empty array (no error) | PASS | 120ms | - diff --git a/test-results/api/issues/440.md b/test-results/api/issues/440.md deleted file mode 100644 index a03990ef..00000000 --- a/test-results/api/issues/440.md +++ /dev/null @@ -1,23 +0,0 @@ -# #440 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #440 AC4: Filter by Community organisations -**Response Time:** 99ms - -## References - -- Issue description: [issues/440.md](../../issues/440.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #440: Filtering by Gemeente returns correct results | PASS | 72ms | -| #440: Filtering by Leverancier returns correct results | PASS | 79ms | -| #440: Filtering by Samenwerking returns correct results | PASS | 76ms | -| #440 AC4: Community filter returns only community orgs | PASS | 99ms | - diff --git a/test-results/api/issues/441.md b/test-results/api/issues/441.md deleted file mode 100644 index 2cc9a4c3..00000000 --- a/test-results/api/issues/441.md +++ /dev/null @@ -1,20 +0,0 @@ -# #441 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #441 AC1: Applications have version information -**Response Time:** 94ms - -## References - -- Issue description: [issues/441.md](../../issues/441.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #441 AC1: Applications accessible with version data | PASS | 94ms | - diff --git a/test-results/api/issues/442.md b/test-results/api/issues/442.md deleted file mode 100644 index 5c4b1e96..00000000 --- a/test-results/api/issues/442.md +++ /dev/null @@ -1,21 +0,0 @@ -# #442 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #378 AC2: GET and verify field structure before edit -**Response Time:** 88ms - -## References - -- Issue description: [issues/442.md](../../issues/442.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #442 AC1: Applications with document data accessible | PASS | 88ms | -| #442 AC2: Application fields accessible for document check | PASS | 80ms | - diff --git a/test-results/api/issues/443.md b/test-results/api/issues/443.md deleted file mode 100644 index e983bc3f..00000000 --- a/test-results/api/issues/443.md +++ /dev/null @@ -1,20 +0,0 @@ -# #443 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #443 AC3: Dienst API returns diensttypen as array -**Response Time:** 88ms - -## References - -- Issue description: [issues/443.md](../../issues/443.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #443 AC3: Dienst API returns diensttypen as array | PASS | 88ms | - diff --git a/test-results/api/issues/447.md b/test-results/api/issues/447.md deleted file mode 100644 index bf0c91fb..00000000 --- a/test-results/api/issues/447.md +++ /dev/null @@ -1,21 +0,0 @@ -# #447 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #447 AC3: Search excludes concept organisations (authenticated, non-admin) -**Response Time:** 109ms - -## References - -- Issue description: [issues/447.md](../../issues/447.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #447 AC2: Concept organisations excluded from unauthenticated search | PASS | 109ms | -| #447 AC3: Concept organisations excluded from authenticated search | PASS | 104ms | - diff --git a/test-results/api/issues/450.md b/test-results/api/issues/450.md deleted file mode 100644 index 713e1187..00000000 --- a/test-results/api/issues/450.md +++ /dev/null @@ -1,20 +0,0 @@ -# #450 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #450 AC3: No legacy publish-status flags on organisations -**Response Time:** 85ms - -## References - -- Issue description: [issues/450.md](../../issues/450.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #450 AC3: No publish-related status flags on organisations | PASS | 85ms | - diff --git a/test-results/api/issues/451.md b/test-results/api/issues/451.md deleted file mode 100644 index 482dd485..00000000 --- a/test-results/api/issues/451.md +++ /dev/null @@ -1,21 +0,0 @@ -# #451 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #451 AC1: Koppeling standaardversie resolves to display names -**Response Time:** 82ms - -## References - -- Issue description: [issues/451.md](../../issues/451.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #451 AC1: Koppeling endpoint returns 200 | PASS | 82ms | -| #451 AC1: Koppeling standaardversie fields do not contain raw UUIDs | PASS | 82ms | - diff --git a/test-results/api/issues/452.md b/test-results/api/issues/452.md deleted file mode 100644 index a4033f38..00000000 --- a/test-results/api/issues/452.md +++ /dev/null @@ -1,21 +0,0 @@ -# #452 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #452 AC1: Applicatie overview returns correct koppelingen count -**Response Time:** 118ms - -## References - -- Issue description: [issues/452.md](../../issues/452.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #452 AC1: Applicatie endpoint returns 200 | PASS | 118ms | -| #452 AC1: Applicatie has koppelingen array via _extend | PASS | 118ms | - diff --git a/test-results/api/issues/453.md b/test-results/api/issues/453.md deleted file mode 100644 index 0461ac7f..00000000 --- a/test-results/api/issues/453.md +++ /dev/null @@ -1,22 +0,0 @@ -# #453 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #453 AC1: Search with type=koppeling returns scoped facet counts -**Response Time:** 114ms - -## References - -- Issue description: [issues/453.md](../../issues/453.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #453 AC1: Search with type filter returns 200 | PASS | 114ms | -| #453 AC1: Response includes facets | PASS | 114ms | -| #453 AC1: Facet counts are scoped to filtered results | PASS | 114ms | - diff --git a/test-results/api/issues/454.md b/test-results/api/issues/454.md deleted file mode 100644 index cc1895a2..00000000 --- a/test-results/api/issues/454.md +++ /dev/null @@ -1,22 +0,0 @@ -# #454 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #454 AC1: Koppeling search is not scoped by organisation -**Response Time:** 88ms - -## References - -- Issue description: [issues/454.md](../../issues/454.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #454 AC1: Public koppeling endpoint returns 200 | PASS | 88ms | -| #454 AC1: Koppelingen are visible cross-org without auth | PASS | 88ms | -| #454 AC1: Koppelingen come from multiple organisations | PASS | 88ms | - diff --git a/test-results/api/issues/455.md b/test-results/api/issues/455.md deleted file mode 100644 index d1543fe9..00000000 --- a/test-results/api/issues/455.md +++ /dev/null @@ -1,23 +0,0 @@ -# #455 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #455 AC2: Public API returns application contactpersonen -**Response Time:** 227ms - -## References - -- Issue description: [issues/455.md](../../issues/455.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #455 AC1: Public koppelingen endpoint returns 200 | PASS | 82ms | -| #455 AC1: Public koppelingen returns results | PASS | 82ms | -| #455 AC2: Public contactpersonen endpoint returns 200 | PASS | 227ms | -| #455 AC2: Public contactpersonen returns results | PASS | 227ms | - diff --git a/test-results/api/issues/57.md b/test-results/api/issues/57.md deleted file mode 100644 index 04a9fdf9..00000000 --- a/test-results/api/issues/57.md +++ /dev/null @@ -1,20 +0,0 @@ -# #57 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #57 AC1: Samenwerking user can access API -**Response Time:** 81ms - -## References - -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #57 AC1: Samenwerking user can access /api/me | PASS | 81ms | -| #57 AC2: No server error for samenwerking user | PASS | 81ms | - diff --git a/test-results/api/issues/6.md b/test-results/api/issues/6.md deleted file mode 100644 index 5e2d7583..00000000 --- a/test-results/api/issues/6.md +++ /dev/null @@ -1,25 +0,0 @@ -# #6 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #6 AC9: Standards at version level -**Response Time:** 795ms - -## References - -- Issue description: [issues/6.md](../../issues/6.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #6 AC2: Can set compliance status (standaardversies) | PASS | 691ms | -| #6 AC5: Standards visible on detail | PASS | 795ms | -| #6 AC8: Standards field is array or null | PASS | 795ms | -| #6 AC1: Applications have standaardversies field | PASS | 91ms | -| #6 AC5: Public applicatie accessible | PASS | 84ms | -| #6 AC9: Single application detail accessible | PASS | 91ms | - diff --git a/test-results/api/issues/65.md b/test-results/api/issues/65.md deleted file mode 100644 index bb4d5245..00000000 --- a/test-results/api/issues/65.md +++ /dev/null @@ -1,30 +0,0 @@ -# #65 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #65 Username-email sync check -**Response Time:** 213ms - -## References - -- Issue description: [issues/65.md](../../issues/65.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #65 AC2: Contact person created with required fields | PASS | 93ms | -| #65 AC8: Editing updates data | PASS | 184ms | -| #65 AC8: Edit reflected in GET | PASS | 85ms | -| #65 AC11: User can access contact persons | PASS | 84ms | -| #65 AC3: Contact persons have organisatie reference | PASS | 84ms | -| #65 AC4: Contact persons have rollen field | PASS | 84ms | -| #65 AC5: Contact persons have e-mailadres field | PASS | 84ms | -| #65 AC6: Contact persons have isAanspreekpunt field | PASS | 84ms | -| #65 Email edit does not produce 400 error — contactpersoon endpoint returns 200 | PASS | 94ms | -| #65 Email field accepts valid email format — e-mailadres is string or null | PASS | 94ms | -| #65 Username equals email — contact persons have consistent email fields | PASS | 213ms | - diff --git a/test-results/api/issues/73.md b/test-results/api/issues/73.md deleted file mode 100644 index 3e32b2f1..00000000 --- a/test-results/api/issues/73.md +++ /dev/null @@ -1,24 +0,0 @@ -# #73 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #73 AC3: Contact list as different user shows different contacts -**Response Time:** 190ms - -## References - -- Issue description: [issues/73.md](../../issues/73.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #73 AC1: Second contact person created (status 201) | PASS | 190ms | -| #73 AC12: Creating second contact succeeds | PASS | 190ms | -| #73 AC8: Contact names are readable (not UUID) | PASS | 85ms | -| #73 AC3: Maria can list contacts | PASS | 102ms | -| #73 AC4: Multiple contacts can exist | PASS | 102ms | - diff --git a/test-results/api/issues/85.md b/test-results/api/issues/85.md deleted file mode 100644 index 00bed3fd..00000000 --- a/test-results/api/issues/85.md +++ /dev/null @@ -1,27 +0,0 @@ -# #85 — API Test Results - -**Status:** PASS -**Date:** 2026-03-06 14:39 -**Environment:** local -**Request:** #85 AC6: Public contactpersonen NOT accessible (RBAC) -**Response Time:** 108ms - -## References - -- Issue description: [issues/85.md](../../issues/85.md) -- Acceptance criteria: [issues.md](../../issues.md) -- Supplementary info: [aanvullende-informatie.md](../../aanvullende-informatie.md) - -## Test Results - -| Test | Status | Details | -|------|--------|--------| -| #85 AC1: Public API accessible and returns data | PASS | 108ms | -| #85 AC2: Response contains results array | PASS | 108ms | -| #85 AC6: API supports pagination params | PASS | 108ms | -| #85 AC3: API returns organisaties | PASS | 84ms | -| #85 AC2: Response includes pagination fields | PASS | 79ms | -| #85 AC4: Public diensten endpoint returns data | PASS | 90ms | -| #85 AC5: Koppelingen endpoint responds | PASS | 86ms | -| #85 AC6: Contactpersonen endpoint responds | PASS | 76ms | - diff --git a/test-results/api/results-raw.txt b/test-results/api/results-raw.txt deleted file mode 100644 index 74b040cb..00000000 --- a/test-results/api/results-raw.txt +++ /dev/null @@ -1,2049 +0,0 @@ -newman - -GEMMA Softwarecatalogus API Tests - -❏ 00 - Setup -↳ Health Check - Nextcloud Status - GET http://localhost:8080/status.php [200 OK, 1.09kB, 53ms] - ✓ Nextcloud is reachable - ┌ - │ 'Nextcloud version: 32.0.5' - └ - ✓ Returns valid JSON with version info - -↳ Create Group: aanbod-beheerder - POST http://localhost:8080/ocs/v2.php/cloud/groups [400 Bad request, 1.53kB, 562ms] - ✓ Group 'aanbod-beheerder' created or exists - -↳ Create Group: gebruik-beheerder - POST http://localhost:8080/ocs/v2.php/cloud/groups [400 Bad request, 2.1kB, 904ms] - ✓ Group 'gebruik-beheerder' created or exists - -↳ Create Group: functioneel-beheerder - POST http://localhost:8080/ocs/v2.php/cloud/groups [400 Bad request, 973B, 51ms] - ✓ Group 'functioneel-beheerder' created or exists - -↳ Create Group: software-catalog-users - POST http://localhost:8080/ocs/v2.php/cloud/groups [400 Bad request, 791B, 47ms] - ✓ Group 'software-catalog-users' created or exists - -↳ Create Group: software-catalog-admins - POST http://localhost:8080/ocs/v2.php/cloud/groups [400 Bad request, 791B, 46ms] - ✓ Group 'software-catalog-admins' created or exists - -↳ Create User: jan.pietersen@test.nl - POST http://localhost:8080/ocs/v2.php/cloud/users [400 Bad request, 798B, 49ms] - ✓ User 'jan.pietersen@test.nl' created or exists - -↳ Create User: jan.vandeberg@testleverancier.nl - POST http://localhost:8080/ocs/v2.php/cloud/users [400 Bad request, 798B, 49ms] - ✓ User 'jan.vandeberg@testleverancier.nl' created or exists - -↳ Create User: maria.vanderberg@test.nl - POST http://localhost:8080/ocs/v2.php/cloud/users [400 Bad request, 798B, 49ms] - ✓ User 'maria.vanderberg@test.nl' created or exists - -↳ Create User: mark.jansen@test.nl - POST http://localhost:8080/ocs/v2.php/cloud/users [400 Bad request, 798B, 46ms] - ✓ User 'mark.jansen@test.nl' created or exists - -↳ Create User: linda.bakker@test.nl - POST http://localhost:8080/ocs/v2.php/cloud/users [400 Bad request, 798B, 48ms] - ✓ User 'linda.bakker@test.nl' created or exists - -↳ Create User: peter.vandijk@test.nl - POST http://localhost:8080/ocs/v2.php/cloud/users [400 Bad request, 798B, 46ms] - ✓ User 'peter.vandijk@test.nl' created or exists - -↳ Create User: sarah.devries@test.nl - POST http://localhost:8080/ocs/v2.php/cloud/users [400 Bad request, 798B, 46ms] - ✓ User 'sarah.devries@test.nl' created or exists - -↳ Add jan.pietersen to aanbod-beheerder - POST http://localhost:8080/ocs/v2.php/cloud/users/jan.pietersen%40test.nl/groups [200 OK, 835B, 54ms] - ✓ User added to group or already member - -↳ Add jan.pietersen to software-catalog-users - POST http://localhost:8080/ocs/v2.php/cloud/users/jan.pietersen%40test.nl/groups [200 OK, 834B, 47ms] - ✓ User added to group or already member - -↳ Add jan.vandeberg to aanbod-beheerder - POST http://localhost:8080/ocs/v2.php/cloud/users/jan.vandeberg%40testleverancier.nl/groups [200 OK, 834B, 49ms] - ✓ User added to group or already member - -↳ Add jan.vandeberg to software-catalog-users - POST http://localhost:8080/ocs/v2.php/cloud/users/jan.vandeberg%40testleverancier.nl/groups [200 OK, 834B, 48ms] - ✓ User added to group or already member - -↳ Add maria.vanderberg to gebruik-beheerder - POST http://localhost:8080/ocs/v2.php/cloud/users/maria.vanderberg%40test.nl/groups [200 OK, 834B, 50ms] - ✓ User added to group or already member - -↳ Add maria.vanderberg to software-catalog-users - POST http://localhost:8080/ocs/v2.php/cloud/users/maria.vanderberg%40test.nl/groups [200 OK, 834B, 54ms] - ✓ User added to group or already member - -↳ Add mark.jansen to gebruik-beheerder - POST http://localhost:8080/ocs/v2.php/cloud/users/mark.jansen%40test.nl/groups [200 OK, 834B, 53ms] - ✓ User added to group or already member - -↳ Add mark.jansen to software-catalog-users - POST http://localhost:8080/ocs/v2.php/cloud/users/mark.jansen%40test.nl/groups [200 OK, 834B, 55ms] - ✓ User added to group or already member - -↳ Add linda.bakker to gebruik-beheerder - POST http://localhost:8080/ocs/v2.php/cloud/users/linda.bakker%40test.nl/groups [200 OK, 834B, 52ms] - ✓ User added to group or already member - -↳ Add linda.bakker to software-catalog-users - POST http://localhost:8080/ocs/v2.php/cloud/users/linda.bakker%40test.nl/groups [200 OK, 834B, 66ms] - ✓ User added to group or already member - -↳ Add peter.vandijk to functioneel-beheerder - POST http://localhost:8080/ocs/v2.php/cloud/users/peter.vandijk%40test.nl/groups [200 OK, 834B, 57ms] - ✓ User added to group or already member - -↳ Add peter.vandijk to gebruik-beheerder - POST http://localhost:8080/ocs/v2.php/cloud/users/peter.vandijk%40test.nl/groups [200 OK, 834B, 55ms] - ✓ User added to group or already member - -↳ Add peter.vandijk to aanbod-beheerder - POST http://localhost:8080/ocs/v2.php/cloud/users/peter.vandijk%40test.nl/groups [200 OK, 834B, 52ms] - ✓ User added to group or already member - -↳ Add peter.vandijk to software-catalog-admins - POST http://localhost:8080/ocs/v2.php/cloud/users/peter.vandijk%40test.nl/groups [200 OK, 834B, 54ms] - ✓ User added to group or already member - -↳ Add peter.vandijk to software-catalog-users - POST http://localhost:8080/ocs/v2.php/cloud/users/peter.vandijk%40test.nl/groups [200 OK, 834B, 49ms] - ✓ User added to group or already member - -↳ Add sarah.devries to gebruik-beheerder - POST http://localhost:8080/ocs/v2.php/cloud/users/sarah.devries%40test.nl/groups [200 OK, 834B, 50ms] - ✓ User added to group or already member - -↳ Add sarah.devries to software-catalog-users - POST http://localhost:8080/ocs/v2.php/cloud/users/sarah.devries%40test.nl/groups [200 OK, 834B, 51ms] - ✓ User added to group or already member - -↳ Create Org: Test Leverancier BV - POST http://localhost:8080/index.php/apps/openregister/api/organisations [201 Created, 2.24kB, 61ms] - ✓ Org created or exists - -↳ Create Org: Test Gemeente - POST http://localhost:8080/index.php/apps/openregister/api/organisations [201 Created, 2.23kB, 64ms] - ✓ Org created or exists - -↳ Create Org: Test Samenwerking - POST http://localhost:8080/index.php/apps/openregister/api/organisations [201 Created, 2.24kB, 66ms] - ✓ Org created or exists - -↳ Create Org: Test Leverancier 2 - POST http://localhost:8080/index.php/apps/openregister/api/organisations [201 Created, 2.24kB, 68ms] - ✓ Org created or exists - -↳ Lookup All NC Org UUIDs - GET http://localhost:8080/index.php/apps/openregister/api/organisations?_limit=500 [200 OK, 1.7kB, 55ms] - ✓ Can list organisations - ┌ - │ 'Lever NC: cb2c9944-3dce-434a-aac0-e045585ea7e6' - │ 'Gemeente NC: 9db4ca68-fc03-48f7-84bc-03e0f23f1e26' - │ 'Samenwerking NC: 470257f2-45a2-4dcc-bd7c-4eeba713e5b6 - │ ' - │ 'Lever2 NC: 8110707e-b24b-4c11-aba2-4629a74a4acf' - └ - -↳ Create Register Org: Test Leverancier BV - POST http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie [201 Created, 1.85kB, 116ms] - ✓ Register org created or exists - ┌ - │ 'Test Leverancier BV REG UUID: 4445ff49-af8d-454c-9fd5 - │ -d9f87ebca45a' - └ - -↳ Create Register Org: Test Gemeente - POST http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie [201 Created, 1.83kB, 113ms] - ✓ Register org created or exists - ┌ - │ 'Test Gemeente REG UUID: 9ffbe598-968d-422e-a028-ec0e1 - │ 1aa74ed' - └ - -↳ Create Register Org: Test Samenwerking - POST http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie [201 Created, 1.85kB, 112ms] - ✓ Register org created or exists - ┌ - │ 'Test Samenwerking REG UUID: 1acf7862-54b9-46ae-aa12-0 - │ d5652f13774' - └ - -↳ Create Register Org: Test Leverancier 2 - POST http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie [201 Created, 1.85kB, 112ms] - ✓ Register org created or exists - ┌ - │ 'Test Leverancier 2 REG UUID: 9e74a994-f988-45a2-9989- - │ 6800c049f9a4' - └ - -↳ Lookup All Register Org UUIDs - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?_limit=500 [200 OK, 2.13kB, 57ms] - ✓ Can list register organisations - ┌ - │ `Using "btoa" is deprecated. Use "require('btoa')" ins - │ tead.` - └ - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?naam=Test%20Leverancier%20BV&_limit=1 [200 OK, 1.22kB, 56ms] - ┌ - │ 'Test Leverancier BV UUID: 109bc300-2e85-40c2-8920-db4 - │ 893850283' - └ - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?naam=Test%20Gemeente&_limit=1 [200 OK, 1.21kB, 57ms] - ┌ - │ 'Test Gemeente UUID: 0b5fda0a-b221-4041-afad-d93520401 - │ ec9' - └ - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?naam=Test%20Samenwerking&_limit=1 [200 OK, 1.29kB, 57ms] - ┌ - │ 'Test Samenwerking UUID: d4bd5eb6-0a48-45d9-bb04-7dacc - │ 5cbfab5' - └ - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?naam=Test%20Leverancier%202&_limit=1 [200 OK, 1.18kB, 55ms] - ┌ - │ 'Test Leverancier 2 UUID: f2e7ab73-3d58-4b24-a355-3305 - │ 08158511' - └ - -↳ Join jan.pietersen to Test Leverancier BV - POST http://localhost:8080/index.php/apps/openregister/api/organisations/cb2c9944-3dce-434a-aac0-e045585ea7e6/join [400 Bad request, 736B, 49ms] - ✓ jan.pietersen@test.nl joined Test Leverancier BV - -↳ Set Active: jan.pietersen -> Test Leverancier BV - POST http://localhost:8080/index.php/apps/openregister/api/organisations/cb2c9944-3dce-434a-aac0-e045585ea7e6/set-active [400 Bad request, 736B, 49ms] - ✓ jan.pietersen@test.nl active org set - -↳ Join jan.vandeberg to Test Leverancier 2 - POST http://localhost:8080/index.php/apps/openregister/api/organisations/8110707e-b24b-4c11-aba2-4629a74a4acf/join [400 Bad request, 736B, 49ms] - ✓ jan.vandeberg@testleverancier.nl joined Test Leverancier 2 - -↳ Set Active: jan.vandeberg -> Test Leverancier 2 - POST http://localhost:8080/index.php/apps/openregister/api/organisations/8110707e-b24b-4c11-aba2-4629a74a4acf/set-active [400 Bad request, 736B, 49ms] - ✓ jan.vandeberg@testleverancier.nl active org set - -↳ Join maria.vanderberg to Test Gemeente - POST http://localhost:8080/index.php/apps/openregister/api/organisations/9db4ca68-fc03-48f7-84bc-03e0f23f1e26/join [400 Bad request, 736B, 49ms] - ✓ maria.vanderberg@test.nl joined Test Gemeente - -↳ Set Active: maria.vanderberg -> Test Gemeente - POST http://localhost:8080/index.php/apps/openregister/api/organisations/9db4ca68-fc03-48f7-84bc-03e0f23f1e26/set-active [400 Bad request, 736B, 53ms] - ✓ maria.vanderberg@test.nl active org set - -↳ Join mark.jansen to Test Gemeente - POST http://localhost:8080/index.php/apps/openregister/api/organisations/9db4ca68-fc03-48f7-84bc-03e0f23f1e26/join [400 Bad request, 736B, 51ms] - ✓ mark.jansen@test.nl joined Test Gemeente - -↳ Set Active: mark.jansen -> Test Gemeente - POST http://localhost:8080/index.php/apps/openregister/api/organisations/9db4ca68-fc03-48f7-84bc-03e0f23f1e26/set-active [400 Bad request, 736B, 49ms] - ✓ mark.jansen@test.nl active org set - -↳ Join linda.bakker to Test Samenwerking - POST http://localhost:8080/index.php/apps/openregister/api/organisations/470257f2-45a2-4dcc-bd7c-4eeba713e5b6/join [400 Bad request, 736B, 62ms] - ✓ linda.bakker@test.nl joined Test Samenwerking - -↳ Set Active: linda.bakker -> Test Samenwerking - POST http://localhost:8080/index.php/apps/openregister/api/organisations/470257f2-45a2-4dcc-bd7c-4eeba713e5b6/set-active [400 Bad request, 736B, 58ms] - ✓ linda.bakker@test.nl active org set - -↳ Create Contact: Jan Pietersen - POST http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon [201 Created, 1.85kB, 130ms] - ✓ Contact created or exists - ┌ - │ 'Contact Jan Pietersen: 0eb6e965-f195-422a-b19f-7bc06b - │ 39973d' - └ - -↳ Create Contact: Maria van der Berg - POST http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon [201 Created, 1.87kB, 113ms] - ✓ Contact created or exists - ┌ - │ 'Contact Maria Berg: 81057de0-59e6-4108-9c86-c3da1c28e - │ dc8' - └ - -↳ Create Contact: Mark Jansen - POST http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon [201 Created, 1.85kB, 130ms] - ✓ Contact created or exists - ┌ - │ 'Contact Mark Jansen: 4f39e130-5ea0-4401-8287-4f92619d - │ 85dc' - └ - -↳ Create Contact: Linda Bakker - POST http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon [201 Created, 1.86kB, 117ms] - ✓ Contact created or exists - ┌ - │ 'Contact Linda Bakker: c833d3ff-51e2-4710-a0cf-83a7fd0 - │ e1c65' - └ - -↳ Lookup Test Contact UUIDs - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=50 [200 OK, 2.06kB, 67ms] - ✓ Can list contacts - ┌ - │ 'jan_contact_uuid: 0eb6e965-f195-422a-b19f-7bc06b39973 - │ d' - │ 'maria_contact_uuid: 81057de0-59e6-4108-9c86-c3da1c28e - │ dc8' - └ - -↳ Create Test Applicatie Leverancier - POST http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module [201 Created, 2.37kB, 153ms] - ✓ Applicatie created - -↳ Create Test Applicatie Leverancier 2 - POST http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module [201 Created, 2.14kB, 150ms] - ✓ Applicatie 2 created - -↳ Create Test Dienst Leverancier - POST http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/dienst [201 Created, 1.87kB, 149ms] - ✓ Dienst created - -↳ Create Test Applicatie Gemeente - POST http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module [201 Created, 2.1kB, 142ms] - ✓ Gemeente applicatie created - -↳ Lookup Test Applicatie UUIDs - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=50&_search=Test Applicatie [200 OK, 2.2kB, 61ms] - ✓ Can list applicaties - ┌ - │ 'lever_app_uuid: 5c8609c8-6c82-4918-afa9-7151e9ab1f9d' - │ 'lever2_app_uuid: 3ccd9e93-6325-4205-980a-11dd1a3014b2 - │ ' - │ 'gemeente_app_uuid: 35b6f707-9e97-40c4-8ac5-2fa98f7d85 - │ 87' - └ - -↳ Seed Profile: jan.pietersen - PUT http://localhost:8080/index.php/apps/openregister/api/user/me [200 OK, 852B, 157ms] - ✓ Profile seeded for jan.pietersen@test.nl - -↳ Seed Profile: jan.vandeberg - PUT http://localhost:8080/index.php/apps/openregister/api/user/me [200 OK, 852B, 149ms] - ✓ Profile seeded for jan.vandeberg@testleverancier.nl - -↳ Seed Profile: maria.vanderberg - PUT http://localhost:8080/index.php/apps/openregister/api/user/me [200 OK, 852B, 165ms] - ✓ Profile seeded for maria.vanderberg@test.nl - -↳ Seed Profile: mark.jansen - PUT http://localhost:8080/index.php/apps/openregister/api/user/me [200 OK, 852B, 151ms] - ✓ Profile seeded for mark.jansen@test.nl - -↳ Seed Profile: linda.bakker - PUT http://localhost:8080/index.php/apps/openregister/api/user/me [200 OK, 852B, 158ms] - ✓ Profile seeded for linda.bakker@test.nl - -↳ Seed Profile: peter.vandijk - PUT http://localhost:8080/index.php/apps/openregister/api/user/me [200 OK, 852B, 159ms] - ✓ Profile seeded for peter.vandijk@test.nl - -↳ Seed Profile: sarah.devries - PUT http://localhost:8080/index.php/apps/openregister/api/user/me [200 OK, 852B, 160ms] - ✓ Profile seeded for sarah.devries@test.nl - -❏ 01 - Public API & Search / #85 - Public API accessible -↳ #85 AC1: Public API returns data - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5 [200 OK, 1.9kB, 58ms] - ✓ #85 AC1: Public API accessible and returns data - ✓ #85 AC2: Response contains results array - ✓ #85 AC6: API supports pagination params - -↳ #85 AC3: API returns organisaties - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?_limit=5 [200 OK, 1.68kB, 60ms] - ✓ #85 AC3: API returns organisaties - -❏ 01 - Public API & Search / #144 - Search functionality -↳ #144 AC1: Search returns results - GET http://localhost:8080/index.php/apps/opencatalogi/api/publications?_search=test&_limit=10 [404 Not Found, 765B, 49ms] - 1. #144 AC1: Search returns results - ✓ #144 AC5: Results contain beschrijvingKort - -↳ #144 AC8: Organisation names readable (not UUID) - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?_limit=10 [200 OK, 2kB, 58ms] - ✓ #144 AC8: Organisation names are readable text (not UUID) - -❏ 01 - Public API & Search / #315 - Leverancier filter -↳ #315 AC1: Leverancier filter only suppliers - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?type=Leverancier&_limit=50 [200 OK, 1.63kB, 61ms] - ✓ #315 AC1: Filter returns only leveranciers - -↳ #315 AC4: Applicatie shows correct supplier - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module/5c8609c8-6c82-4918-afa9-7151e9ab1f9d [200 OK, 1.25kB, 68ms] - ✓ #315 AC4: Applicatie has geregistreerdDoor field - -❏ 01 - Public API & Search / #346 - Pagination -↳ #346 AC1-2: Pagination returns different results per page - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=2&_page=1 [200 OK, 1.59kB, 61ms] - ✓ #346: Page 1 returns results - -↳ #346 AC1-2: Page 2 has different results - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=2&_page=2 [200 OK, 1.56kB, 61ms] - ✓ #346 AC1: Page 2 shows different results than page 1 - -❏ 01 - Public API & Search / #440 - Organisatietype filter -↳ #440: Filter by Gemeente - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?type=Gemeente&_limit=5 [200 OK, 1.53kB, 60ms] - ✓ #440: Filtering by Gemeente returns correct results - -↳ #440: Filter by Leverancier - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?type=Leverancier&_limit=5 [200 OK, 1.58kB, 58ms] - ✓ #440: Filtering by Leverancier returns correct results - -↳ #440: Filter by Samenwerking - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?type=Samenwerking&_limit=5 [200 OK, 1.44kB, 64ms] - ✓ #440: Filtering by Samenwerking returns correct results - -❏ 01 - Public API & Search / #345 - Diensten in search -↳ #345 AC5: Filter by dienst returns only diensten - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/dienst?_limit=10 [200 OK, 1.45kB, 63ms] - ✓ #345 AC5: Diensten endpoint returns results - -❏ 01 - Public API & Search / #343 - Type koppeling filter -↳ #343 AC3-4: Koppelingen endpoint returns data - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=10 [200 OK, 996B, 200ms] - ✓ #343: Koppelingen endpoint returns results - ✓ #343 AC5: Koppelingen have koppelingType attribute - -❏ 01 - Public API & Search / #344 - Reference component filter -↳ #344 AC4: Unauthenticated search works - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5 [200 OK, 1.9kB, 78ms] - ✓ #344 AC3: Works for unauthenticated users - -❏ 01 - Public API & Search / #85 - Public API (extended) -↳ #85 AC2: API returns pagination metadata - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5 [200 OK, 1.9kB, 68ms] - ✓ #85 AC2: Response includes pagination fields - -↳ #85 AC4: Public diensten endpoint accessible - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/dienst?_limit=5 [200 OK, 1.45kB, 62ms] - ✓ #85 AC4: Public diensten endpoint returns data - -↳ #85 AC5: Public koppelingen NOT accessible (RBAC) - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=5 [200 OK, 996B, 60ms] - ✓ #85 AC5: Koppelingen endpoint responds - -↳ #85 AC6: Public contactpersonen NOT accessible (RBAC) - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=5 [200 OK, 1.71kB, 58ms] - ✓ #85 AC6: Contactpersonen endpoint responds - -❏ 01 - Public API & Search / #144 - Search (extended) -↳ #144 AC2: Search by partial name - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_search=test&_limit=10 [200 OK, 2.21kB, 59ms] - ✓ #144 AC2: Partial name search returns results - -↳ #144 AC3: Search with _facets returns facet data - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5&_facets=geregistreerdDoor,type [200 OK, 2.11kB, 68ms] - ✓ #144 AC3: Facet data returned with results - ✓ #144 AC4: Facets contain expected fields - -↳ #144 AC5: Search with sort parameter - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=10&_sort=naam [200 OK, 2.2kB, 59ms] - ✓ #144 AC5: Sorted results returned - ✓ #280 AC1: Sort parameter accepted - ✓ #340 AC1: Default sort produces results - -↳ #144 AC6: Empty search returns all results - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5 [200 OK, 1.9kB, 59ms] - ✓ #144 AC6: No search filter returns results - -↳ #144 AC7: Search reduces result count - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_search=zaak&_limit=5 [200 OK, 1kB, 61ms] - ✓ #144 AC7: Filtered search has fewer results than unfiltered - -❏ 01 - Public API & Search / #346 - Pagination (extended) -↳ #346 AC3: Page offset works correctly - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5&_page=3 [200 OK, 1kB, 58ms] - ✓ #346 AC3: Page 3 accessible - ✓ #346 AC4: Total stays consistent across pages - -❏ 01 - Public API & Search / #278 - Filter label consistency -↳ #278 AC1: Filter values are readable strings - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1&_facets=geregistreerdDoor [200 OK, 1.65kB, 66ms] - ✓ #278 AC1: Facets returned with results - ✓ #278 AC2: geregistreerdDoor facet has buckets - -❏ 01 - Public API & Search / #349 - Standards filter readable -↳ #349 AC1: Standards facet returns readable names - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1&_facets=standaardversies [200 OK, 1.55kB, 67ms] - ✓ #349 AC1: Standards facet accessible - ✓ #349 AC2: Standards facet values not UUIDs - -❏ 01 - Public API & Search / #333 - UUID elimination in facets -↳ #333 AC1: Organisation facet has no UUIDs - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1&_facets=organisatie [200 OK, 1.55kB, 65ms] - ✓ #333 AC1: Organisation facet values are readable - -↳ #333 AC2: Type facet has no UUIDs - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1&_facets=type [200 OK, 1.56kB, 64ms] - ✓ #333 AC2: Type facet values are readable - -❏ 01 - Public API & Search / #398 - Leverancier filter readable names -↳ #398 AC1: Leverancier facet shows org names not UUIDs - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1&_facets=geregistreerdDoor [200 OK, 1.65kB, 65ms] - ✓ #398 AC1: geregistreerdDoor facet accessible - ✓ #398 AC2: Facet includes Leverancier bucket - -❏ 01 - Public API & Search / #144 - Search cards (extended) -↳ #144 AC9: Authenticated search has richer data - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_search=zaak&_limit=5 [200 OK, 1kB, 61ms] - ✓ #144 AC9: Authenticated search returns results with org context - -❏ 01 - Public API & Search / #280 - Sorting (extended) -↳ #280 AC2: Sort with pagination — page 1 vs page 2 consistent - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_sort=naam&_limit=5&_page=1 [200 OK, 1.92kB, 58ms] - ✓ #280 AC2: Sorted page 1 accessible - -↳ #280 AC3: Page 2 continues sort order - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_sort=naam&_limit=5&_page=2 [200 OK, 1.7kB, 62ms] - ✓ #280 AC3: Page 2 first item follows page 1 last item - -❏ 01 - Public API & Search / #340 - Sort after search -↳ #340 AC2: Sort applied after search filter - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_search=e&_sort=naam&_limit=10 [200 OK, 2.21kB, 60ms] - ✓ #340 AC2: Search + sort combined works - -❏ 01 - Public API & Search / #333 - UUID resolution specifics -↳ #333 AC3: Referentiecomponent facet no UUIDs - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1&_facets=referentieComponenten [200 OK, 1.56kB, 69ms] - ✓ #333 AC3: referentieComponenten facet accessible - ✓ #333 AC4: referentieComponenten buckets have readable labels - -❏ 01 - Public API & Search / #344 - Ref component filters (extended) -↳ #344 AC2: Filter by specific reference component - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5&_facets=referentieComponenten [200 OK, 2.04kB, 67ms] - ✓ #344 AC2: Reference component facet returns buckets - 2. #344 AC3: Multiple reference components available - -❏ 01 - Public API & Search / #345 - Diensten filter (extended) -↳ #345 AC1: Diensttype facet populated with values - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/dienst?_limit=1&_facets=diensttype [200 OK, 1.43kB, 65ms] - ✓ #345 AC2: Diensttype facet structure correct - ✓ #345 AC3: Diensten schema returns only diensten - -❏ 01 - Public API & Search / #346 - Pagination combos -↳ #346 AC5: Pagination with filter applied - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?geregistreerdDoor=Leverancier&_limit=5&_page=1 [200 OK, 1.66kB, 57ms] - ✓ #346 AC5: Pagination works with filter - ✓ #346 AC6: Pagination with sort maintains consistency - -❏ 01 - Public API & Search / #336 - Identificatie column -↳ #336 AC1: Objects have consistent identification - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=10 [200 OK, 2.19kB, 60ms] - ✓ #336 AC1: All applicaties have @self.id - -❏ 01 - Public API & Search / #398 - Leverancier filter (extended) -↳ #398 AC3: Facet resolves names inline (no extra calls) - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1&_facets=geregistreerdDoor [200 OK, 1.65kB, 68ms] - ✓ #398 AC3: Facet buckets have label field - ✓ #398 AC4: Facet values are human-readable supplier names - -❏ 01 - Public API & Search / #302 - Fields populated on load [CLOSED - regression] -↳ #302 AC1: Application fields populated after load - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=10 [200 OK, 2.19kB, 63ms] - ✓ #302 AC1: Applications have populated fields - -❏ 01 - Public API & Search / #358 - No concept in search [CLOSED - regression] -↳ #358 AC1: Public search does not return concept-status items - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=50 [200 OK, 2.19kB, 61ms] - ✓ #358 AC1: No concept-status items in public results - -❏ 01 - Public API & Search / #363 - Terminology consistency [CLOSED - regression] -↳ #363 AC1: API responses use consistent terminology - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1 [200 OK, 1.42kB, 64ms] - ✓ #363 AC1: No standalone catalogus in API response - ✓ #363 AC2: No space-separated software catalogus - -❏ 01 - Public API & Search / #374 - Standards readable names [CLOSED - regression] -↳ #374 AC1: Standards references use readable format - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=50&_fields=naam,standaardVersies,referentieComponenten [200 OK, 2.15kB, 67ms] - ✓ #374 AC1: Standards references accessible in readable format - -❏ 01 - Public API & Search -↳ #144 Leverancier count: migration check - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?organisatieType=Leverancier&_limit=1 [200 OK, 1.02kB, 63ms] - ✓ #144 Leverancier count matches migration source — at least 300 leveranciers exist - ✓ #144 Leverancier count is reasonable — not more than 500 - -↳ #349 Standaardversies facet: no UUIDs - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1&_facets=standaardversies [200 OK, 1.55kB, 71ms] - ✓ #349 Standaardversies facet returns readable names — no UUID labels in facet buckets - -↳ #398 Leveranciers facet: UUID check (re-opened) - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1&_facets=geregistreerdDoor [200 OK, 1.65kB, 71ms] - ✓ #398 Leveranciers filter shows readable names — no UUID labels in geregistreerdDoor facet - -↳ #443 AC3: Dienst API returns diensttypen as array - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/dienst?_limit=5 [200 OK, 1.45kB, 66ms] - ✓ #443 AC3: Dienst API returns diensttypen as array - -↳ #447 AC2: Search excludes concept organisations (unauthenticated) - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?_search=Theekop [200 OK, 1kB, 63ms] - ✓ #447 AC2: Concept organisations excluded from unauthenticated search - -↳ #447 AC3: Search excludes concept organisations (authenticated, non-admin) - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?_search=Theekop [200 OK, 1kB, 63ms] - ✓ #447 AC3: Concept organisations excluded from authenticated search - -↳ #453 AC1: Search with type=koppeling returns scoped facet counts - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_search=test&type=koppeling&_facets=type,geregistreerdDoor&_limit=5 [200 OK, 1.15kB, 71ms] - ✓ #453 AC1: Search with type filter returns 200 - ✓ #453 AC1: Response includes facets - ┌ - │ 'Facet "@self" sum: 0, total results: 0' - └ - ✓ #453 AC1: Facet counts are scoped to filtered results - -❏ 02 - RBAC & Organization Scoping / #105 - Aanbod-beheerder sees own org only -↳ #105 AC1: Jan sees only own org applicaties - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=50 [200 OK, 2.19kB, 60ms] - ✓ #105 AC1: Aanbod-beheerder sees applicaties - ✓ #105 AC5: Results include user's org and public Leverancier modules - -↳ #105 AC2: Admin sees MORE applicaties than jan - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1 [200 OK, 1.42kB, 64ms] - ✓ #105 AC2: Admin sees applicaties - -❏ 02 - RBAC & Organization Scoping / #300 - Application count matches org -↳ #300 AC1-4: Jan's app count is correct - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=50 [200 OK, 2.19kB, 62ms] - ✓ #300 AC4: Returned objects are valid and accessible - -❏ 02 - RBAC & Organization Scoping / #307 - Services scoped to org -↳ #307 AC1-2: Jan's diensten scoped to own org - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/dienst?_limit=50 [200 OK, 1.45kB, 63ms] - ✓ #307 AC1: Diensten are accessible to user - -❏ 02 - RBAC & Organization Scoping / #394 - Contact person visibility -↳ #394 AC1: Public applicatie list accessible - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=3 [200 OK, 1.73kB, 66ms] - ✓ #394 AC1: Public applicatie list accessible - ✓ #394 AC2: Public results contain applicatie data - -↳ #394 AC6: Authenticated sees contacts - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=10 [200 OK, 2kB, 67ms] - ✓ #394 AC6: Authenticated user can see contacts - -❏ 02 - RBAC & Organization Scoping / #414 - Deelnemers read access -↳ #414: Deelnemers endpoint accessible - GET http://localhost:8080/index.php/apps/softwarecatalog/api/aangeboden-gebruik/deelnemers [200 OK, 880B, 184ms] - ✓ #414: Deelnemers endpoint accessible - -❏ 02 - RBAC & Organization Scoping / #315 - Leverancier RBAC scoping (extended) -↳ #315 AC2: Public sees only leverancier-registered apps - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=10 [200 OK, 2.19kB, 61ms] - ✓ #315 AC2: Public applicaties accessible - -↳ #315 AC3: Admin sees ALL applicaties (not just supplier) - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5 [200 OK, 1.9kB, 60ms] - ✓ #315 AC3: Admin sees apps from all geregistreerdDoor types - -↳ #315 AC5: Admin sees more apps than public - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5 [200 OK, 1.9kB, 59ms] - ✓ #315 AC5: Admin total exceeds or equals public total - -❏ 02 - RBAC & Organization Scoping / #225 - Organisation visibility -↳ #225 AC1: Public can see organisations - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?_limit=5 [200 OK, 1.68kB, 61ms] - ✓ #225 AC1: Public can access organisations - ✓ #225 AC2: Public organisations have limited fields - -↳ #225 AC3: Authenticated sees more org fields - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?_limit=5 [200 OK, 1.68kB, 60ms] - ✓ #225 AC3: Authenticated org listing accessible - -❏ 02 - RBAC & Organization Scoping / #440 - Organisation type filter (extended) -↳ #440 AC4: Filter by Community organisations - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?type=Community&_limit=10 [200 OK, 1kB, 60ms] - ✓ #440 AC4: Community filter returns only community orgs - -❏ 02 - RBAC & Organization Scoping / #315 - RBAC supplier display (deep) -↳ #315 AC6: Public apps show supplier in geregistreerdDoor - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=10 [200 OK, 2.19kB, 72ms] - ✓ #315 AC6: Public apps have geregistreerdDoor field - 3. #315 AC7: geregistreerdDoor is readable string not UUID - -↳ #315 AC8: Single app detail shows correct supplier - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1 [200 OK, 1.42kB, 67ms] - ✓ #315 AC8: App detail has supplier info - -❏ 02 - RBAC & Organization Scoping / #394 - Contactpersonen RBAC (extended) -↳ #394 AC2: Public cannot see contactpersoon details - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=5 [200 OK, 1.71kB, 65ms] - ✓ #394 AC2: Public contactpersonen access limited - -↳ #394 AC3: Admin sees all contactpersonen - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=5 [200 OK, 1.71kB, 59ms] - ✓ #394 AC3: Admin can list all contactpersonen - -↳ #394 AC4: User sees scoped contactpersonen - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=50 [200 OK, 2.06kB, 61ms] - ✓ #394 AC4: User contactpersonen list accessible - -❏ 02 - RBAC & Organization Scoping / #383 - Export row scoping [CLOSED - regression] -↳ #383 AC1: Export endpoint respects limit parameter - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5 [200 OK, 1.9kB, 60ms] - ✓ #383 AC1: Export scoping — limit parameter restricts results - -❏ 02 - RBAC & Organization Scoping -↳ #455 AC1: Public API returns application koppelingen - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=10 [200 OK, 996B, 61ms] - ✓ #455 AC1: Public koppelingen endpoint returns 200 - 4. #455 AC1: Public koppelingen returns results - -↳ #455 AC2: Public API returns application contactpersonen - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=10 [200 OK, 2kB, 60ms] - ✓ #455 AC2: Public contactpersonen endpoint returns 200 - ┌ - │ 'Public contactpersonen returned 10 results' - └ - ✓ #455 AC2: Public contactpersonen returns results - -❏ 03 - Object CRUD / #6 - Standards management -↳ #6 AC2: PATCH applicatie with standaardversies - PATCH http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module/5c8609c8-6c82-4918-afa9-7151e9ab1f9d [200 OK, 1.45kB, 198ms] - ✓ #6 AC2: Can set compliance status (standaardversies) - -↳ #6 AC6: Standards persist after saving - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module/5c8609c8-6c82-4918-afa9-7151e9ab1f9d?_empty=true [200 OK, 1.45kB, 67ms] - ✓ #6 AC5: Standards visible on detail - ✓ #6 AC8: Standards field is array or null - -❏ 03 - Object CRUD / #65 - Contact person management -↳ #65 AC2: Create contact person with required fields - POST http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon [500 Internal Server Error, 3.37kB, 94ms] - 5. #65 AC2: Contact person created with required fields - -↳ #65 Lookup: Find test contact UUID - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_search=Test Contact&_limit=5 [200 OK, 1.29kB, 57ms] - ┌ - │ 'Set test_contact_uuid to: a54b02f7-1ae6-4cb5-b0e1-fb1 - │ 16b897e0d' - └ - -↳ #65 AC8: Editing contact person updates data - PATCH http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon/a54b02f7-1ae6-4cb5-b0e1-fb116b897e0d [500 Internal Server Error, 3.37kB, 154ms] - 6. #65 AC8: Editing updates data - -↳ #65 AC8: Verify edit persisted - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon/a54b02f7-1ae6-4cb5-b0e1-fb116b897e0d [200 OK, 1.16kB, 67ms] - ✓ #65 AC8: Edit reflected in GET - -↳ #65 AC11: Only user's org contacts shown - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=50 [200 OK, 2.17kB, 57ms] - ✓ #65 AC11: User can access contact persons - -❏ 03 - Object CRUD / #73 - Multiple contact persons -↳ #73 AC1: Create second contact person - POST http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon [500 Internal Server Error, 3.37kB, 92ms] - 7. #73 AC1: Second contact person created (status 201) - 8. #73 AC12: Creating second contact succeeds - -↳ #73 AC8: Contact readable names - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=10 [200 OK, 2kB, 56ms] - ✓ #73 AC8: Contact names are readable (not UUID) - -❏ 03 - Object CRUD / #365 - Edit contact person (no 400) -↳ #365 AC1: Edit contact saves without 400 - PATCH http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon/0eb6e965-f195-422a-b19f-7bc06b39973d [200 OK, 1.31kB, 254ms] - ✓ #365 AC1: Editing does NOT produce 400 error - -↳ #365 AC3: Changes persisted - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon/0eb6e965-f195-422a-b19f-7bc06b39973d [200 OK, 1.19kB, 68ms] - ✓ #365 AC3: Changes visible after saving - -❏ 03 - Object CRUD / #400 - Koppeling save -↳ #400 AC1-2: Create koppeling without error - POST http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling [400 Bad request, 797B, 147ms] - ✓ #400 AC2: Koppeling saved without error - -↳ #400 Lookup: Find test koppeling UUID - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_search=Test Koppeling&_limit=5 [200 OK, 1.01kB, 59ms] - -↳ #400 AC3: Koppeling appears in overview - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_search=Test Koppeling&_limit=20 [200 OK, 1.01kB, 59ms] - 9. #400 AC3: Koppeling visible in list - -↳ #400 AC4: Edit and re-save koppeling - PATCH http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling/{{test_koppeling_uuid}} [404 Not Found, 764B, 59ms] - 10. #400 AC4: Re-save works without errors - -↳ #400 AC5: Data persisted correctly - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling/{{test_koppeling_uuid}} [404 Not Found, 757B, 64ms] - 11. #400 AC5: Data persisted correctly - -❏ 03 - Object CRUD / #382 - Compliance link URLs -↳ #382 AC2-3: URL handling for standards - PATCH http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module/5c8609c8-6c82-4918-afa9-7151e9ab1f9d [200 OK, 1.47kB, 141ms] - ✓ #382: URL field saved correctly - -❏ 03 - Object CRUD / #437 - Imported leverancier koppeling -↳ #437 AC1-2: Imported user creates koppeling - POST http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling [400 Bad request, 797B, 61ms] - ✓ #437 AC1: Leverancier user can create koppeling - ✓ #437 AC2: No 400 error - -❏ 03 - Object CRUD / #6 - Standards management (extended) -↳ #6 AC1: Standards section in application data - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5 [200 OK, 1.9kB, 58ms] - ✓ #6 AC1: Applications have standaardversies field - -↳ #6 AC5: Standards visible on public detail page - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1 [200 OK, 1.42kB, 60ms] - ✓ #6 AC5: Public applicatie accessible - -↳ #6 AC9: Standards at version level - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module/d5f37af2-3947-4027-9b1b-a1c4e47d8f91 [200 OK, 1.28kB, 72ms] - ✓ #6 AC9: Single application detail accessible - -❏ 03 - Object CRUD / #378 - Standards persistence after edit -↳ #378 AC1: GET app before edit (capture state) - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1 [200 OK, 1.42kB, 58ms] - ✓ #378 AC1: Fetch application for edit test - -❏ 03 - Object CRUD / #370 - Applications table columns -↳ #370 AC1: Application objects have expected fields - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5 [200 OK, 1.9kB, 60ms] - ✓ #370 AC1: Applications have naam field - ✓ #370 AC2: Applications have geregistreerdDoor field - ✓ #370 AC3: Application naam is a non-empty string - -❏ 03 - Object CRUD / #373 - App-Service bidirectional links -↳ #373 AC1: Diensten have applicatie references - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/dienst?_limit=5 [200 OK, 1.45kB, 56ms] - ✓ #373 AC1: Diensten data accessible - -❏ 03 - Object CRUD / #375 - SaaS application versions -↳ #375 AC1: Applications have type field - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=10 [200 OK, 2.21kB, 58ms] - ✓ #375 AC1: Applications have type information - -❏ 03 - Object CRUD / #405 - Application deletion: dependency check -↳ #405 AC1: Application with diensten has relations - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1 [200 OK, 1.42kB, 55ms] - ✓ #405 AC1: Can fetch application for dependency analysis - -❏ 03 - Object CRUD / #436 - Public page no 401 errors -↳ #436 AC1: Public applicatie list returns 200 - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=10 [200 OK, 2.21kB, 60ms] - ✓ #436 AC1: Public applicatie list returns 200 (not 401) - ✓ #436 AC2: Public response has results array - -↳ #436 AC3: Public diensten list returns 200 - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/dienst?_limit=10 [200 OK, 1.45kB, 58ms] - ✓ #436 AC3: Public diensten list returns 200 (not 401) - -↳ #436 AC4: Public organisatie list returns 200 - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?_limit=10 [200 OK, 2kB, 63ms] - ✓ #436 AC4: Public organisatie list returns 200 (not 401) - -❏ 03 - Object CRUD / #439 - Overview error handling -↳ #439 AC1: Applicatie overview loads without error - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=20 [200 OK, 2.21kB, 59ms] - ✓ #439 AC1: Overview returns 200 - ✓ #439 AC2: Overview has valid JSON structure - ✓ #439 AC3: No empty results when data exists - -❏ 03 - Object CRUD / #441 - Version mapping for imports -↳ #441 AC1: Applications have version information - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=10 [200 OK, 2.21kB, 62ms] - ✓ #441 AC1: Applications accessible with version data - -❏ 03 - Object CRUD / #442 - Document filename preservation -↳ #442 AC1: Application documents accessible - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5&_fields=naam,documenten [200 OK, 1.83kB, 63ms] - ✓ #442 AC1: Applications with document data accessible - -❏ 03 - Object CRUD / #430 - Compliance column removed -↳ #430 AC1: Application list response structure - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5 [200 OK, 1.9kB, 59ms] - ✓ #430 AC1: Applications list returns valid data - -❏ 03 - Object CRUD / #312 - Koppeling auto-naming -↳ #312 AC1: Koppelingen have readable names - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=10 [200 OK, 996B, 59ms] - ✓ #312 AC1: Koppelingen have naam field - ✓ #312 AC2: Koppeling names are non-empty - 12. #312 AC3: Most koppelingen have non-UUID names - -❏ 03 - Object CRUD / #354 - Service search partial match -↳ #354 AC1: Partial name search works for diensten - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/dienst?_search=dienst&_limit=10 [200 OK, 1.46kB, 60ms] - ✓ #354 AC1: Partial search on diensten works - -↳ #354 AC2: Partial name search on applicaties - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_search=zaak&_limit=10 [200 OK, 1.01kB, 60ms] - ✓ #354 AC2: Substring search returns matching results - -❏ 03 - Object CRUD / #314 - Koppeling wizard org-scoped search -↳ #314 AC1: User's org applications accessible - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=10 [200 OK, 2.21kB, 72ms] - ✓ #314 AC1: User can list applications for koppeling wizard - -↳ #314 AC2: User's apps are org-scoped - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=50 [200 OK, 2.21kB, 64ms] - ✓ #314 AC2: Authenticated user can list applications - -❏ 03 - Object CRUD / #371 - Compliance column UUID (deprecated) -↳ #371 AC1: Compliance column no longer in list response - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5 [200 OK, 1.9kB, 70ms] - ✓ #371 AC1: Application list valid (compliance column removed per #430) - -❏ 03 - Object CRUD / #65 - User management (deep) -↳ #65 AC3: Contact person has organisatie field - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_search=Jan Pietersen&_limit=5 [200 OK, 1.43kB, 69ms] - ✓ #65 AC3: Contact persons have organisatie reference - ✓ #65 AC4: Contact persons have rollen field - ✓ #65 AC5: Contact persons have e-mailadres field - ✓ #65 AC6: Contact persons have isAanspreekpunt field - -❏ 03 - Object CRUD / #73 - Contact persons (deep) -↳ #73 AC3: Contact list as different user shows different contacts - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=50 [200 OK, 2.28kB, 65ms] - ✓ #73 AC3: Maria can list contacts - ✓ #73 AC4: Multiple contacts can exist - -❏ 03 - Object CRUD / #312 - Koppeling naming (deep) -↳ #312 AC4: Koppelingen with names retain them - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=20 [200 OK, 997B, 64ms] - 13. #312 AC4: Non-empty koppeling names exist - 14. #312 AC5: Koppelingen with moduleA have populated field - -❏ 03 - Object CRUD / #314 - Koppeling wizard search (deep) -↳ #314 AC3: Search apps by name in wizard context - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_search=test&_limit=10 [200 OK, 2.22kB, 69ms] - ✓ #314 AC3: Search within wizard context works - ✓ #314 AC4: Search returns results array - -❏ 03 - Object CRUD / #354 - App search (deep) -↳ #354 AC3: Search fetches sufficient results for dropdown - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_search=a&_limit=40 [200 OK, 2.22kB, 79ms] - ✓ #354 AC3: Search with limit=40 returns up to 40 results - ✓ #354 AC4: Partial/substring matching works - -❏ 03 - Object CRUD / #365 - Contact edit no role (deep) -↳ #365 AC4: Contact without rol field saves OK - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=5 [200 OK, 1.71kB, 80ms] - ✓ #365 AC4: Contacts without rol still valid - -❏ 03 - Object CRUD / #373 - App-Service bidirectional (deep) -↳ #373 AC2: Diensten reference applicaties - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/dienst?_limit=10 [200 OK, 1.45kB, 63ms] - ✓ #373 AC2: Diensten have data structure for app linking - ✓ #377 AC1: Diensten schema accessible for relationship check - -❏ 03 - Object CRUD / #375 - SaaS versions (deep) -↳ #375 AC2: Applications have type field for version categorization - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5&_facets=type [200 OK, 2.04kB, 73ms] - ✓ #375 AC2: Type facet available for version categorization - -❏ 03 - Object CRUD / #378 - Standards persistence (deep) -↳ #378 AC2: GET and verify field structure before edit - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1&_fields=naam,standaardversies [200 OK, 1.39kB, 62ms] - ✓ #378 AC2: Application has standards-related fields - ✓ #442 AC2: Application fields accessible for document check - -❏ 03 - Object CRUD / #405 - Deletion flow (deep) -↳ #405 AC2: Application relations can be checked before delete - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=5 [200 OK, 996B, 63ms] - ✓ #405 AC2: Can check koppelingen for dependency analysis - -❏ 03 - Object CRUD / #439 - Error handling (deep) -↳ #439 AC4: Empty search doesn't cause errors - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_search=zzzznonexistent&_limit=5 [200 OK, 1.01kB, 64ms] - ✓ #439 AC4: No-match search returns empty array (no error) - -❏ 03 - Object CRUD / #368 - Koppeling richting validation [CLOSED - regression] -↳ #368 AC1: Koppelingen have valid richting values - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=20 [200 OK, 997B, 60ms] - ✓ #368 AC1: Richting field not default Richting placeholder - ✓ #368 AC2: Valid richting values only - ✓ #368 AC3: Existing koppelingen without richting handled gracefully - -❏ 03 - Object CRUD / #369 - Koppeling creation visibility [CLOSED - regression] -↳ #369 AC1: Created koppelingen visible in list - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=5&_sort=@self.updated [200 OK, 1.01kB, 61ms] - 15. #369 AC1: Recently created koppelingen appear in list - ✓ #369 AC2: Koppelingen have application name and type fields - -❏ 03 - Object CRUD / #384 - Wizard edit pre-fill [CLOSED - regression] -↳ #384 AC1: GET returns all fields for edit pre-fill - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1 [200 OK, 1.42kB, 62ms] - ✓ #384 AC1: Application GET returns full data for editing - -❏ 03 - Object CRUD / #403 - Delete dependency check [CLOSED - regression] -↳ #403 AC1: Koppelingen reference modules (dependency chain exists) - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=10 [200 OK, 996B, 61ms] - 16. #403 AC1: Dependency chain exists for delete prevention - -❏ 03 - Object CRUD -↳ #450 AC3: No legacy publish-status flags on organisations - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?_limit=10 [200 OK, 2kB, 60ms] - ✓ #450 AC3: No publish-related status flags on organisations - -↳ #452 AC1: Applicatie overview returns correct koppelingen count - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_search=Makelaarsuite&_limit=1&_extend[]=koppelingen [200 OK, 1.02kB, 59ms] - ✓ #452 AC1: Applicatie endpoint returns 200 - 17. #452 AC1: Applicatie has koppelingen array via _extend - -❏ 04 - Data Migration & Import / #23 - Migration data integrity -↳ #23 AC2: Applications visible and searchable - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_search=Test&_limit=10 [200 OK, 2.22kB, 61ms] - ✓ #23 AC2: Applications searchable - -↳ #23 AC9: Organisation names display correctly - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?_limit=10 [200 OK, 2kB, 58ms] - ✓ #23 AC9: Org names are text (not UUID) - -❏ 04 - Data Migration & Import / #435 - Applicatie count per leverancier -↳ #435 AC6: Auth and unauth show same count - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1 [200 OK, 1.42kB, 61ms] - ✓ #435: Unauth app count - -↳ #435 AC6: Auth count comparison - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1 [200 OK, 1.42kB, 56ms] - ✓ #435 AC6: Auth and unauth counts comparable - -❏ 04 - Data Migration & Import / #23 - Migration integrity (extended) -↳ #23 AC1: Organisations from old system present - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?_limit=5 [200 OK, 1.68kB, 63ms] - ✓ #23 AC1: Organisations present in new system - -↳ #23 AC3: Diensten from old system present - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/dienst?_limit=5 [200 OK, 1.45kB, 74ms] - ✓ #23 AC3: Diensten present in new system - -↳ #23 AC4: Koppelingen from old system present - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=5 [200 OK, 996B, 87ms] - 18. #23 AC4: Koppelingen present in new system - -↳ #23 AC5: Contactpersonen present - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=5 [200 OK, 1.71kB, 82ms] - ✓ #23 AC5: Contactpersonen present in new system - -❏ 04 - Data Migration & Import / #435 - Import counts (extended) -↳ #435 AC1: Leverancier app counts consistent - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?geregistreerdDoor=Leverancier&_limit=1 [200 OK, 1.38kB, 88ms] - ✓ #435 AC1: Leverancier apps count > 0 - -❏ 04 - Data Migration & Import / #433 - Import koppeling field mapping -↳ #433 AC1: Koppelingen have expected fields populated - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=10 [200 OK, 996B, 60ms] - ✓ #433 AC1: Koppelingen have moduleA field - ✓ #433 AC2: Koppelingen have moduleB field - -❏ 04 - Data Migration & Import / #435 - Import counts (deep) -↳ #435 AC2: Leverancier filter returns expected apps - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?geregistreerdDoor=Leverancier&_limit=1 [200 OK, 1.38kB, 63ms] - 19. #435 AC2: Multiple leverancier apps imported - 20. #435 AC3: Import total is substantial - -❏ 04 - Data Migration & Import / #411 - Import data quality -↳ #411 AC1: Modules have beschrijvingKort populated - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=10 [200 OK, 2.21kB, 64ms] - ✓ #411 AC1: Some applicaties have beschrijvingKort - ✓ #411 AC2: Organisaties have website field - -↳ #411 AC3: Organisaties have website populated - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?_limit=10 [200 OK, 2kB, 75ms] - ✓ #411 AC3: Organisaties accessible - ✓ #411 AC4: Some organisaties have website - -❏ 04 - Data Migration & Import / #437 - Imported leverancier koppeling (deep) -↳ #437 AC3: Koppelingen have type field - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=10 [200 OK, 996B, 63ms] - ✓ #437 AC3: Koppelingen have type field populated - ✓ #437 AC4: Koppelingen have status field - -❏ 04 - Data Migration & Import / #355 - Export readable names [CLOSED - regression] -↳ #355 AC1: Application data contains readable geregistreerdDoor - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=20 [200 OK, 2.21kB, 63ms] - 21. #355 AC1: geregistreerdDoor is human-readable in API response - ✓ #355 AC2: Application names are human-readable - ✓ #355 AC3: Applications have display names for export - ✓ #355 AC4: Data has both IDs and readable fields for re-import - -❏ 04 - Data Migration & Import / #385 - Version count display [CLOSED - regression] -↳ #385 AC1: Applications have version-related fields - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=20&_fields=naam,type,standaardVersies [200 OK, 2.15kB, 71ms] - ✓ #385 AC1: Applications accessible with version fields - -❏ 05 - ArchiMate & Views / #148 - ArchiMate API endpoints -↳ #148 AC1: Views endpoint accessible - GET http://localhost:8080/index.php/apps/openregister/api/objects/vng-gemma/view?publiceren=Softwarecatalogus en GEMMA Online en redactie&_unset=xml&_limit=100 [200 OK, 1.04kB, 190ms] - ✓ #148 AC1: Views endpoint returns 200 - ✓ #148: Views returns results array - 22. #148: Views count > 0 - 23. #148: Response includes total count - -↳ #148 AC2: Single view endpoint - GET http://localhost:8080/index.php/apps/openregister/api/objects/vng-gemma/view/{{first_view_id}} [404 Not Found, 757B, 60ms] - ✓ #148: Single view accessible - -❏ 05 - ArchiMate & Views / #160 - View API performance -↳ #160 AC5: View API response time <500ms - GET http://localhost:8080/index.php/apps/openregister/api/objects/vng-gemma/view?publiceren=Softwarecatalogus en GEMMA Online en redactie&_unset=xml&_limit=100 [200 OK, 1.04kB, 60ms] - ✓ #160 AC5: Backend API returns view data <500ms - ✓ #160: Views response contains results array - -❏ 05 - ArchiMate & Views / #393 - Schema/OAS/export -↳ #393 AC5: No 500 errors on voorzieningenregister - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1 [200 OK, 1.42kB, 64ms] - ✓ #393 AC5: No 500 errors - -❏ 05 - ArchiMate & Views / #413 - View filtering -↳ #413 AC1: Views endpoint returns filtered views - GET http://localhost:8080/index.php/apps/openregister/api/objects/vng-gemma/view?publiceren=Softwarecatalogus en GEMMA Online en redactie&_unset=xml&_limit=100 [200 OK, 1.04kB, 60ms] - 24. #413 AC1: Views endpoint returns results - ✓ #413: Filter reduces result count (publiceren filter active) - ✓ #413: Filtered views have no xml field (_unset=xml working) - -❏ 05 - ArchiMate & Views / #148 - ArchiMate extended endpoints -↳ #148 AC3: Elements endpoint accessible - GET http://localhost:8080/index.php/apps/openregister/api/objects/vng-gemma/element?_limit=5 [200 OK, 993B, 256ms] - ✓ #148 AC3: Elements endpoint returns data - ✓ #148 AC4: Elements have type information - -↳ #148 AC5: Relations endpoint accessible - GET http://localhost:8080/index.php/apps/openregister/api/objects/vng-gemma/relation?_limit=5 [200 OK, 992B, 144ms] - ✓ #148 AC5: Relations endpoint returns data - -❏ 05 - ArchiMate & Views / #160 - View performance (extended) -↳ #160 AC1: View payload size reasonable with _unset=xml - GET http://localhost:8080/index.php/apps/openregister/api/objects/vng-gemma/view?publiceren=Softwarecatalogus en GEMMA Online en redactie&_unset=xml&_limit=100 [200 OK, 1.04kB, 58ms] - ✓ #160 AC1: Filtered views payload size < 500KB - -❏ 05 - ArchiMate & Views / #148 - ArchiMate API (deep) -↳ #148 AC6: OpenAPI docs accessible - GET http://localhost:8080/index.php/apps/openregister/api/registers [200 OK, 1.7kB, 58ms] - ✓ #148 AC6: Registers endpoint lists available registers - -↳ #148 AC7: Elements have type and name properties - GET http://localhost:8080/index.php/apps/openregister/api/objects/vng-gemma/element?_limit=3 [200 OK, 994B, 62ms] - ✓ #148 AC7: Elements have identifier property - ✓ #148 AC8: Elements omit empty properties - -❏ 05 - ArchiMate & Views / #231 - AMEF export -↳ #231 AC1: Views available for export - GET http://localhost:8080/index.php/apps/openregister/api/objects/vng-gemma/view?_limit=5 [200 OK, 991B, 59ms] - 25. #231 AC1: Views available for AMEF export - ✓ #231 AC2: Views have xml field for export - ✓ #231 AC3: Elements available for export relationship check - -❏ 06 - User Profile & Authentication / #266 - /api/me endpoint -↳ #266 AC3-5: /api/me returns user data - GET http://localhost:8080/index.php/apps/softwarecatalog/api/me [200 OK, 1.11kB, 51ms] - ✓ #266 AC5: /api/me returns correct personal data - -↳ #266: OpenRegister /api/user/me - GET http://localhost:8080/index.php/apps/openregister/api/user/me [200 OK, 1.84kB, 56ms] - ✓ #266: User/me returns profile data - -❏ 06 - User Profile & Authentication / #286 - Password change -↳ #286 AC4: Login with current password succeeds - GET http://localhost:8080/index.php/apps/openregister/api/user/me [200 OK, 1.84kB, 51ms] - ✓ #286 AC4: User can log in with password - ✓ #286 AC4: Server responds with 2xx - -❏ 06 - User Profile & Authentication / #352 - Name update sync -↳ #352 AC1: Update user name - PUT http://localhost:8080/index.php/apps/openregister/api/user/me [200 OK, 852B, 152ms] - ✓ #352: Name update succeeds - -↳ #352 AC3: Verify name persisted - GET http://localhost:8080/index.php/apps/openregister/api/user/me [200 OK, 1.83kB, 51ms] - ✓ #352 AC3: No cache clearing needed - name appears - -❏ 06 - User Profile & Authentication / #353 - Functie update -↳ #353 AC1: Update functie - PUT http://localhost:8080/index.php/apps/openregister/api/user/me [200 OK, 852B, 149ms] - ✓ #353: Functie update succeeds - -↳ #353 AC1: Verify functie update - GET http://localhost:8080/index.php/apps/openregister/api/user/me [200 OK, 1.83kB, 53ms] - ✓ #353 AC1: Updated functie shows immediately - -❏ 06 - User Profile & Authentication / #396 - Nextcloud version check -↳ #396 AC1: Nextcloud version check - GET http://localhost:8080/status.php [200 OK, 865B, 26ms] - ✓ #396 AC1: Nextcloud is running - ┌ - │ 'NC Version: 32.0.5' - └ - ✓ #396 AC4: Version info available - -❏ 06 - User Profile & Authentication / #266 - User profile (extended) -↳ #266 AC1: /api/me returns firstName - GET http://localhost:8080/index.php/apps/softwarecatalog/api/me [200 OK, 1.11kB, 55ms] - ✓ #266 AC1: /api/me returns firstName field - ✓ #266 AC2: /api/me returns email - -❏ 06 - User Profile & Authentication / #352 - Name sync (extended) -↳ #352 AC2: Updated name reflected in contact person - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=50 [200 OK, 2.28kB, 61ms] - ✓ #352 AC2: Contact persons accessible for sync check - -❏ 06 - User Profile & Authentication / #353 - Function field persistence -↳ #353 AC1: /api/user/me has functie field - GET http://localhost:8080/index.php/apps/softwarecatalog/api/me [200 OK, 1.11kB, 60ms] - ✓ #353 AC1: /api/me includes functie - -❏ 06 - User Profile & Authentication / #431 - Registration tussenvoegsel -↳ #431 AC1: /api/user/me has middleName field - GET http://localhost:8080/index.php/apps/softwarecatalog/api/me [200 OK, 1.11kB, 56ms] - ✓ #431 AC1: /api/me supports middleName (tussenvoegsel) - -❏ 06 - User Profile & Authentication / #364 - Contact person email -↳ #364 AC1: Contact persons have email field - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=10 [200 OK, 1.97kB, 65ms] - ✓ #364 AC1: Contact persons accessible - ✓ #364 AC2: Contact persons with email have non-empty value - -❏ 06 - User Profile & Authentication / #365 - Contact edit (extended) -↳ #365 AC2: Contact person has rol field - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=5 [200 OK, 1.71kB, 60ms] - ✓ #365 AC2: Contact persons have expected structure - -❏ 06 - User Profile & Authentication / #434 - First account contact auto-creation -↳ #434 AC1: Contact persons exist for test users - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=50 [200 OK, 2.28kB, 61ms] - ✓ #434 AC1: Contact persons list has entries - -❏ 06 - User Profile & Authentication / #57 - Samenwerking user login -↳ #57 AC1: Samenwerking user can access API - GET http://localhost:8080/index.php/apps/softwarecatalog/api/me [200 OK, 1.11kB, 61ms] - ✓ #57 AC1: Samenwerking user can access /api/me - ✓ #57 AC2: No server error for samenwerking user - -❏ 06 - User Profile & Authentication / #169 - Organisation activation (deep) -↳ #169 AC3: Organisations have status field - GET http://localhost:8080/index.php/apps/openregister/api/organisations [200 OK, 1.59kB, 61ms] - ✓ #169 AC3: NC organisations have status info - ✓ #169 AC4: Organisation objects have name and uuid - -❏ 06 - User Profile & Authentication / #339 - User activation (deep) -↳ #339 AC2: OCS users list returns expected users - GET http://localhost:8080/ocs/v2.php/cloud/users?format=json [200 OK, 929B, 64ms] - ✓ #339 AC2: Users list has multiple entries - ✓ #339 AC3: User list response has OCS format - -❏ 06 - User Profile & Authentication / #391 - Imported user activation (deep) -↳ #391 AC2: Contact persons accessible for activation check - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=20 [200 OK, 2.28kB, 86ms] - ✓ #391 AC2: Contact persons list for activation candidates - ✓ #391 AC3: Contacts have expected fields for activation - ✓ #417 AC1: Contact persons have email for validation - ✓ #417 AC2: Contact schema supports email field - -❏ 06 - User Profile & Authentication / #392 - Contact conversion (deep) -↳ #392 AC3: Organisation has users for conversion context - GET http://localhost:8080/index.php/apps/openregister/api/organisations [200 OK, 1.59kB, 63ms] - ✓ #392 AC3: Organisations accessible for user conversion - ✓ #392 AC4: Organisation structure supports user management - -❏ 06 - User Profile & Authentication / #366 - Role assignment -↳ #366 AC1: Contact persons have consistent rol field - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=10 [200 OK, 1.97kB, 71ms] - ✓ #366 AC1: Contacts have rol field for role checking - ✓ #366 AC2: Role values are valid strings - -❏ 06 - User Profile & Authentication / #434 - First account contact (deep) -↳ #434 AC2: Contact created for account holder - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=50 [200 OK, 2.28kB, 69ms] - ✓ #434 AC2: Contacts list includes account holder contacts - -❏ 06 - User Profile & Authentication -↳ #65 Email edit: no 400 error - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=1&_fields=id,e-mailadres [200 OK, 1.26kB, 68ms] - ✓ #65 Email edit does not produce 400 error — contactpersoon endpoint returns 200 - ✓ #65 Email field accepts valid email format — e-mailadres is string or null - -↳ #65 Username-email sync check - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=5&_fields=id,e-mailadres,@self [200 OK, 1.59kB, 67ms] - ✓ #65 Username equals email — contact persons have consistent email fields - -❏ 07 - Export & Reporting / #15 - CSV export org scoping -↳ #15 AC5: Export with aanbod-beheerder - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module/export?_format=csv [200 OK, 8.86kB, 204ms] - ✓ #15: Export endpoint accessible - -❏ 07 - Export & Reporting / #15 - Export (extended) -↳ #15 AC2: Export as gebruik-beheerder - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module/export?_format=csv [200 OK, 8.86kB, 86ms] - ✓ #15 AC2: Export accessible for gebruik-beheerder - -↳ #15 AC4: Export scoped to user org - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module/export?_format=csv [200 OK, 8.86kB, 84ms] - ✓ #15 AC4: Export for jan accessible - -❏ 07 - Export & Reporting / #393 - Schema/OAS (extended) -↳ #393 AC1: Register schemas accessible - GET http://localhost:8080/index.php/apps/openregister/api/registers [200 OK, 1.69kB, 52ms] - ✓ #393 AC1: Registers endpoint returns data - -↳ #393 AC2: Schemas endpoint accessible - GET http://localhost:8080/index.php/apps/openregister/api/schemas [200 OK, 17.33kB, 66ms] - ✓ #393 AC2: Schemas endpoint returns data - -❏ 07 - Export & Reporting / #393 - Export (deep) -↳ #393 AC3: Export endpoint for diensten - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/dienst/export?_format=csv [200 OK, 7.95kB, 71ms] - ✓ #393 AC3: Diensten export accessible - ✓ #393 AC4: Export per schema works - -❏ 07 - Export & Reporting / #380 - Standards count consistency [CLOSED - regression] -↳ #380 AC1: Application count consistent across queries - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1 [200 OK, 1.42kB, 61ms] - ✓ #380 AC1: Total count available for consistency checking - -↳ #380 AC2: Repeated query returns same total - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=1 [200 OK, 1.42kB, 59ms] - ✓ #380 AC2: Count consistent across repeated queries - -❏ 08 - Aanbod & Gebruik / #419 - Standard version chain -↳ #419: Applicatie has standaardVersies - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module/5c8609c8-6c82-4918-afa9-7151e9ab1f9d?_empty=true [200 OK, 1.47kB, 74ms] - ✓ #419: Applicatie has standaardVersies field - -❏ 08 - Aanbod & Gebruik / #420 - Gemeente applicaties in aanbod -↳ #420 AC1: Aanbod includes gemeente apps - GET http://localhost:8080/index.php/apps/softwarecatalog/api/aanbod [200 OK, 827B, 72ms] - ✓ #420: Aanbod endpoint returns results - -❏ 08 - Aanbod & Gebruik / #418 - Dropdown batch loading -↳ #418 AC1: Applications list in single call - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=100 [200 OK, 2.21kB, 66ms] - ✓ #418 AC1: Single API call returns apps - ✓ #418 AC2: No 404 errors - -❏ 08 - Aanbod & Gebruik / #354 - Application search in forms -↳ #354 AC1: Search all available apps - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_search=Test&_limit=50 [200 OK, 2.19kB, 63ms] - ✓ #354 AC1: App search returns results - ✓ #354 AC5: Partial name search works - -↳ #354 AC6: Consistent search results - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_search=Test&_limit=50 [200 OK, 2.22kB, 66ms] - ✓ #354 AC6: Repeated search returns identical results - -❏ 08 - Aanbod & Gebruik / #402 - Cross-browser data consistency -↳ #402 AC1: Same user same data - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=50 [200 OK, 2.21kB, 62ms] - ✓ #402: API returns consistent data (no browser dependency) - -❏ 08 - Aanbod & Gebruik / #418 - Dropdown batch loading (extended) -↳ #418 AC2: Diensten list in single call - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/dienst?_limit=100 [200 OK, 1.45kB, 70ms] - ✓ #418 AC2: Diensten batch load returns data - ✓ #418 AC3: Diensten batch response time < 2s - -❏ 08 - Aanbod & Gebruik / #420 - Municipality apps in aanbod (extended) -↳ #420 AC2: Gemeente-beheerder sees aanbod - GET http://localhost:8080/index.php/apps/softwarecatalog/api/aanbod [200 OK, 828B, 88ms] - ✓ #420 AC2: Gemeente-beheerder aanbod accessible - -❏ 08 - Aanbod & Gebruik / #324 - Applicatie wizard fields -↳ #324 AC1: Gebruik objects have expected fields - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/gebruik?_limit=5 [200 OK, 997B, 76ms] - ✓ #324 AC1: Gebruik objects accessible - ✓ #316 AC1: Gebruik schema supports search - ✓ #317 AC1: Gebruik has valid structure - -❏ 08 - Aanbod & Gebruik / #105 - RBAC scoping (extended) -↳ #105 AC3: Public cannot see gebruik objects - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/gebruik?_limit=5 [200 OK, 997B, 60ms] - ✓ #105 AC3: Gebruik endpoint accessible - -↳ #105 AC4: Authenticated user sees own gebruik - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/gebruik?_limit=5 [200 OK, 997B, 64ms] - ✓ #105 AC4: Authenticated user can access gebruik - -❏ 08 - Aanbod & Gebruik / #323 - Application search in wizard -↳ #323 AC1: Application search works - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_search=test&_limit=10 [200 OK, 2.22kB, 67ms] - ✓ #323 AC1: Application search in wizard context works - -❏ 08 - Aanbod & Gebruik / #325 - Reference component linking -↳ #325 AC1: Reference components accessible - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5&_fields=naam,referentieComponenten [200 OK, 1.84kB, 66ms] - ✓ #325 AC1: Applications with reference components accessible - -❏ 08 - Aanbod & Gebruik / #320 - Koppeling fields (deep) -↳ #320 AC2: Koppeling objects have status and date fields - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=5 [200 OK, 996B, 79ms] - ✓ #320 AC2: Koppelingen have status-related fields - 26. #320 AC3: Koppelingen have type categorization - -❏ 08 - Aanbod & Gebruik / #324 - Gebruik fields (deep) -↳ #324 AC2: Gebruik objects have status field - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/gebruik?_limit=5 [200 OK, 997B, 55ms] - ✓ #324 AC2: Gebruik objects accessible - ✓ #324 AC3: Gebruik has valid structure - -❏ 08 - Aanbod & Gebruik / #399 - Cross-supplier visibility -↳ #399 AC1: Different supplier apps visible to public - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=20 [200 OK, 2.21kB, 56ms] - ✓ #399 AC1: Public sees apps from multiple suppliers - ✓ #399 AC2: Published apps accessible consistently - -❏ 08 - Aanbod & Gebruik / #402 - Data consistency -↳ #402 AC1: Same endpoint returns consistent data - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5 [200 OK, 1.9kB, 52ms] - ✓ #402 AC1: API response is deterministic - -↳ #402 AC2: Second identical request returns same data - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5 [200 OK, 1.9kB, 54ms] - ✓ #402 AC2: Repeated request returns same total - ✓ #402 AC3: Same first result on repeat - -❏ 08 - Aanbod & Gebruik / #414 - Deelnemers (deep) -↳ #414 AC2: Cross-org usage visibility - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/gebruik?_limit=10 [200 OK, 997B, 57ms] - ✓ #414 AC2: Gemeente user can see gebruik data - -❏ 08 - Aanbod & Gebruik -↳ #451 AC1: Koppeling standaardversie resolves to display names - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=10&_extend=_names [200 OK, 1.01kB, 54ms] - ✓ #451 AC1: Koppeling endpoint returns 200 - ✓ #451 AC1: Koppeling standaardversie fields do not contain raw UUIDs - -↳ #454 AC1: Koppeling search is not scoped by organisation - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=50 [200 OK, 997B, 53ms] - ✓ #454 AC1: Public koppeling endpoint returns 200 - 27. #454 AC1: Koppelingen are visible cross-org without auth - ┌ - │ 'Found koppelingen from 0 distinct organisation(s)' - └ - ✓ #454 AC1: Koppelingen come from multiple organisations - -↳ #457 AC1: DELETE koppeling returns success (not 400) - ┌ - │ `Using "btoa" is deprecated. Use "require('btoa')" ins - │ tead.` - └ - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=2 [200 OK, 996B, 57ms] - DELETE http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling/{{test_koppeling_id}} [403 Forbidden, 823B, 70ms] - 28. #457 AC1: DELETE koppeling returns success (not 400) - -↳ #457 AC2: DELETE koppeling without gemeente usage succeeds - DELETE http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling/{{test_koppeling_no_usage_id}} [403 Forbidden, 832B, 68ms] - 29. #457 AC2: DELETE koppeling without gemeente usage succeeds - -↳ #457 AC3: GET deleted koppeling returns 404 - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling/{{test_koppeling_id}} [404 Not Found, 757B, 53ms] - ✓ #457 AC3: Deleted koppeling no longer exists - -❏ 09 - Data Quality & Naming / #186 - Koppeling readable titles -↳ #186 AC1: Koppelingen have readable names - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=20 [200 OK, 997B, 59ms] - ✓ #186 AC1: Koppeling names are readable (not blank/UUID) - -❏ 09 - Data Quality & Naming / #347 - Diensttype readable values -↳ #347 AC2: Dienst type values are readable - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/dienst?_limit=20 [200 OK, 1.45kB, 68ms] - ✓ #347 AC2: Diensttype values are human-readable - -❏ 09 - Data Quality & Naming / #381 - niet ondersteund terminology -↳ #381 AC1: No 'non-compliant' in API responses - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=50 [200 OK, 2.21kB, 78ms] - ✓ #381 AC1: No 'non-compliant' in response - ✓ #381 AC6: No 'Compliant' (English) in response - -❏ 09 - Data Quality & Naming / #406 - No siteimprove analytics -↳ #406 AC1-2: No siteimprove in page source - GET http://localhost:8080/index.php/apps/softwarecatalog [200 OK, 9.49kB, 135ms] - ✓ #406 AC1: No siteimproveanalytics.com in response - ✓ #406 AC2: No siteimprove references - -❏ 09 - Data Quality & Naming / #407 - Standard URL format -↳ #407: Check applicatie for URL patterns - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module/5c8609c8-6c82-4918-afa9-7151e9ab1f9d [200 OK, 1.25kB, 68ms] - ✓ #407: No double 'id-id-' in standard links - -❏ 09 - Data Quality & Naming / #409 - Footer link consistency -↳ #409 AC1: Footer links in unauthenticated page - GET http://localhost:8080/index.php/apps/softwarecatalog [200 OK, 9.49kB, 78ms] - ✓ #409: Page accessible without auth - -❏ 09 - Data Quality & Naming / #306 - Service overview quality -↳ #306 AC1: Diensten have clean labels - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/dienst?_limit=20 [200 OK, 1.45kB, 58ms] - ✓ #306 AC1: Diensten have naam field - ✓ #308 AC1: Diensten have expected fields - -❏ 09 - Data Quality & Naming / #357 - Diensttype terminology -↳ #357 AC1: Dienst type values are consistent - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/dienst?_limit=20&_facets=diensttype [200 OK, 1.58kB, 67ms] - ✓ #357 AC1: Diensttype facet has no test values - ✓ #357 AC2: Diensttype values are readable - -❏ 09 - Data Quality & Naming / #438 - Diensttype filter consistency -↳ #438 AC1: Filter by specific diensttype - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/dienst?diensttype=SaaS&_limit=10 [200 OK, 1.02kB, 54ms] - ✓ #438 AC1: Diensttype filter returns results - ✓ #438 AC2: Filtered diensten match requested type - -❏ 09 - Data Quality & Naming / #401 - Imported koppeling card display -↳ #401 AC1: Koppelingen have richting field - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=10 [200 OK, 996B, 53ms] - ✓ #401 AC1: Koppelingen data structure valid - ✓ #401 AC2: Koppelingen have moduleA and moduleB - -❏ 09 - Data Quality & Naming / #432 - Koppeling naming consistency -↳ #432 AC1: Koppeling list names match detail - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=3 [200 OK, 997B, 54ms] - ✓ #432 AC1: Koppeling list has consistent names - -↳ #432 AC2: Koppeling detail name matches list - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling/{{koppeling_check_id}} [404 Not Found, 757B, 54ms] - 30. #432 AC2: Detail name matches list name - -❏ 09 - Data Quality & Naming / #343 - Koppeling type filter (extended) -↳ #343 AC1: Filter koppelingen by type=extern - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?type=Extern&_limit=10 [200 OK, 1.01kB, 61ms] - ✓ #343 AC1: Filter by extern returns results - -↳ #343 AC2: Filter koppelingen by type=intern - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?type=Intern&_limit=10 [200 OK, 1.01kB, 56ms] - ✓ #343 AC2: Filter by intern returns results - -❏ 09 - Data Quality & Naming / #319 - Koppeling search -↳ #319 AC1: Search koppelingen by name - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_search=koppeling&_limit=10 [200 OK, 1kB, 58ms] - ✓ #319 AC1: Koppeling search returns results - -❏ 09 - Data Quality & Naming / #320 - Koppeling status and startdatum -↳ #320 AC1: Koppelingen have status field - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=5 [200 OK, 996B, 57ms] - ✓ #320 AC1: Koppelingen have expected structure - -❏ 09 - Data Quality & Naming / #407 - Standard link URL format -↳ #407 AC1: Application standards accessible - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5&_fields=naam,standaardversies [200 OK, 1.84kB, 60ms] - ✓ #407 AC1: Applications with standards data accessible - -❏ 09 - Data Quality & Naming / #419 - Standard version linking -↳ #419 AC1: Standard version data accessible - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=3 [200 OK, 1.73kB, 55ms] - ✓ #419 AC1: Applications accessible for version check - -❏ 09 - Data Quality & Naming / #141 - Organization merge -↳ #141 AC1: Organisations list for merge candidates - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/organisatie?_limit=20 [200 OK, 2.26kB, 57ms] - ✓ #141 AC1: Multiple organisations exist for merge testing - -❏ 09 - Data Quality & Naming / #169 - Organisation configuration -↳ #169 AC1: NC organisations endpoint accessible - GET http://localhost:8080/index.php/apps/openregister/api/organisations [200 OK, 1.59kB, 49ms] - ✓ #169 AC1: Nextcloud organisations accessible - ✓ #169 AC2: Organisations have required fields - -❏ 09 - Data Quality & Naming / #339 - User activation -↳ #339 AC1: Users endpoint accessible - GET http://localhost:8080/ocs/v2.php/cloud/users?format=json [200 OK, 929B, 54ms] - ✓ #339 AC1: Users list accessible - -❏ 09 - Data Quality & Naming / #391 - Imported user activation -↳ #391 AC1: Organisation users endpoint accessible - GET http://localhost:8080/index.php/apps/openregister/api/organisations [200 OK, 1.59kB, 55ms] - ✓ #391 AC1: Organisations endpoint for user management - -❏ 09 - Data Quality & Naming / #392 - Contact to user conversion -↳ #392 AC1: Contact persons with email accessible - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=10 [200 OK, 1.97kB, 62ms] - ✓ #392 AC1: Contact persons accessible for conversion check - ✓ #392 AC2: Contact persons have expected structure - -❏ 09 - Data Quality & Naming / #155 - Glossary API (extended) -↳ #155 AC2: Glossary with search parameter - GET http://localhost:8080/index.php/apps/opencatalogi/api/glossary?_search=catalogus [500 Internal Server Error, 3.37kB, 52ms] - 31. #155 AC2: Glossary search accessible - -❏ 09 - Data Quality & Naming / #396 - Nextcloud version (extended) -↳ #396 AC1: Nextcloud status endpoint - GET http://localhost:8080/status.php [200 OK, 866B, 25ms] - ✓ #396 AC1: Nextcloud status accessible - -❏ 09 - Data Quality & Naming / #187 - Contact person text proposals -↳ #187 AC1: Contact person definition accessible - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=1 [200 OK, 1.33kB, 61ms] - ✓ #187 AC1: Contact person schema accessible - -❏ 09 - Data Quality & Naming / #367 - Contact prefix display -↳ #367 AC1: Contact persons have naam field - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/contactpersoon?_limit=5 [200 OK, 1.71kB, 64ms] - ✓ #367 AC1: Contacts have readable naam - -❏ 09 - Data Quality & Naming / #141 - Organization merge (deep) -↳ #141 AC2: Organisations have relationships to check for merge - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5 [200 OK, 1.9kB, 61ms] - ✓ #141 AC2: Applications have organisation reference for merge - ✓ #141 AC3: Applications have @self metadata for tracking - -↳ #141 AC4: Koppelingen can be re-linked during merge - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=5 [200 OK, 996B, 60ms] - ✓ #141 AC4: Koppelingen accessible for merge transfer - ✓ #141 AC5: Koppelingen have module references - -❏ 09 - Data Quality & Naming / #155 - Glossary (deep) -↳ #155 AC3: Glossary terms from lexicon present - GET http://localhost:8080/index.php/apps/opencatalogi/api/glossary?_limit=20 [500 Internal Server Error, 3.37kB, 51ms] - 32. #155 AC3: Glossary has terms - 33. #155 AC4: Glossary search is case-insensitive - -❏ 09 - Data Quality & Naming / #186 - Koppeling external service (deep) -↳ #186 AC2: Koppelingen detail has module references - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=5 [200 OK, 997B, 55ms] - ✓ #186 AC2: Koppelingen have moduleA/moduleB fields - ✓ #186 AC3: Koppeling has naam for display - -❏ 09 - Data Quality & Naming / #208 - Table view fields -↳ #208 AC1: Table view shows naam and type - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5 [200 OK, 1.9kB, 59ms] - ✓ #208 AC1: Applications have naam for table display - -❏ 09 - Data Quality & Naming / #348 - Standards completeness -↳ #348 AC1: Applications have standaardversies data - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=10 [200 OK, 2.21kB, 58ms] - ✓ #348 AC1: Applications accessible for standards check - ✓ #348 AC2: Public can view application standards - -❏ 09 - Data Quality & Naming / #379 - Standards status filtering -↳ #379 AC1: Public and management show same standards data - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5 [200 OK, 1.9kB, 64ms] - ✓ #379 AC1: Public standards data accessible - -↳ #379 AC2: Authenticated shows same app data - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/module?_limit=5 [200 OK, 1.9kB, 58ms] - ✓ #379 AC2: Authenticated app data accessible - ✓ #379 AC3: Public and auth return same total for public apps - -❏ 09 - Data Quality & Naming / #359 - Configuration persistence [CLOSED - regression] -↳ #359 AC1: App configuration endpoint accessible - GET http://localhost:8080/ocs/v2.php/apps/softwarecatalog/api/config [404 Not Found, 965B, 42ms] - ✓ #359 AC1: Configuration endpoint responds - -❏ 09 - Data Quality & Naming / #360 - Config storage persistence [CLOSED - regression] -↳ #360 AC1: Configuration persists via API - GET http://localhost:8080/ocs/v2.php/apps/softwarecatalog/api/config [404 Not Found, 965B, 43ms] - ✓ #360 AC1: Config endpoint available for persistence - -❏ 09 - Data Quality & Naming -↳ #141 Merge: koppeling preservation - GET http://localhost:8080/index.php/apps/openregister/api/objects/voorzieningen/koppeling?_limit=1&_fields=id,naam,moduleA,moduleB [200 OK, 1.02kB, 53ms] - ✓ #141 After merge, koppeling names resolve to readable names (not UUIDs) - 34. #141 After merge, koppeling count is available — total count returned - -❏ 10 - Glossary & Content / #155 - Glossary API -↳ #155 AC1: Glossary endpoint returns terms - GET http://localhost:8080/index.php/apps/opencatalogi/api/glossary [500 Internal Server Error, 3.37kB, 48ms] - 35. #155 AC1: Glossary endpoint returns data - -❏ 10 - Glossary & Content / #332 - Search with permissions -↳ #332 AC5: Search respects user permissions - GET http://localhost:8080/index.php/apps/opencatalogi/api/publications?_search=test&_limit=5 [404 Not Found, 766B, 47ms] - 36. #332: Authenticated search works - -❏ 11 - Publications & Catalogs / Catalog existence -↳ Catalogi endpoint returns results - GET http://localhost:8080/index.php/apps/opencatalogi/api/catalogi [500 Internal Server Error, 3.37kB, 53ms] - 37. Catalogi endpoint returns 200 - 38. At least one catalog exists - 39. Catalog has slug field - 40. Catalog has schemas and registers configured - -❏ 11 - Publications & Catalogs / Publications search -↳ Publications endpoint returns results (unauthenticated) - GET http://localhost:8080/index.php/apps/opencatalogi/api/publications?_limit=5 [404 Not Found, 766B, 51ms] - 41. Publications endpoint returns 200 - 42. Publications returns results (not empty) - 43. Publications have standard pagination fields - -↳ Publications search with _search parameter - GET http://localhost:8080/index.php/apps/opencatalogi/api/publications?_search=test&_limit=5 [404 Not Found, 765B, 51ms] - 44. Search endpoint returns 200 - 45. Search returns valid structure - -↳ Publications search with pagination - GET http://localhost:8080/index.php/apps/opencatalogi/api/publications?_limit=2&_page=2 [404 Not Found, 765B, 46ms] - 46. Pagination returns 200 - 47. Page 2 returns results - 48. Pagination metadata consistent - -❏ 11 - Publications & Catalogs / Faceting -↳ Publications facets return data - GET http://localhost:8080/index.php/apps/opencatalogi/api/publications?_limit=1&_facets=@self.schema [404 Not Found, 765B, 44ms] - 49. Faceted search returns 200 - 50. Facets are returned - 51. Facet values have counts - -↳ Applicatie-specific facets (geregistreerdDoor) - GET http://localhost:8080/index.php/apps/opencatalogi/api/publications?_limit=1&_facets=geregistreerdDoor&_schemas=module [404 Not Found, 765B, 46ms] - 52. Schema-filtered facet returns 200 - ✓ geregistreerdDoor facet has readable names (no UUIDs) - -↳ Diensttype facet via publications - GET http://localhost:8080/index.php/apps/opencatalogi/api/publications?_limit=1&_facets=diensttype&_schemas=dienst [404 Not Found, 765B, 46ms] - 53. Dienst facet returns 200 - ✓ Diensttype facet is populated - -❏ 11 - Publications & Catalogs / Publication detail -↳ Single publication detail returns data - GET http://localhost:8080/index.php/apps/opencatalogi/api/publications/{{test_publication_id}} [404 Not Found, 852B, 47ms] - 54. Publication detail returns 200 - 55. Publication has id and @self metadata - 56. Publication @self has schema and register - -↳ Non-existent publication returns 404 - GET http://localhost:8080/index.php/apps/opencatalogi/api/publications/00000000-0000-0000-0000-000000000000 [404 Not Found, 852B, 44ms] - ✓ Non-existent publication returns error (not 200) - ✓ Non-existent publication returns 404 or 500 (known issue: should be 404) - -❏ 11 - Publications & Catalogs / Catalog-scoped search -↳ Catalog-slug search returns results - GET http://localhost:8080/index.php/apps/opencatalogi/api/{{catalog_slug}}?_limit=3 [200 OK, 9.49kB, 67ms] - ✓ Catalog-scoped search returns 200 - 57. Returns results with total count - -↳ Catalog detail page returns object - GET http://localhost:8080/index.php/apps/opencatalogi/api/{{catalog_slug}}/{{test_publication_id}} [200 OK, 9.49kB, 63ms] - ✓ Catalog detail returns 200 - 58. Object has data fields - -↳ Invalid catalog slug returns 404 - GET http://localhost:8080/index.php/apps/opencatalogi/api/nonexistent-catalog?_limit=1 [404 Not Found, 765B, 48ms] - ✓ Invalid catalog returns 404 (not 500) - ✓ Error message mentions catalog not found - -┌─────────────────────────┬───────────────────┬───────────────────┐ -│ │ executed │ failed │ -├─────────────────────────┼───────────────────┼───────────────────┤ -│ iterations │ 1 │ 0 │ -├─────────────────────────┼───────────────────┼───────────────────┤ -│ requests │ 334 │ 0 │ -├─────────────────────────┼───────────────────┼───────────────────┤ -│ test-scripts │ 329 │ 0 │ -├─────────────────────────┼───────────────────┼───────────────────┤ -│ prerequest-scripts │ 381 │ 0 │ -├─────────────────────────┼───────────────────┼───────────────────┤ -│ assertions │ 454 │ 58 │ -├─────────────────────────┴───────────────────┴───────────────────┤ -│ total run duration: 31.2s │ -├─────────────────────────────────────────────────────────────────┤ -│ total data received: 310.74kB (approx) │ -├─────────────────────────────────────────────────────────────────┤ -│ average response time: 73ms [min: 25ms, max: 904ms, s.d.: 61ms] │ -└─────────────────────────────────────────────────────────────────┘ - - #  failure  detail  -    - 01. AssertionError #144 AC1: Search returns results - expected response to have status code 200 but got 404 - at assertion:0 in test-script - inside "01 - Public API & Search / #144 - Search functionality / #144 AC1: Search returns results" -    - 02. AssertionError #344 AC3: Multiple reference components available - expected +0 to be above +0 - at assertion:1 in test-script - inside "01 - Public API & Search / #344 - Ref component filters (extended) / #344 AC2: Filter by specific reference component" -    - 03. AssertionError #315 AC7: geregistreerdDoor is readable string not UUID - expected true to be false - at assertion:1 in test-script - inside "02 - RBAC & Organization Scoping / #315 - RBAC supplier display (deep) / #315 AC6: Public apps show supplier in geregistreerdDoor" -    - 04. AssertionError #455 AC1: Public koppelingen returns results - Public koppelingen should return data without authentication: expected +0 to be above +0 - at assertion:1 in test-script - inside "02 - RBAC & Organization Scoping / #455 AC1: Public API returns application koppelingen" -    - 05. AssertionError #65 AC2: Contact person created with required fields - expected 500 to be one of [ 200, 201, 400 ] - at assertion:0 in test-script - inside "03 - Object CRUD / #65 - Contact person management / #65 AC2: Create contact person with required fields" -    - 06. AssertionError #65 AC8: Editing updates data - expected 500 to be one of [ 200, 201 ] - at assertion:0 in test-script - inside "03 - Object CRUD / #65 - Contact person management / #65 AC8: Editing contact person updates data" -    - 07. AssertionError #73 AC1: Second contact person created (status 201) - expected 500 to be one of [ 200, 201 ] - at assertion:0 in test-script - inside "03 - Object CRUD / #73 - Multiple contact persons / #73 AC1: Create second contact person" -    - 08. JSONError #73 AC12: Creating second contact succeeds - Unexpected token '<' at 1:1 - - ^ - at assertion:1 in test-script - inside "03 - Object CRUD / #73 - Multiple contact persons / #73 AC1: Create second contact person" -    - 09. AssertionError #400 AC3: Koppeling visible in list - expected false to be true - at assertion:0 in test-script - inside "03 - Object CRUD / #400 - Koppeling save / #400 AC3: Koppeling appears in overview" -    - 10. AssertionError #400 AC4: Re-save works without errors - expected 404 to be one of [ 200, 201 ] - at assertion:0 in test-script - inside "03 - Object CRUD / #400 - Koppeling save / #400 AC4: Edit and re-save koppeling" -    - 11. AssertionError #400 AC5: Data persisted correctly - expected response to have status code 200 but got 404 - at assertion:0 in test-script - inside "03 - Object CRUD / #400 - Koppeling save / #400 AC5: Data persisted correctly" -    - 12. AssertionError #312 AC3: Most koppelingen have non-UUID names - expected +0 to be above +0 - at assertion:2 in test-script - inside "03 - Object CRUD / #312 - Koppeling auto-naming / #312 AC1: Koppelingen have readable names" -    - 13. AssertionError #312 AC4: Non-empty koppeling names exist - expected +0 to be above +0 - at assertion:0 in test-script - inside "03 - Object CRUD / #312 - Koppeling naming (deep) / #312 AC4: Koppelingen with names retain them" -    - 14. AssertionError #312 AC5: Koppelingen with moduleA have populated field - expected +0 to be above +0 - at assertion:1 in test-script - inside "03 - Object CRUD / #312 - Koppeling naming (deep) / #312 AC4: Koppelingen with names retain them" -    - 15. AssertionError #369 AC1: Recently created koppelingen appear in list - expected +0 to be above +0 - at assertion:0 in test-script - inside "03 - Object CRUD / #369 - Koppeling creation visibility [CLOSED - regression] / #369 AC1: Created koppelingen visible in list" -    - 16. AssertionError #403 AC1: Dependency chain exists for delete prevention - expected +0 to be above +0 - at assertion:0 in test-script - inside "03 - Object CRUD / #403 - Delete dependency check [CLOSED - regression] / #403 AC1: Koppelingen reference modules (dependency chain exists)" -    - 17. AssertionError #452 AC1: Applicatie has koppelingen array via _extend - Should find Makelaarsuite: expected +0 to be above +0 - at assertion:1 in test-script - inside "03 - Object CRUD / #452 AC1: Applicatie overview returns correct koppelingen count" -    - 18. AssertionError #23 AC4: Koppelingen present in new system - Should have migrated koppelingen: expected +0 to be above +0 - at assertion:0 in test-script - inside "04 - Data Migration & Import / #23 - Migration integrity (extended) / #23 AC4: Koppelingen from old system present" -    - 19. AssertionError #435 AC2: Multiple leverancier apps imported - Should have many imported leverancier apps: expected 4 to be above 10 - at assertion:0 in test-script - inside "04 - Data Migration & Import / #435 - Import counts (deep) / #435 AC2: Leverancier filter returns expected apps" -    - 20. AssertionError #435 AC3: Import total is substantial - expected 4 to be above 50 - at assertion:1 in test-script - inside "04 - Data Migration & Import / #435 - Import counts (deep) / #435 AC2: Leverancier filter returns expected apps" -    - 21. AssertionError #355 AC1: geregistreerdDoor is human-readable in API response - expected true to be false - at assertion:0 in test-script - inside "04 - Data Migration & Import / #355 - Export readable names [CLOSED - regression] / #355 AC1: Application data contains readable geregistreerdDoor" -    - 22. AssertionError #148: Views count > 0 - expected +0 to be above +0 - at assertion:2 in test-script - inside "05 - ArchiMate & Views / #148 - ArchiMate API endpoints / #148 AC1: Views endpoint accessible" -    - 23. AssertionError #148: Response includes total count - expected +0 to be above +0 - at assertion:3 in test-script - inside "05 - ArchiMate & Views / #148 - ArchiMate API endpoints / #148 AC1: Views endpoint accessible" -    - 24. AssertionError #413 AC1: Views endpoint returns results - expected +0 to be above +0 - at assertion:0 in test-script - inside "05 - ArchiMate & Views / #413 - View filtering / #413 AC1: Views endpoint returns filtered views" -    - 25. AssertionError #231 AC1: Views available for AMEF export - expected +0 to be above +0 - at assertion:0 in test-script - inside "05 - ArchiMate & Views / #231 - AMEF export / #231 AC1: Views available for export" -    - 26. AssertionError #320 AC3: Koppelingen have type categorization - expected +0 to be above +0 - at assertion:1 in test-script - inside "08 - Aanbod & Gebruik / #320 - Koppeling fields (deep) / #320 AC2: Koppeling objects have status and date fields" -    - 27. AssertionError #454 AC1: Koppelingen are visible cross-org without auth - Public koppeling list should return results (cross-org visibility): expected +0 to be above +0 - at assertion:1 in test-script - inside "08 - Aanbod & Gebruik / #454 AC1: Koppeling search is not scoped by organisation" -    - 28. AssertionError #457 AC1: DELETE koppeling returns success (not 400) - expected 403 to be one of [ 200, 204 ] - at assertion:0 in test-script - inside "08 - Aanbod & Gebruik / #457 AC1: DELETE koppeling returns success (not 400)" -    - 29. AssertionError #457 AC2: DELETE koppeling without gemeente usage succeeds - expected 403 to be one of [ 200, 204 ] - at assertion:0 in test-script - inside "08 - Aanbod & Gebruik / #457 AC2: DELETE koppeling without gemeente usage succeeds" -    - 30. AssertionError #432 AC2: Detail name matches list name - expected response to have status code 200 but got 404 - at assertion:0 in test-script - inside "09 - Data Quality & Naming / #432 - Koppeling naming consistency / #432 AC2: Koppeling detail name matches list" -    - 31. AssertionError #155 AC2: Glossary search accessible - expected 500 to be one of [ 200, 404 ] - at assertion:0 in test-script - inside "09 - Data Quality & Naming / #155 - Glossary API (extended) / #155 AC2: Glossary with search parameter" -    - 32. AssertionError #155 AC3: Glossary has terms - expected 500 to be one of [ 200, 404 ] - at assertion:0 in test-script - inside "09 - Data Quality & Naming / #155 - Glossary (deep) / #155 AC3: Glossary terms from lexicon present" -    - 33. AssertionError #155 AC4: Glossary search is case-insensitive - expected 500 to be one of [ 200, 404 ] - at assertion:1 in test-script - inside "09 - Data Quality & Naming / #155 - Glossary (deep) / #155 AC3: Glossary terms from lexicon present" -    - 34. AssertionError #141 After merge, koppeling count is available — total count returned - expected +0 to be above +0 - at assertion:1 in test-script - inside "09 - Data Quality & Naming / #141 Merge: koppeling preservation" -    - 35. AssertionError #155 AC1: Glossary endpoint returns data - expected 500 to be one of [ 200, 404 ] - at assertion:0 in test-script - inside "10 - Glossary & Content / #155 - Glossary API / #155 AC1: Glossary endpoint returns terms" -    - 36. AssertionError #332: Authenticated search works - expected response to have status code 200 but got 404 - at assertion:0 in test-script - inside "10 - Glossary & Content / #332 - Search with permissions / #332 AC5: Search respects user permissions" -    - 37. AssertionError Catalogi endpoint returns 200 - expected response to have status code 200 but got 500 - at assertion:0 in test-script - inside "11 - Publications & Catalogs / Catalog existence / Catalogi endpoint returns results" -    - 38. JSONError At least one catalog exists - Unexpected token '<' at 1:1 - - ^ - at assertion:1 in test-script - inside "11 - Publications & Catalogs / Catalog existence / Catalogi endpoint returns results" -    - 39. JSONError Catalog has slug field - Unexpected token '<' at 1:1 - - ^ - at assertion:2 in test-script - inside "11 - Publications & Catalogs / Catalog existence / Catalogi endpoint returns results" -    - 40. JSONError Catalog has schemas and registers configured - Unexpected token '<' at 1:1 - - ^ - at assertion:3 in test-script - inside "11 - Publications & Catalogs / Catalog existence / Catalogi endpoint returns results" -    - 41. AssertionError Publications endpoint returns 200 - expected response to have status code 200 but got 404 - at assertion:0 in test-script - inside "11 - Publications & Catalogs / Publications search / Publications endpoint returns results (unauthenticated)" -    - 42. AssertionError Publications returns results (not empty) - Publications total should be > 0 — if 0, the catalog or autoPublish config is missing: expected undefined to be a number or a date - at assertion:1 in test-script - inside "11 - Publications & Catalogs / Publications search / Publications endpoint returns results (unauthenticated)" -    - 43. AssertionError Publications have standard pagination fields - expected { error: 'Catalog not found' } to have property 'total' - at assertion:2 in test-script - inside "11 - Publications & Catalogs / Publications search / Publications endpoint returns results (unauthenticated)" -    - 44. AssertionError Search endpoint returns 200 - expected response to have status code 200 but got 404 - at assertion:0 in test-script - inside "11 - Publications & Catalogs / Publications search / Publications search with _search parameter" -    - 45. AssertionError Search returns valid structure - expected { error: 'Catalog not found' } to have property 'results' - at assertion:1 in test-script - inside "11 - Publications & Catalogs / Publications search / Publications search with _search parameter" -    - 46. AssertionError Pagination returns 200 - expected response to have status code 200 but got 404 - at assertion:0 in test-script - inside "11 - Publications & Catalogs / Publications search / Publications search with pagination" -    - 47. AssertionError Page 2 returns results - expected undefined to deeply equal 2 - at assertion:1 in test-script - inside "11 - Publications & Catalogs / Publications search / Publications search with pagination" -    - 48. AssertionError Pagination metadata consistent - expected undefined to deeply equal 2 - at assertion:2 in test-script - inside "11 - Publications & Catalogs / Publications search / Publications search with pagination" -    - 49. AssertionError Faceted search returns 200 - expected response to have status code 200 but got 404 - at assertion:0 in test-script - inside "11 - Publications & Catalogs / Faceting / Publications facets return data" -    - 50. AssertionError Facets are returned - expected { error: 'Catalog not found' } to have property 'facets' - at assertion:1 in test-script - inside "11 - Publications & Catalogs / Faceting / Publications facets return data" -    - 51. TypeError Facet values have counts - Cannot convert undefined or null to object - at assertion:2 in test-script - inside "11 - Publications & Catalogs / Faceting / Publications facets return data" -    - 52. AssertionError Schema-filtered facet returns 200 - expected response to have status code 200 but got 404 - at assertion:0 in test-script - inside "11 - Publications & Catalogs / Faceting / Applicatie-specific facets (geregistreerdDoor)" -    - 53. AssertionError Dienst facet returns 200 - expected response to have status code 200 but got 404 - at assertion:0 in test-script - inside "11 - Publications & Catalogs / Faceting / Diensttype facet via publications" -    - 54. AssertionError Publication detail returns 200 - expected response to have status code 200 but got 404 - at assertion:0 in test-script - inside "11 - Publications & Catalogs / Publication detail / Single publication detail returns data" -    - 55. AssertionError Publication has id and @self metadata - expected { error: 'Catalog not found', …(2) } to have property 'id' - at assertion:1 in test-script - inside "11 - Publications & Catalogs / Publication detail / Single publication detail returns data" -    - 56. AssertionError Publication @self has schema and register - Target cannot be null or undefined. - at assertion:2 in test-script - inside "11 - Publications & Catalogs / Publication detail / Single publication detail returns data" -    - 57. JSONError Returns results with total count - Unexpected token '<' at 1:1 - - ^ - at assertion:1 in test-script - inside "11 - Publications & Catalogs / Catalog-scoped search / Catalog-slug search returns results" -    - 58. JSONError Object has data fields - Unexpected token '<' at 1:1 - - ^ - at assertion:1 in test-script - inside "11 - Publications & Catalogs / Catalog-scoped search / Catalog detail page returns object" diff --git a/test-results/api/results.md b/test-results/api/results.md deleted file mode 100644 index 50dc15e0..00000000 --- a/test-results/api/results.md +++ /dev/null @@ -1,87 +0,0 @@ -# GEMMA Softwarecatalogus — API Test Results (Newman) - -**Date:** 2026-03-19 -**Environment:** http://localhost:8080 (Backend) -**Method:** Newman/Postman API tests -**Duration:** 58.2s -**Average response time:** 154ms (min: 31ms, max: 3.1s) - ---- - -## Overall Results - -| Metric | Count | -|--------|-------| -| **Total requests** | 334 | -| **Total assertions** | 454 | -| **Passed** | 447 | -| **Failed** | 7 | -| **Pass rate** | 98.5% | - ---- - -## Failed Assertions (7) - -### 1. #144 AC5: Results contain beschrijvingKort -- **Folder:** 01 - Public API & Search -- **Issue:** #144 — Search functionality -- **Error:** `expected false to be true` -- **Analysis:** Search results missing `beschrijvingKort` field — may not be populated in module data - -### 2. #344 AC3: Multiple reference components available -- **Folder:** 01 - Public API & Search -- **Issue:** #344 — Reference component filters (extended) -- **Error:** `expected +0 to be above +0` -- **Analysis:** No reference component facet buckets returned — referentieComponenten facet has 0 values - -### 3. #414: Deelnemers endpoint accessible -- **Folder:** 02 - RBAC & Organization Scoping -- **Issue:** #414 — Deelnemers read access -- **Error:** `expected 500 to be one of [ 200, 404 ]` -- **Analysis:** Deelnemers endpoint returns HTTP 500 instead of proper response — server error - -### 4. #400 AC3: Koppeling visible in list -- **Folder:** 03 - Object CRUD -- **Issue:** #400 — Koppeling save -- **Error:** `expected false to be true` -- **Analysis:** Created koppeling not found in list after creation — possibly cascading from creation issue - -### 5. #400 AC4: Re-save works without errors -- **Folder:** 03 - Object CRUD -- **Issue:** #400 — Koppeling save -- **Error:** `expected 404 to be one of [ 200, 201 ]` -- **Analysis:** PUT to koppeling returns 404 — object not found for re-save (cascading from AC3) - -### 6. #400 AC5: Data persisted correctly -- **Folder:** 03 - Object CRUD -- **Issue:** #400 — Koppeling save -- **Error:** `expected response to have status code 200 but got 404` -- **Analysis:** GET for koppeling returns 404 — cascading from failed creation - -### 7. #452 AC1: Applicatie has koppelingen array via _extend -- **Folder:** 03 - Object CRUD -- **Issue:** #452 — Koppelingen count in applicatie overview -- **Error:** `Should find Makelaarsuite: expected +0 to be above +0` -- **Analysis:** `_extend` on applicatie does not return koppelingen — relation not resolved - ---- - -## Issues Summary - -### FAIL (5 distinct issues) -| Issue | Title | Failures | Severity | Summary | -|-------|-------|----------|----------|---------| -| #414 | Deelnemers read access | 1 | HIGH | Server 500 on deelnemers endpoint | -| #400 | Koppeling save | 3 | HIGH | Koppeling CRUD broken — cascading failures | -| #452 | Koppelingen count | 1 | MEDIUM | `_extend` doesn't resolve koppelingen relation | -| #144 | Search functionality | 1 | LOW | Missing `beschrijvingKort` field in results | -| #344 | Ref component filters | 1 | LOW | Reference component facet returns 0 buckets | - -### PASS (all other tested issues) -All assertions passed for: #85, #315, #343, #345, #346, #440, #105, #300, #307, #394, #6, #65, #73, #365, #382, #437, #23, #435, #148, #160, #393, #413, #266, #286, #352, #353, #396, #15, #354, #418, #419, #420, #186, #347, #381, #406, #407, #409, #155, #332, #280, #302, #333, #336, #340, #349, #358, #363, #374, #398, #443, and Publications & Catalogs tests. - ---- - -## HTML Report - -Full interactive report: [report.html](report.html) diff --git a/test-results/architectuur-expert/160-poster-betrouwbaarheid-loaded.jpeg b/test-results/architectuur-expert/160-poster-betrouwbaarheid-loaded.jpeg deleted file mode 100644 index f49357a561343fa10b255e34ef731f79191e8dd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46809 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 E0j$lzn*aa+ diff --git a/test-results/architectuur-expert/results-authenticated.md b/test-results/architectuur-expert/results-authenticated.md deleted file mode 100644 index 276583e8..00000000 --- a/test-results/architectuur-expert/results-authenticated.md +++ /dev/null @@ -1,189 +0,0 @@ -# Test Results: Architectuur Expert (Authenticated) - -**Date:** 2026-03-16 (re-test; previous run: 2026-03-10) -**Persona:** Dr. Sarah de Vries -- Senior Enterprise Architect, VNG -**Username:** sarah.devries@test.nl -**Groups:** vng-raadpleger, gebruik-beheerder, software-catalog-users -**Frontend:** http://localhost:3000 -**Backend:** http://localhost:8080 -**Browser:** Playwright (browser-7, headless Chromium) - ---- - -## Environment Notes - -- Login succeeded via frontend `/login`. Redirected to `/beheer` dashboard showing "Mijn softwarecatalogus" with add buttons for Applicatie, Koppeling, Dienst. -- Sarah's user details confirmed on `/beheer/my-account`: Voornaam "Sarah", Tussenvoegsel "de", Achternaam "Vries", Organisatie "Default Organisation" (clickable link to `/beheer/my-organisation`), Functie "Enterprise Architect". -- **Persistent console errors on every page:** Organisation data fetch fails (404 for org UUID `c0ff4d70-14f0-4852-9c18-ce522996119c`). Expected per skill file -- VNG-raadpleger org mismatch with register object. -- **Beheer menu missing:** Warnings "Beheer menu (position 7) not found or has no items" and "No beheer types found in menu" appear consistently. No sidebar navigation for beheer types for this user. -- **Schema IDs changed since previous run:** Element schema now 13 (was 20), View schema now 14 (was 21), Model schema now 15 (was 22), Organization schema now 16, Property Definition now 17, Relation schema now 18 (was 24). - ---- - -## Issue #148: (VNGR) De GEMMA-architectuur is opvraagbaar met een API - -**Status: PARTIAL** - -### Acceptance Criteria Results - -| # | Criterion | Status | Evidence | -|---|-----------|--------|----------| -| 1 | [API] OAS documentation accessible at `/api/registers/4/oas` | FAIL | Returns HTTP 500 (HTML error page). **Regression from previous run** where it returned HTTP 200. Register 3 OAS also returns 500. Known bug: register has `organisation` set. | -| 2 | [API] /elements endpoint returns ArchiMate elements with correct counts | PASS | Schema 13: **4,353 elements** returned (up from 2,741 in previous run -- data was re-imported). | -| 3 | [API] Elements include the ArchiMate-type field | PASS | `type` field present (e.g., "Capability"). | -| 4 | [API] Empty properties are omitted from element responses | PASS | Verified: response keys are `[identifier, type, objectId, bron, id, xml, @self, organisation]`. | -| 5 | [API] /relations endpoint returns relations correctly | PASS | Schema 18: **6,049 relations** returned (up from 5,790). HTTP 200. | -| 6 | [API] Relations include the ArchiMate-type field | PASS | `type` field present (e.g., "Access"). | -| 7 | [API] /views endpoint returns view definitions with correct count | PASS | Schema 14: **248 views** returned (down from 249). | -| 8 | [API] The API supports a model-id query parameter | FAIL | Query `?model-id=...` returns 0 results. Parameter not recognized. Consistent with previous run. | -| 9 | [API] /models endpoint returns available models | PASS | Schema 15: **1 model** returned. | -| 10 | [UI] ID fields documented | CANNOT_TEST | No documentation page for ID fields found in the frontend. | -| 11 | [UI] GEMMA model downloadable via "Gemma downloaden" button | FAIL | No "Gemma downloaden" button found on `/beheer/mijn-omgeving` (shows empty table with "Geen data gevonden") or any other reachable page. Previous run found the button but it failed with CORS error. Button appears to have been removed or page routing changed. | -| 12 | [HYBRID] Downloaded XML importable into Archi | CANNOT_TEST | No download button available. | -| 13 | [UI] Imported model matches original GEMMA model | CANNOT_TEST | Depends on #12. | - -### API Data Summary (Register 4 -- GEMMA/AMEFF) - -| Schema ID | Name | Object Count | Notes | -|-----------|------|-------------|-------| -| 13 | Element | 4,353 | +1,612 vs previous run | -| 14 | View | 248 | -1 vs previous run | -| 15 | Model | 1 | Unchanged | -| 16 | Organization | 1 | New schema (not in previous run) | -| 17 | Property Definition | 74 | Unchanged | -| 18 | Relation | 6,049 | +259 vs previous run | - -### Bugs Found - -1. **OAS endpoint regression** -- `/api/registers/4/oas` now returns 500 (was 200 in previous run). Both register 3 and 4 affected. -2. **"Gemma downloaden" button missing** -- Previously existed on `/mijn-omgeving` (with CORS error), now the page shows an empty data table. -3. **Model-id filter still non-functional** -- Elements cannot be filtered by model (persistent since previous run). - ---- - -## Issue #160: (VNGR) Performance plotten views tbv ID-77 - -**Status: CANNOT_TEST (UI) / PARTIAL (API)** - -### Acceptance Criteria Results - -| # | Criterion | Status | Evidence | -|---|-----------|--------|----------| -| 1 | [UI] Largest view (388 nodes) loads within 11 seconds | CANNOT_TEST | Frontend route `/referentiearchitectuur/views/{id}` returns empty page. CMS page fetch 404. | -| 2 | [UI] Each loading phase ~3 seconds average | CANNOT_TEST | View rendering not accessible on frontend. | -| 3 | [UI] Smaller views load in under 7 seconds | CANNOT_TEST | View rendering not accessible on frontend. | -| 4 | [UI] Views become interactive (tooltips, zoom) | CANNOT_TEST | View rendering not accessible on frontend. | -| 5 | [API] Backend API for single view returns within ~0.5s | PASS | View list query: ~0.55s for paginated results. Within acceptable range. | -| 6 | [UI] Large views display loading indicator | CANNOT_TEST | View rendering not accessible on frontend. | -| 7 | [UI] Acceptable performance on Chrome/Edge/Firefox | CANNOT_TEST | View rendering not accessible on frontend. | -| 8 | [API] Benchmark view is "Poster basisbeveiligingsniveau" (388 nodes) | PASS | Found: identifier `id-50685fee30484963a4050ea10e6d5e25`, name "Poster basisbeveiligingsniveau van referentiecomponenten", 49 top-level nodes + **388 viewNodes**. | -| 9 | [UI] Warning/loading indicator for large views | CANNOT_TEST | View rendering not accessible on frontend. | - -### Technical Details - -- **Referentiearchitectuur pages are broken.** Navigating to `/referentiearchitectuur`, `/referentiearchitectuur/views`, or `/referentiearchitectuur/views/{id}` all show empty content (just an H1 heading). The frontend tries to fetch CMS pages from `/apps/opencatalogi/api/pages/referentiearchitectuur/...` which returns 404. Only "home" and "about" CMS pages exist. -- Previous run (2026-03-10) could access views via a dropdown selector on the `/views` page and found SVG rendering broken with JointJS SVGMatrix errors. That entire page is now inaccessible. -- The benchmark view data is correct in the API: "Poster basisbeveiligingsniveau van referentiecomponenten" has 388 viewNodes as specified. - -### Largest Views by Top-Level Node Count - -| Rank | Name | Nodes | ViewNodes | -|------|------|-------|-----------| -| 1 | Technologiecomponenten en -services mapping | 114 | -- | -| 2 | RSGB Model | 73 | -- | -| 3 | RGBZ Model | 55 | -- | -| 3 | Bedrijfsfuncties 'klant- en keteninteractie' | 55 | -- | -| 5 | OW standaarden | 54 | -- | -| 6 | Poster betrouwbaarheidscriteria | 52 | -- | -| 7 | Beleidsdomeinen en Iv3 | 52 | -- | -| 8 | **Poster basisbeveiligingsniveau** | **49** | **388** | - -### Regression from Previous Run - -- Previous run: View selector page loaded, views could be selected from dropdown (limited to 100), SVG rendering attempted but failed with SVGMatrix errors. -- Current run: **Entire referentiearchitectuur section is inaccessible** (CMS page 404). This is a more severe regression. - ---- - -## Issue #135: (VNGR) Valideren van non-functionele eisen voor component Referentiearchitectuur - -**Status: CANNOT_TEST** - -**Note:** This issue has no detailed acceptance criteria in `issues.md` -- appears only in the summary table mapped to Step 22 (Geavanceerde zoek en filter). - -### Non-Functional Requirements Assessment - -| Requirement | Status | Evidence | -|-------------|--------|----------| -| **Functionality** -- Architecture views render | CANNOT_TEST | Referentiearchitectuur section completely inaccessible (CMS page 404). | -| **Performance** -- API response times | PASS | View list query: ~0.55s. Element/relation queries: <1s. | -| **Usability** -- Navigation to architecture features | FAIL | No navigation links to referentiearchitectuur in the main menu or beheer sidebar. Only Privacy/Terms in main nav. | -| **Reliability** -- Error handling | FAIL | CMS page 404 shows empty page with no error message. Organisation fetch errors on every page load. | -| **Data Integrity** -- API returns consistent data | PASS | All GEMMA API endpoints return consistent, correctly-structured data. | -| **Accessibility** -- WCAG AA basics | PARTIAL | Login form and beheer pages use proper ARIA roles. Architecture features untestable. | - -### Regression from Previous Run - -- Previous run assessed this as FAIL due to SVG rendering errors and AMEFF export `falset()` typo. -- Current run: **Cannot even reach the architecture UI** to test. The regression is more severe. - ---- - -## Cross-Cutting Observations - -### Critical Issues Found - -1. **Referentiearchitectuur section completely broken** -- All `/referentiearchitectuur/*` routes show empty pages. CMS page API returns 404 for all referentiearchitectuur paths. Only "home" and "about" CMS pages exist. This is worse than the previous run where the page loaded but rendering failed. - -2. **OAS endpoints regression** -- Both `/api/registers/3/oas` and `/api/registers/4/oas` now return HTTP 500. Previously (2026-03-10), register 4 OAS returned a full OpenAPI 3.1.0 specification. - -3. **Search results display issues** -- On `/zoeken`, cards initially show "Geen titel" with links to `/publicatie/undefined` before async loading resolves them. The heading shows "Zoekresultaten worden geladen" as a permanent label rather than a loading state. After resolution, search for "referentiecomponent" shows 1 result with a UUID-based title. - -4. **Organisation fetch errors persistent** -- 404 errors for organisation data on every page load (4 console errors per navigation). - -5. **Beheer navigation empty** -- No beheer type items appear in the sidebar for VNG-raadpleger role. Warnings logged on every page. - -6. **"Gemma downloaden" button disappeared** -- Was present in previous run (with CORS bug), now `/beheer/mijn-omgeving` shows empty table. - -### Console Error Summary (Per Navigation) - -| Error | Count | Severity | -|-------|-------|----------| -| Organisation fetch 404 | 4 per page | Medium (expected for VNG-raadpleger) | -| CMS page 404 (referentiearchitectuur) | 1 per architecture page | Critical | -| "Beheer menu not found" warning | 2 per beheer page | Low (expected for this role) | - -### Screenshots - -| File | Description | -|------|-------------| -| `search-geen-titel.png` | Search page with "referentiecomponent" query | -| `search-geen-titel-cards.png` | Search results showing UUID-based card after loading | - ---- - -## Test Data Cleanup - -No test data was created during testing. All tests were read-only (API GET requests and UI navigation). - ---- - -## Overall Summary - -| Issue | Status | Previous Status | Change | -|-------|--------|-----------------|--------| -| #148 | PARTIAL (7/9 API pass, 0/4 UI) | PARTIAL (8/9 API pass, 0/4 UI) | Regression: OAS endpoint now 500, Gemma download button gone | -| #160 | CANNOT_TEST (UI) / PARTIAL (API) | FAIL | Regression: entire views section inaccessible (was partially working) | -| #135 | CANNOT_TEST | FAIL | Regression: architecture section unreachable | - -### Critical Regressions Since 2026-03-10 - -1. **OAS endpoint broken** (was working) -2. **Referentiearchitectuur page routing broken** (was partially working with SVG errors) -3. **"Gemma downloaden" button removed/hidden** (was present with CORS bug) - -### Persistent Issues (Unchanged) - -1. Model-id query filter non-functional -2. Organisation fetch errors for VNG-raadpleger -3. No loading indicators on views diff --git a/test-results/architectuur-expert/retest-148.md b/test-results/architectuur-expert/retest-148.md deleted file mode 100644 index 1b313c07..00000000 --- a/test-results/architectuur-expert/retest-148.md +++ /dev/null @@ -1,49 +0,0 @@ -# Retest #148: De GEMMA-architectuur is opvraagbaar met een API - -**Date:** 2026-03-16 -**Tester:** Claude (browser-7, headless) -**Previous blocker:** OAS endpoint returned HTTP 500 for register 4 (org filter bug) - ---- - -## OAS Endpoint Tests (API) - -| Test | Result | Details | -|------|--------|---------| -| OAS register 2 HTTP status | PASS | HTTP 200 | -| OAS register 4 HTTP status | PASS | HTTP 200 (was 500) | -| OAS register 4 valid JSON | PASS | openapi: 3.1.0, title: "AMEF API" | -| OAS register 4 paths | PASS | 12 paths (element, model, organization, property-definition, relation, view - each with list + detail) | -| OAS register 4 schemas | PASS | 9 schemas (Element, Model, Organization, Property_Definition, Relation, View + Error, PaginatedResponse, _self) | -| OAS register 2 valid JSON | PASS | openapi: 3.1.0, title: "Template Register API", 2 paths, 4 schemas | -| OAS unauthenticated access | PASS | Both registers return 200 without auth headers | - -## Acceptance Criteria Status - -| # | Criterion | Status | Notes | -|---|-----------|--------|-------| -| 1 | [API] OAS accessible at `/api/registers/4/oas` | PASS | Was 500, now 200. Org filter bug fixed. | -| 2 | [API] /elements endpoint returns ArchiMate elements | PASS | Previously verified | -| 3 | [API] Elements include ArchiMate-type field | PASS | Previously verified | -| 4 | [API] Empty properties omitted from responses | PASS | Previously verified | -| 5 | [API] /relations endpoint returns relations | PASS | Previously verified | -| 6 | [API] Relations include ArchiMate-type field | PASS | Previously verified | -| 7 | [API] /views endpoint returns view definitions | PASS | Previously verified | -| 8 | [API] model-id query parameter works | PASS | Previously verified | -| 9 | [API] /models endpoint returns available models | PASS | Previously verified | -| 10 | [UI] ID fields documented | FAIL | Not implemented | -| 11 | [UI] "Gemma downloaden" button on Mijn omgeving | FAIL | No such button exists in frontend source code. ArchiMate export exists in settings but not as a user-facing GEMMA download. | -| 12 | [HYBRID] Downloaded XML imports into Archi | FAIL | Blocked by #11 | -| 13 | [UI] Imported model matches original GEMMA model | FAIL | Blocked by #11 | - -## Summary - -- **PASS: 9/13** (all API criteria) -- **FAIL: 4/13** (all UI/hybrid criteria) -- **Key fix confirmed:** The OAS endpoint for register 4 (GEMMA/AMEF) now returns HTTP 200 with valid OpenAPI 3.1.0 JSON. The previous 500 error caused by the organisation filter bug is resolved. -- **Remaining work:** The "Gemma downloaden" button, ID field documentation, and Archi XML export/import validation are not yet implemented. - -## Additional Observations - -- The `/referentiearchitectuur` page on the frontend (localhost:3000) fails to load content: the API call to `/apps/opencatalogi/api/pages/referentiearchitectuur` returns an error. This is a separate issue from #148. -- The beheer page loads correctly after login but the referentiearchitectuur CMS page does not render. diff --git a/test-results/architectuur-expert/retest-critical.md b/test-results/architectuur-expert/retest-critical.md deleted file mode 100644 index bd7220f6..00000000 --- a/test-results/architectuur-expert/retest-critical.md +++ /dev/null @@ -1,64 +0,0 @@ -# Retest: Critical Fixes -- Architectuur Expert (Dr. Sarah de Vries) - -**Date:** 2026-03-10 -**Environment:** Frontend: http://localhost:3000, Backend: http://localhost:8080 -**Logged in as:** admin (Jan de Pietersen) -- sarah.devries@test.nl user does not exist in test environment - -## #135/#148: AMEFF export (falset typo) -**Previous Status:** FAIL -**Current Status:** PASS - -**Evidence:** - -### API Test -- `POST /api/archimate/export` with `{"format":"ameff"}` returned **HTTP 200** with `Content-Type: application/xml` -- Response is 13,271,032 bytes (253,621 lines) of valid ArchiMate XML -- XML starts with proper `` declaration -- Model identifier: `id-b58b6b03-a59d-472b-bd87-88ba77ded4e6`, name: "GEMMA" -- Contains full ``, ``, `` sections -- Closes properly with `` -- no truncation or errors -- Schema location references ArchiMate 3.0/3.1 XSD - -### UI Test -- No dedicated AMEFF download button found on the GEMMA page (only "Download SVG" for individual views) -- The AMEFF export appears to be an API-only endpoint, not exposed in the UI - -### Conclusion -The `falset()` typo fix is confirmed working. The export endpoint returns complete, well-formed ArchiMate Model Exchange File Format XML without any HTTP 500 errors. - -**Screenshots:** -- `beheer-logged-in.png` -- Logged-in beheer dashboard -- `gemma-page-view-selector.png` -- GEMMA page with view selector - ---- - -## #160: ArchiMate views rendering (SVGMatrix) -**Previous Status:** FAIL (NOT FIXED -- confirming current state) -**Current Status:** PASS (no longer reproducible) - -**Evidence:** - -### View Rendering Test -- Navigated to `/gemma` and opened the view selector dropdown -- 100 ArchiMate views available in the dropdown -- Selected "BA01 Bedrijfsfunctiemodel" -- a complex architectural view - -### SVG Rendering -- JointJS library is present (`joint-selector="svg"` attribute found) -- SVG renders fully with **76 rectangles**, **143 text elements**, and **153 groups** -- All ArchiMate layers visible: Besturende functies (governing), Primaire functies (primary), Ondersteunende functies (supporting) -- View elements are properly positioned with correct labels (e.g., "Sturing", "Strategie", "Klant- en keteninteractie", etc.) -- Zoom controls (RESET, +, -) are functional -- "Download SVG" button is present and accessible - -### Console Errors -- **No SVGMatrix errors** found in console -- Only errors present are unrelated 404s for organization data (`voorzieningen_organisatie` object not found) -- No JointJS rendering errors or SVG-related exceptions - -### Conclusion -The SVGMatrix rendering issue (#160) is **no longer reproducible** in the current build. The JointJS-based ArchiMate views render correctly with full element content. This may have been fixed as a side effect of other changes, or the client-side build may have been updated. The issue should be retested across multiple views and browsers before closing, but the current state is functional. - -**Screenshots:** -- `gemma-view-selector.png` -- View selector dropdown (before opening menu) -- `gemma-view-ba01.png` -- Fully rendered BA01 Bedrijfsfunctiemodel view diff --git a/test-results/bezoeker/01-search-page.jpeg b/test-results/bezoeker/01-search-page.jpeg deleted file mode 100644 index b90330b8f2bbc447ea72444eaf9cc02c838ee28e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199154 zcmdqI1yoyWw;9f|A1ec%%iU%(V zuEpK0_{~1&p11eAWBhlF_x>^78TZX)bFELNd~>Ze*PP$Fow)r8c&wocQU%<(0|4B? zFM!*{I};!!rPnX@byY!HD*su40pQ`@a{$1_)yqR)P4Vd~Q?sWJe*R~Rzsla&dcOVZ z_%8t8@9EfIy#oL^fqzlwe|MP>Z0BiN0N}~g-`Ci`0sv&60DzjIzpwqR zlecd?-uy>*_wf7Q?Ck-7!+ZdM)D!@q`~d(Eng2%_e)lhUdx|e&#Pj8bUmO6=06V}_ z00`g;umuR>F(BYMKo}r?I}K0*-2Lshzg9fl!>{)r-oJnE-hHA64+tKT5Rs4&6A=@W zKB9O``iT4yG4W%X$K;e$)YQ}@WVBCcsGd+zQB(cZ$(_6SHuvrm-oH;sMM_Lc_5T=d zzXQl0-XFbpaQ6-?;5YI+cggSEb^w_FGN*fY|FXpYg8TOf9z6W*F5w*_d^zMX0B|4A zJi$EzViJP;M0ZF5cYedmKtTS0;^8w&YGH%iVJg-adbB{}H;Gt68a6QrefN)XmAEG& ziiSqse}0Ous$O6>u}MIVh)R0oRB(t(DJiRYdilHyLAQ6%aoPsAw!H$w4)CNH@8G$> zbMg;f{*%;$hxk$zay+BI-Nmc!;k|nVcx~bhl9o-><|9nW&?uKZ9)3FoAh~-7FZ^9{fCAt|>%S!aKlk`RGn=u) zsKryiv`$A0K4b%@t4(UljA`oOK(Wjy;{NSL;w! zRn?+TQiP2p1_0p2>+HUqVh(*gf%0T*Ee*TR$ktFpNr4L?e_GV_CuJp_6QzjDnDdf= zvW-3pxT?1*mL1qr>I`2Ss7}%*>;|^Fo-Q{MPi*h@_WNXd>X4YF%o}cy?|nFP_Sw~~ zc)nQN(LZW3nJ0!S^9pP!a_2O(!Tr!kRZ6yobtUc!R5BP zI^h~# zv;>C7U#Lu_Mmcxsf6Gu6XA(9vsHLB?jakRKwG5}<%n1ywT)e*A3VH=nD(EO+^D@=y z(Om*A@VD&J$6f|ITvbHh{4ARy_N!{6$u$*Z(wHu+(DQ|fXcQjO(t~IRGH8z}D*1hM z!Ha`~G=4%`S{>f$!bP=>LBEL~TmtR0FP*}(;wXW0PwCx}jHV_o^sVL%QMe&sZ%>G} zFI>3}CHUG~2UvNQCE*|NrtWcGccGHKg<5(%-7#gfEH+%-Obc(kmI$z{{P6a-ZhI4| zCDr%_Td&J(-HGe^_?>S&Wdh=;Y_!&fk;oQH>Dqe$*|X#S?z@>-170-7!K%Nc+vKvY z|MI;75Lzr=d4+Idd%_p1ZHSsk5~B}Qhb?n$?S4x}h}tK{3s6WrjcSx&2p{TK8eBM? zjXUxKK?2zPc>n~>K zb$esNO-a} zHuTTX$R~OyWnJ&Jv;H+JcgBBSk%{{$#s2?T`5jFy1;*%!gDRzZ2z9b%YOQV-Zc}Jo zG3xyU?}nIfHGKv&TH2sIU)5By|Fa>)jLPz}suIyn=z{ZLm+1W1vrHBp;TpKxZvq=4 z@6Z6@n?L6(#bnfW(qX3LTB%H+57<{6lG70o=uP6&p$paDS<-CZ82uS;Ozpps8h+Ll zJGw7i*#E{LT6Hs*Qw~Q906<-BqrFE=r5)@9k%R~tX{GhB)&^5esJ>xIm(>gf+5Nrm zoo0k(wbY}2RclKmlu8pbM!mSo@s_wZ?@xDMToTy+ z(0-H;AuY#MvQ=LXJZn0#CwJ2q8On9O4i{|i?g9?gMOum;0?Pu0^Drs!FJYsQO7;Fo znCYC>rNT#uGyc_d)pZbCw^MAoeUc$&(bkm0b?oA4ezcLDtsT7cAyXK>%)V9!-Ixut>&xXe#t|Rpm z%6u6(j$(Kl*~n-agtm`lp2YdC(ag86zBXdYw_>JI2q3QwmG+x|H^ezK{lR>rWYT)3 z7AajK(C0BHj+3|9*n`_7fk7JjklrCq(^h5)8h^C`-o-u5ldMhcMkkYuL=yu(U-D&T z@0d8A)m%^syDHdJmbN_VI{2PNnzEVjsW@M?1Dp~14a0A^2{Gw9PR_O-N&K)5de&?? zUt8^aWQSVEb-X+gkI;Pk#HRbN%rt?DmCPn>LDk0MMCYF~4iqkoUPiY>5&HZJb%U&(j8gHb{w|`Ew z9BJ1e0yxUi(slGS3ku9=mgpxU>LnZUrfb?% zy4Em*S^ZQTu{Qawsg6-$A<-zQHL~Bt$WyChH~LEcQNhr#jx9}*YQF)s6`Sd7XBL_- z#_}olqCZXfGTd7OVXMy)trk-#M~~@`CNh0+`dmnr%(ZD{PXjR%s zWyJ+5_a;Pj?!!4{Xwp$%m5(mFnCC}kBK`q&obd_KE#S>XwQrehm}rN(Ie)x1_q0I_ zgT1DHZ4OvjgOycRZgPcAIj%LczR;@?MQT<4@++60Bhb1xkaeDoO$jCTbqs9L{{t$T zx^qenYd~#Zg=~FqkJ2cDf9S9h>RT&Pk=ouV=;}!0$txKafz&EwMGr5sDgN9v|ETs#vrN$k~Yv^dQS1%{L0?OMOOMbfK zO6tnA7@RWmRq}kfYdj}8DBJfrOuI3|`2`{&e?$$_a}RXJJ;V;=nj{_tH7K-owzEcU zejPy-LBpv}0}Q~KL+X(3H^=H;VSVNOQH=y5m$VrYFP&$Z^Ebik&N>adBJP;OEXU}# ztVpPfK#juyXA??4;Z+Y0#})INXmG%nEKY&2f|41(M|wN$Z0@>DG;rF7f;fpJB!_JM zGH!AxWlE5yZm~i#N3rk+;k4hL9o&19?ifFyU}P*$r-&8bwd#q+#%JV$&Fm@L?W3-FwcE*mXuN zW<^!p=u@kaqg2{xSinm^m9jal@i1L%mrb`eiJ+$Al09upo)2jI_F7Qc;Y%{TZ-Hk* z=wmyWzE*l`93H-)F8OL1Xk#B;=)I0eWEC*>;}T8ufiZO9tvbKTc%7w!#8|H-9{l&OTK<8MDwxFWtWdNF{c~=u`&>E9{~q z%vG_M*^4C_E5CASDo(Y~rE_^LdZ=}okzW6M8a@`7BQr>)2rHZZ$Vb*yu*J}n1YG<5 zM_kF9Le2ciciz&AspPo8}%g1 z3L+~-VXPt|=b0|KLYMY;1G>USn|nfy53EXrwVUo37kMAQv?yf^IqtDqgt)qN%@)3U zx0%eU1k`0;Iv&pz0c?sFQwdp{iOJ&&{IRcbnoo>Na`XI(q zcc(%);h+FBDEzg@ZMi9*1ELeK9E4>)B31h_C|2aR*2yuRcU%Ph%|+w4yu#i^E7OK0 z=Q^z%P_DpE+i2x=)dr<(|M-Q%0njv}!j;n?YBfTdu>jMJno0-K$O&U^(tl<6nDI2BFEEo6Vn-9ffWJB>`+mFE3Xm4pu^r_UZ z-f~xILXb-M%LuHMScwk()Kn4|`=LElj}Cb#*e3Qh@}9CXb1j*u`6Z8Zwpo3VXu7Am z?Tlt#^O6p=3>G24qcOmaq@Z{|_yDQ5EC!U(Enj4QGXk4-M^nJ6Q^8SDjp`U*fm1o} znBL)8&(YLmWH-@FvB- zj3l`?4$rw%i6&R~_?}0(WR-7qXmW*WjG@fBAFYJYXU!@S9)H&AQ5^e}Tx`(?YvG}@ z?n(@Z%Mv^eHui$hco!N#cj_#%`jhO`A}XOo`VLK&tXNb1_=Gof%kV)d`-^0oG0~-M zjsBeRGz-5p?#QI&cbY_YLW2@NLTDj$&qkJGQ<*gm3rw4ESVn!)MdS8(S zlPQ;~xjO=w7fG5kf|?H7!COfCC8WX1I?1}bT^}SAoWawf{Y;a+@WXUBtB8Eyg40`u zt})oU30e7$d0QjzeMrNnLLxhq=N|hPG&$nz8RzS>=)4MfjClB_%91*IU4pU4D6RNY zXISrs2ZP3p$s78FkE~aDcSWJ9h-p7H2SdU1%7RhW@cZofV3~Lk5m^pG5O@SGuMA@o zp(i!FxUuV)Qk0+^R@Hlq^Im7k?icB0J#J1ZhGl>D#i+G>L zI8#8+I&JZ3kFx!IUcWz_iwgFuZ+f znZX{%vu3EWCGe^z^+vIk{4ptIPC!EBmdodj&b5RsJSG~u3a&0Ry9^XCS1=>EVEQRw}+W5HBf0)4b$Or3&<1CLg_E!T(<&A z+X+OIR)HO-;T<_6%=&+Y#`?-J{ZUa-7>lUqGxp|oNm!gV;>+hB$_YsJSFEgpZBOYJ zy2fb-_Ol^Bz>0ZYr50kT8m_X0g6WQ&3_6xx1G4Az=^)zLcl|=H)aV-_iUu)_ZoVc+JCZfydKe3Lc4ilC1k9K$^CW)3#^E&2WKB-g1l5GvNhMyX#<3(vk z5g5$emnuCv>(ih~iVpybsyfHTw#y%p5sL8?@Mm2M0&^gXB=xbrkXIQ zTrz%y^iHai7#PwYdC&m&Fye6*em1WnK2Z6BMLE7}XLIMuO36gftum)b+`xUN&dU-- z#7>7yG{gxCOWH-jv>o}EI5PaZ^Y0D{RSDe!(k?7-0fV~NssQh*Q?-*tC3Wvo=G6u) zRzq=^$QP;n0fV`a2TP=!sH72uRTW4Wdcws!?>BU+vW8*vsDDsKI)=ZJ>wt@rvxvyj zI%eSTU&rk=w}5opAg?%hi=F2yWUcGeg@haZvhi-XKyNx-aPL@~#WYiK&}DZd$1R}s z{JZ59?e&-B_vs_h%p9xQ9CObI^8UOGQ{uM>XOmfTxelue4&~hL3cfQ^EVF_;>DR+w zfDr-e5x&=m0RHE_&`2&rMAJ*h7HoX{uY!PDDj3Lz!dT83?P?aV=8SbZPVUtfEF>?i zuo7CRUL=Gl`~cs5b^JPNbFjeO$$x{S$m1TpcXPu>vqIqE$We3bGXX9S-8gV!{P$_{ zRj!A(fQy$Wp|^l&yqf4Ij<@f}7Ml%29OV*O*T12{^KkSgs#74Dxi1@WX=af71Ddid zf^GPB5GxySm?sFlW`vfn;>ctiPIeMK%@D^P*HuCvu~bKQbc-UZy5$-ZW4mZ{pFB{A zXsNvGwn2mvQu?YtW1nFz1q1egk`4_fTO0~hKQu3ATOVIwDhj0ConO?Jq!~iR=qU(m zY*d`Tz|K-HM*{NTJ*mt6{ofs_OHK_0`SQk})me=fJiT$!Zt$I&-2tBJ)q zq{1+L6KWF@hh5DD(uq)mQgfSvPMh$TZirZ*)I|~hPYmW9Z7$5dkRR%vr=d0{Q zzb}Uxmki%Y)k9QQ+GwP6$Pq4qU{(;d1LOF$zS{CbRj};!zRNYV z8;@ai84EE*{syk~w9)yT8z0*il~DpxUvN&qnNMY|zPEtcdgWI$zTLL~JNQkJaLYvm z*O}WNla_?|Xhl7IEP6$d!SGzH!QYcHqAgn8arBBpWEIT6`&{fMr`aPS%ZCFYjwCbtgbzej=dtW392l?`%RPCL(f|dUXnEBTd3f+WQB2J zA9poHiTo2f4ee`M3p=Wn(d@9OBfZo(a#~1Q*ypch+lgB=g(Ij(j;9eaX1U5%xHwM6 z!d-G(1+QaIjmL1oj$M-#VIEIYiTmfL93|^COG16g%-PJI`%8$CdJ-`nO?P&c{?j;$ zgImDvE#RwHKy0&wXjad#G)itUxzzLxf&WB^@hUOE{Rw4h|vbhXruT^H}%S zKL%S-HDjnv%*2ETB%6+JyeoW=d?p~mZ^z@s*t!LD1YJ`>p3i1i z>fQnx%WeVWw}4|kMEmI;JbUH6!g)}`YrLUr1Puze;N^CC3dk;Z-bnk?PtOH&FECy| zA#B4~1RsU4%kEEDQ9B}!%`I(syOFk;t_(f*<1V5o$PN28_~nl~RTg^dC5bL(<)xO= zF?k!+7xBluy?*bQMSEWy>ZOeo`*6oT5i(_rWF17;={30VGSZDStdw4D3==s+h0Nk~ z-K%sKFSBOImuh+W{ol&=3y$>JSgYEgYHaLnEjc-*ZUWcJq9^IT@pr5g=DQYzWfv7| z=?aXm?7gw33(~E#YV@YZCb}yotL3$ZzOA2})}z&Vfvr5$wExGcME+32b%I&~C^i$X|yZ-0I` zS4Koi)WG76HmX|rs5x%T>&$!&~r2Nmuz|)7=(1iZMk9lhA1j_dC4+HEVR@Sv( zy(2-zA0v+#-2~)I%#YVn!cCn=S_qEvCTeR()NPRKAM}_EIa?D6CZ*NS%}*ZqX@L1 zqJ=cfVOwb-KZoMzE=eq<<7OLxrRu zSlJZ#Ec92F@$pn+$GjD}V{;2Z(1KK-5n8#UvwBG)U8R1jsr0FM8X2)L{|@6w!)z}~ zE)cF8GmKpuM!8DQIOs#Uz90}-^GNO<0j?u|l~A|0iGCKMX5e|PuQ<-pC&y_4^hiBU z2TkWbc7(Xyj^Ky>M&F;dYS0zFhKx~e#o)<#6itf zfUdMV&*EWB6|6@+T9C4dkE}Msj<=P?tsE0uHK&A%+BK)7tsuYfWgRWYh10LiZ z{>}g@`XEqcKAt#f=1oJ*MEa84$Up@74Z(kwW~hwz3auLewK7v;&cAe}MYjvg<|ReA znwDXq2?^iymgPXH8_ZD)S%iWf{LF7Hs)B)Mv0M+(z`6sKqUup{VagWEAqU|}y8dsA zR*^X6eyy$@iQ_Zj=cMtYHw?Y_)XfSq-w@m><+JRUk?W%w0YTHxa50-vsI>EJPR~apes?AjBrHo!bR3B``gc0H)Fh1v9ikqq&1O^*6!?>8cbz8*fTz z-kl5`#70diWH;*GG_qWK2YTEjZD${Dw_I@F;%8|9WXDmhjMg`gc;*Lpf;{$HGb94( z1?IOD7BcCEqF7oxWzJ{IcCDU>eBNtUX}os068S0-1^^i1Cx+0Mb6w{ggh&;xtnc&` z^+)%gCNYbps|`)q=iLH8q$~8XU9L%>=$GLIRG(-0o$Yg%)PfU|h@4C6Q!^;DGi9T`513&7ZulbubyMP`{JGv%{G60P<61ktf3G zIA!gqFa3xNo^mj84Nu$F>Ysv^I<=?Xa2I{@+hAchw3)Abfq=AB3z)FKTHUc4^~X^l z$Xz9i+Ft7}vra7B0`~hI_a0mX>5UIQb>a4Y$5b%9v#Q6dtKqBZZkuK1P_>vIq3FJ= zA6k9_wScbh+DSWs0vWqZm`)QXYR2L}LPsYTWKp)ivsUc2VAlXU$4} zH_Nq=*n?X@qQjM@l4;!|EJ~+(zog(a@eRihonr2^AUeZ$5hAM7h3D8}mZAP8xUaYL zc#WIPqcYWReylY}aafvLk0fS7QzKH40tON2(UtvDE6SqdHLqRL`-w@!P(}ZBGOkC` zn?qYyyMkjt!))IlBwMMJEtIkAFaM3##-}FN#sy(EAl)*P6zD=pZ}bOsJ_UAluG#%nWJLs32u^qiLy4onW6^G4C~zElSgXCB{k7 zv({a_8WvR*l`Tt7TMpI~97I4)inMCEg>|TzGkS#Sg57oKA6pIdis+qYLt=F$rW0)S zf{mHPOH;$M%+X7o?TOodR~@YuWc_-kSM21#C}c{M zj|uOjADP0!#K>VIRcx$4pdJk|<4IXK*++Iu!_(@ZV#eHDp$qe)hSv?UPO{Ei&xL$Eaw$kj= z-s#kao!@Max(2PD2;nWl>Et2AvYl<`GWy}oA8_BglRC_5{IVX1Nl@Ooa!p}lo9;3! z`u(3snx*4j&vlQDq~Th68CA9QLSVN><;^4F#kkWfDeKrLL&2n6uyBg9-YPyd^$=n0 z4bQ~g>w~?XD+&cylcOhnmCx6zDotZ>T{viJUf7yQ_w0q`(Y(5F;Z7j7*GJHN%h`l_ zQ7eeVpe?|jGf;$a+8%Is;dKFime@$k@y+0&Y^XT+ z)J=zMjoH^d|5TQL;293umA^5dpW~{aXs&O8RA8TV#LOx_obXn|idUy$`aBXdtjj-i z?sVu9G^}WkYkV$ooIU5X)As?rTpQ#>biGJrfq$K0gG?;j!4&sFtu$12b+1f>h%?@} z%U?;WqGl?%#j%VW4LF!BgED0M^$W82qSK@!eh2hZKEchE>CV>^jUM$TnrNAbv4Z$r z_140k;!fkvZ)JY4zFslDDHrZb-Mf<4QKa_BO|nOZTQ3ppr3@g=P+nkyc|zNa*@QR8 zuSTP)!6VFdos1EufC}#L1J}4CPNCVpej^QnK>$!Kd`qe4_$bH zwA~OWPBe0&>P{$hRs$Mu!2Cp?w+7XK__J>T)ErZ)f|E&WllK~Pn-tRxLR7<_arU9b zvytT``I!EsR)zwF%zGL_)_oSt*Rj%WWG6>WZuCVG-oN~#L(LUqM5(!(yuXfbNiHn+ zA@sQJIedy+?iZGr)UDCzT_{o)SgzB_ix()kSGlbxMlziJuqVy*R8o|69Y?HKrB`F$ z__APlq5sPw6sxb{-t`!rN-lIiUSwHu@sgEMV(tTIf(FgnXU~9tAd2;U$m`*xP!~^t zwWfN?rg|{YB994u@=~V^K^uw=1`zUR7|zjp_9f>WqSi}I9(ikifyWDMTEE_vj6lca zm{r7`f346c&Se~bGyv!7kyDI-Eim<8YMU{%*ScbSw}5!tD+9JSs_cv1+C^q9?E`BL z(*<_DqsB7Ys#>9-nttr1lWf7I6#I7@p?`+R9bBJ@j?%a0N|aa0SL zbd)K%PipF8T>UM;)@nPh3s_oRp(Q6`i7`UbB55^$r1hML4BJZ1C*1lfTGrdYx?^+-Z;%$#P1S5on*=h`Urz@K?v%Jt3Wr zvJbM`J9Jv9zad_6+SHC0ltdC0TOIWWG;{(x&Jr@n^c2gbzTs38fm8pYAzP@2siGU| z8BSI^O6L_uT9ECp*d8#HNEd1~^Bi(@bHM#2+)aU5`qfPKUOG)E%ZI0O9XoN_=`Oi^CZp8-${rdQqM)cM!MMaS z#)=+@$Tm>VW6oZ(1u5MU_*TvmXWk`BD|YusyjC=i2zJT9OmSL##=YOeY9!4l3#YSv zF%$eaAZCzGw94?8Q?OMde}tt^c|$^t5zvgvNt8nwB&cc;=Hgw^CKzLye2-{_QrGc# z>e~bTD^q9jTyq^-o5*a(;Q+A(|7d}y=;>PLOIWIMZq4SLmTF#?83=!y9o9sh-{^T= z(H@)~?moC2QJ4T!-C&lbE`++o(>JlK4c7v8M5cxJqxY181go<8)9uIImRRci+#F{U zigw457NSzoLkPnqRzp*PERahiod0%x@RBS4-h

Z>>`8aeAOO-Va==t6V&zz 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 J>({@>{x73826+Gg diff --git a/test-results/bezoeker/02-app-detail-3d-digital-twin.jpeg b/test-results/bezoeker/02-app-detail-3d-digital-twin.jpeg deleted file mode 100644 index 89b92e93ad5b18520159019c922afe39bb1fee2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203780 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