1
0

2 Commits

Author SHA1 Message Date
fs
fecbbdde24 test(customfield): cover UserCustomFieldValueService (6 public methods)
Cluster B2 der Testabdeckungs-Initiative. Baut auf CUSTOMFIELD-DI-REFACTOR-001
auf und deckt den 610-Zeilen-Service mit 25 Unit-Tests / 53 Assertions ab.

Abdeckung aller 6 public methods:
- validateForTenants (4 Tests)
- buildDefinitionsByTenant (3 Tests)
- buildUserValueMap (4 Tests)
- buildPublicValuesByTenant (3 Tests)
- syncForUser (7 Tests: alle Type-Branches + Repo-Failures)
- extractCustomFieldFilterSpec (3 Tests: cf_/cfm_/cfd_ Praefixe)

Tenant-Scope-Edges (GR-SEC-009) in allen vier relevanten Methoden
explizit abgedeckt: buildDefinitionsByTenant, syncForUser
(deleteByUserOutsideTenantIds), buildPublicValuesByTenant
(tenantScopeId-Filter), extractCustomFieldFilterSpec (getUserTenantIds).

Gates: QG-001 (1994 Tests) / QG-002 / QG-006 pass.

Workflow: .agents/runs/TEST-CUSTOMFIELD-USER-001/

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 19:49:45 +02:00
fs
36d2bf5c15 test(customfield): cover TenantCustomFieldService (5 public methods)
Cluster B1 der Testabdeckungs-Initiative. Baut auf dem DI-Refactor aus
CUSTOMFIELD-DI-REFACTOR-001 auf und deckt den 332-Zeilen-Service mit
24 Unit-Tests / 57 Assertions ab.

Abdeckung aller 5 public methods:
- listForTenant (3 Tests: invalid id, leere Definitions, Merge mit Options)
- createForTenant (8 Tests: id/tenant-Validierung, Label/Typ-Validierung,
  key-Kollision-Fallback, select/text happy paths, insert failure)
- updateByUuid (5 Tests: empty/unknown uuid, same/different-key, select
  vs. text Sync, update failure, duplicate key von anderem record)
- deleteByUuid (4 Tests)
- definitionTenantIdByUuid (2 Tests)

Tenant-Scope-Edges (GR-SEC-009) explizit abgedeckt.

Gates: QG-001 (1969 Tests) / QG-002 / QG-006 pass.

Workflow: .agents/runs/TEST-CUSTOMFIELD-TENANT-001/

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 19:39:37 +02:00