Background
Three services have no test coverage:
ScmIntegrationService — manages SCM (GitHub/GitLab) integration configs.
ScmTokenEncryptionService — encrypts/decrypts SCM tokens at rest (added in V31 migration). Critical security code.
OidcAttestationService — handles OIDC-based attestation verification.
Tasks
Files
backend/src/main/kotlin/com/factstore/application/ScmIntegrationService.kt
backend/src/main/kotlin/com/factstore/application/ScmTokenEncryptionService.kt
backend/src/main/kotlin/com/factstore/application/OidcAttestationService.kt
Background
Three services have no test coverage:
ScmIntegrationService— manages SCM (GitHub/GitLab) integration configs.ScmTokenEncryptionService— encrypts/decrypts SCM tokens at rest (added in V31 migration). Critical security code.OidcAttestationService— handles OIDC-based attestation verification.Tasks
ScmIntegrationServiceTestcovering CRUD operations and conflict/not-found casesScmTokenEncryptionServiceTestcovering encrypt→decrypt roundtrip and edge cases (empty string, long token)OidcAttestationServiceTestcovering attestation verification happy path and invalid token casesFiles
backend/src/main/kotlin/com/factstore/application/ScmIntegrationService.ktbackend/src/main/kotlin/com/factstore/application/ScmTokenEncryptionService.ktbackend/src/main/kotlin/com/factstore/application/OidcAttestationService.kt