test(e2e): smoke test через Testcontainers + fix audit_log.ip_address INET bug
Phase 1 e2e — proof framework работает: - E2ESupport: Postgres 18 (postgis/postgis:18-3.6) + Kafka (cp-kafka 7.6.0) через Testcontainers, reuse=true. db-init.sql создаёт postgis+btree_gist расширения которые ожидает Liquibase 0001. - application-test.yml: тушит cloud-config/vault/otel/outbox publishing, включает Liquibase autoconfig. Auth disabled для упрощения. - SmokeE2ETest: full e2e — POST dictionary → POST record → GET record → проверка audit_log row. UUID-suffix в dictName для идемпотентности. - master.xml: relativeToChangelogFile=true для всех include — иначе Liquibase из ordinis-app classpath не находит changes/X.xml в JAR. - pom.xml: testcontainers 1.21.3, surefire env DOCKER_HOST + DOCKER_API_VERSION для macOS Docker Desktop. Найден реальный prod-баг: audit_log.ip_address был INET, Hibernate JPA не делает автоматический cast String→INET → INSERT падал. AuditLogger.write обёрнут в try/catch, поэтому тихо съедал ошибку — на staging audit_log оставался пустым после CRUD. - 0012-audit-log-ipaddress-varchar.xml: ALTER COLUMN INET → VARCHAR(64) - AuditLog entity: убрал columnDefinition="inet", length=64.
This commit is contained in:
+1
-1
@@ -71,7 +71,7 @@ public class AuditLog {
|
||||
@Column(name = "request_id", length = 64)
|
||||
private String requestId;
|
||||
|
||||
@Column(name = "ip_address", columnDefinition = "inet")
|
||||
@Column(name = "ip_address", length = 64)
|
||||
private String ipAddress;
|
||||
|
||||
@Column(name = "user_agent", columnDefinition = "TEXT")
|
||||
|
||||
Reference in New Issue
Block a user