diff --git a/patbond-auth/src/test/java/com/patbond/patbond/auth/controller/AuthControllerTest.java b/patbond-auth/src/test/java/com/patbond/patbond/auth/controller/AuthControllerTest.java index 128d5ef..a6b14aa 100644 --- a/patbond-auth/src/test/java/com/patbond/patbond/auth/controller/AuthControllerTest.java +++ b/patbond-auth/src/test/java/com/patbond/patbond/auth/controller/AuthControllerTest.java @@ -110,7 +110,10 @@ class AuthControllerTest { // Frozen contract: exactly these six fields, nothing else. .andExpect(jsonPath("$.data.username").doesNotExist()) .andExpect(jsonPath("$.data.nickname").doesNotExist()) - .andExpect(jsonPath("$.data.expiresAt").doesNotExist()); + .andExpect(jsonPath("$.data.expiresAt").doesNotExist()) + // Envelope is exactly {code, message, data}: the derived + // isSuccess() getter must not leak onto the wire. + .andExpect(jsonPath("$.success").doesNotExist()); } @Test diff --git a/patbond-common/pom.xml b/patbond-common/pom.xml index 4941a2e..407afc7 100644 --- a/patbond-common/pom.xml +++ b/patbond-common/pom.xml @@ -25,6 +25,12 @@ jakarta.validation jakarta.validation-api + + + com.fasterxml.jackson.core + jackson-annotations + org.springframework.boot spring-boot-starter-test diff --git a/patbond-common/src/main/java/com/patbond/patbond/common/response/ApiResponse.java b/patbond-common/src/main/java/com/patbond/patbond/common/response/ApiResponse.java index 21dd907..1460166 100644 --- a/patbond-common/src/main/java/com/patbond/patbond/common/response/ApiResponse.java +++ b/patbond-common/src/main/java/com/patbond/patbond/common/response/ApiResponse.java @@ -1,5 +1,7 @@ package com.patbond.patbond.common.response; +import com.fasterxml.jackson.annotation.JsonIgnore; + public class ApiResponse { private Integer code; @@ -23,6 +25,11 @@ public class ApiResponse { return new ApiResponse<>(code, message, null); } + /** + * Derived convenience only — not part of the frozen wire contract + * {@code {code, message, data}}, hence never serialized. + */ + @JsonIgnore public boolean isSuccess() { return Integer.valueOf(0).equals(code); }