test(deploy): clean up seeded users + document null createdBy placeholder

Fix Issue 1: Add @AfterEach cleanup for alice/bob users in PostgresDeploymentRepositoryCreatedByIT to prevent test leakage (FK order: deployments -> app_versions -> apps, then users).

Fix Issue 2: Add comment at first create(..., null) call site in PostgresDeploymentRepositoryIT documenting the null placeholder for pre-V4 rows where createdBy is nullable.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-04-23 12:10:21 +02:00
parent a141e99a07
commit 9043dc00b0
2 changed files with 11 additions and 0 deletions

View File

@@ -3,6 +3,7 @@ package com.cameleer.server.app.storage;
import com.cameleer.server.app.AbstractPostgresIT; import com.cameleer.server.app.AbstractPostgresIT;
import com.cameleer.server.core.runtime.Deployment; import com.cameleer.server.core.runtime.Deployment;
import com.cameleer.server.core.runtime.DeploymentService; import com.cameleer.server.core.runtime.DeploymentService;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +28,7 @@ class PostgresDeploymentRepositoryCreatedByIT extends AbstractPostgresIT {
jdbc.update("DELETE FROM deployments"); jdbc.update("DELETE FROM deployments");
jdbc.update("DELETE FROM app_versions"); jdbc.update("DELETE FROM app_versions");
jdbc.update("DELETE FROM apps"); jdbc.update("DELETE FROM apps");
jdbc.update("DELETE FROM users WHERE user_id IN ('alice', 'bob')");
envId = jdbc.queryForObject( envId = jdbc.queryForObject(
"SELECT id FROM environments WHERE slug = 'default'", UUID.class); "SELECT id FROM environments WHERE slug = 'default'", UUID.class);
@@ -50,6 +52,14 @@ class PostgresDeploymentRepositoryCreatedByIT extends AbstractPostgresIT {
versionId, appId); versionId, appId);
} }
@AfterEach
void cleanup() {
jdbc.update("DELETE FROM deployments");
jdbc.update("DELETE FROM app_versions");
jdbc.update("DELETE FROM apps");
jdbc.update("DELETE FROM users WHERE user_id IN ('alice', 'bob')");
}
@Test @Test
void createDeployment_persists_createdBy_and_returns_it() { void createDeployment_persists_createdBy_and_returns_it() {
Deployment d = deploymentService.createDeployment(appId, versionId, envId, "alice"); Deployment d = deploymentService.createDeployment(appId, versionId, envId, "alice");

View File

@@ -65,6 +65,7 @@ class PostgresDeploymentRepositoryIT extends AbstractPostgresIT {
null null
); );
// pre-V4 rows: no creator (createdBy is nullable)
UUID deploymentId = repository.create(appId, appVersionId, envId, "test-container", null); UUID deploymentId = repository.create(appId, appVersionId, envId, "test-container", null);
repository.saveDeployedConfigSnapshot(deploymentId, snapshot); repository.saveDeployedConfigSnapshot(deploymentId, snapshot);