init: 클린 기반 auth 서버 설계
This commit is contained in:
+116
@@ -0,0 +1,116 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
|
||||
<title>Test results - class_level_validation_failure_is_reported_under_global_bucket()</title>
|
||||
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
|
||||
<script src="../js/report.js" type="text/javascript"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="content">
|
||||
<div class="breadcrumbs">
|
||||
<a class="breadcrumb" href="../index.html">all</a> >
|
||||
<a class="breadcrumb" href="index.html">com.project.auth.ValidationExceptionHandlerIntegrationTest</a> >
|
||||
<span class="breadcrumb">class_level_validation_failure_is_reported_under_global_bucket()</span>
|
||||
</div>
|
||||
<div class="tab-container">
|
||||
<ul class="tabLinks">
|
||||
<li>
|
||||
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab">
|
||||
<h2>Gradle Test Run :bootstrap:test</h2>
|
||||
<h1>class_level_validation_failure_is_reported_under_global_bucket()</h1>
|
||||
<div class="tab-container">
|
||||
<ul class="tabLinks">
|
||||
<li>
|
||||
<a class="" href="#">summary</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="" href="#">standard output</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab">
|
||||
<h2>summary</h2>
|
||||
<div>
|
||||
<div class="summary">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="summaryGroup">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="infoBox">
|
||||
<div class="counter">1</div>
|
||||
<p>tests</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="infoBox">
|
||||
<div class="counter">0</div>
|
||||
<p>failures</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="infoBox">
|
||||
<div class="counter">0</div>
|
||||
<p>skipped</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="infoBox duration">
|
||||
<div class="counter">0.037s</div>
|
||||
<p>duration</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="infoBox success successRate">
|
||||
<div class="percent">100%</div>
|
||||
<p>successful</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab">
|
||||
<h2>standard output</h2>
|
||||
<span class="code">
|
||||
<pre id="root-0-test-stdout-class_level_validation_failure_is_reported_under_global_bucket()">2026-05-12T15:59:46.115+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
|
||||
2026-05-12T15:59:46.115+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
|
||||
2026-05-12T15:59:46.116+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
|
||||
2026-05-12T15:59:46.120+09:00 DEBUG 3742337 --- [ Test worker] [traceId=3a984c61c5768cf40e72193588812db9] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ValidationExceptionHandlerIntegrationTest$ValidationTestController#signup(SignupRequest)
|
||||
2026-05-12T15:59:46.124+09:00 DEBUG 3742337 --- [ Test worker] [traceId=3a984c61c5768cf40e72193588812db9] m.m.a.RequestResponseBodyMethodProcessor : Read "application/json" to [SignupRequest[password=abc, passwordConfirm=different]]
|
||||
2026-05-12T15:59:46.135+09:00 DEBUG 3742337 --- [ Test worker] [traceId=3a984c61c5768cf40e72193588812db9] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.ValidationExceptionHandler#handleValidationException(MethodArgumentNotValidException)
|
||||
2026-05-12T15:59:46.136+09:00 WARN 3742337 --- [ Test worker] [traceId=3a984c61c5768cf40e72193588812db9] c.p.a.p.s.e.ValidationExceptionHandler : Validation failed: {__global__=[passwords must match]}
|
||||
2026-05-12T15:59:46.138+09:00 DEBUG 3742337 --- [ Test worker] [traceId=3a984c61c5768cf40e72193588812db9] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
|
||||
2026-05-12T15:59:46.138+09:00 DEBUG 3742337 --- [ Test worker] [traceId=3a984c61c5768cf40e72193588812db9] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-001, message=요청 값이 올바르지 않습니다., data=null, errors={__global__=[pas (truncated)...]
|
||||
2026-05-12T15:59:46.142+09:00 DEBUG 3742337 --- [ Test worker] [traceId=3a984c61c5768cf40e72193588812db9] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in java.lang.String com.project.auth.ValidationExceptionHandlerIntegrationTest$ValidationTestController.signup(com.project.auth.ValidationExceptionHandlerIntegrationTest$SignupRequest): [Error in object 'signupRequest': codes [PasswordsMatch.signupRequest,PasswordsMatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [signupRequest]; arguments []; default message []]; default message [passwords must match]] ]
|
||||
</pre>
|
||||
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-class_level_validation_failure_is_reported_under_global_bucket()">Copy</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<p>
|
||||
<div>
|
||||
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
|
||||
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
|
||||
</label>
|
||||
</div>Generated by
|
||||
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51 PM</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+115
@@ -0,0 +1,115 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
|
||||
<title>Test results - constraint_violation_uses_json_pointer_for_property_path()</title>
|
||||
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
|
||||
<script src="../js/report.js" type="text/javascript"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="content">
|
||||
<div class="breadcrumbs">
|
||||
<a class="breadcrumb" href="../index.html">all</a> >
|
||||
<a class="breadcrumb" href="index.html">com.project.auth.ValidationExceptionHandlerIntegrationTest</a> >
|
||||
<span class="breadcrumb">constraint_violation_uses_json_pointer_for_property_path()</span>
|
||||
</div>
|
||||
<div class="tab-container">
|
||||
<ul class="tabLinks">
|
||||
<li>
|
||||
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab">
|
||||
<h2>Gradle Test Run :bootstrap:test</h2>
|
||||
<h1>constraint_violation_uses_json_pointer_for_property_path()</h1>
|
||||
<div class="tab-container">
|
||||
<ul class="tabLinks">
|
||||
<li>
|
||||
<a class="" href="#">summary</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="" href="#">standard output</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab">
|
||||
<h2>summary</h2>
|
||||
<div>
|
||||
<div class="summary">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="summaryGroup">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="infoBox">
|
||||
<div class="counter">1</div>
|
||||
<p>tests</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="infoBox">
|
||||
<div class="counter">0</div>
|
||||
<p>failures</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="infoBox">
|
||||
<div class="counter">0</div>
|
||||
<p>skipped</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="infoBox duration">
|
||||
<div class="counter">0.022s</div>
|
||||
<p>duration</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="infoBox success successRate">
|
||||
<div class="percent">100%</div>
|
||||
<p>successful</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab">
|
||||
<h2>standard output</h2>
|
||||
<span class="code">
|
||||
<pre id="root-0-test-stdout-constraint_violation_uses_json_pointer_for_property_path()">2026-05-12T15:59:46.151+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
|
||||
2026-05-12T15:59:46.151+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
|
||||
2026-05-12T15:59:46.153+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 2 ms
|
||||
2026-05-12T15:59:46.155+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1c3315bffbb2eb84202975305487dab8] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ValidationExceptionHandlerIntegrationTest$ValidationTestController#search(String)
|
||||
2026-05-12T15:59:46.166+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1c3315bffbb2eb84202975305487dab8] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.ValidationExceptionHandler#handleConstraintViolationException(ConstraintViolationException)
|
||||
2026-05-12T15:59:46.167+09:00 WARN 3742337 --- [ Test worker] [traceId=1c3315bffbb2eb84202975305487dab8] c.p.a.p.s.e.ValidationExceptionHandler : Constraint violation: {/search/q=[must be at least 2 chars]}
|
||||
2026-05-12T15:59:46.167+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1c3315bffbb2eb84202975305487dab8] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
|
||||
2026-05-12T15:59:46.167+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1c3315bffbb2eb84202975305487dab8] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-006, message=요청 값이 제약 조건을 위반했습니다., data=null, errors={/search/q=[ (truncated)...]
|
||||
2026-05-12T15:59:46.168+09:00 DEBUG 3742337 --- [ Test worker] [traceId=1c3315bffbb2eb84202975305487dab8] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [jakarta.validation.ConstraintViolationException: search.q: must be at least 2 chars]
|
||||
</pre>
|
||||
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-constraint_violation_uses_json_pointer_for_property_path()">Copy</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<p>
|
||||
<div>
|
||||
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
|
||||
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
|
||||
</label>
|
||||
</div>Generated by
|
||||
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51 PM</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+116
@@ -0,0 +1,116 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
|
||||
<title>Test results - field_level_and_class_level_violations_coexist_in_response()</title>
|
||||
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
|
||||
<script src="../js/report.js" type="text/javascript"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="content">
|
||||
<div class="breadcrumbs">
|
||||
<a class="breadcrumb" href="../index.html">all</a> >
|
||||
<a class="breadcrumb" href="index.html">com.project.auth.ValidationExceptionHandlerIntegrationTest</a> >
|
||||
<span class="breadcrumb">field_level_and_class_level_violations_coexist_in_response()</span>
|
||||
</div>
|
||||
<div class="tab-container">
|
||||
<ul class="tabLinks">
|
||||
<li>
|
||||
<a class="successGroup" href="#">Gradle Test Run :bootstrap:test</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab">
|
||||
<h2>Gradle Test Run :bootstrap:test</h2>
|
||||
<h1>field_level_and_class_level_violations_coexist_in_response()</h1>
|
||||
<div class="tab-container">
|
||||
<ul class="tabLinks">
|
||||
<li>
|
||||
<a class="" href="#">summary</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="" href="#">standard output</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab">
|
||||
<h2>summary</h2>
|
||||
<div>
|
||||
<div class="summary">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="summaryGroup">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="infoBox">
|
||||
<div class="counter">1</div>
|
||||
<p>tests</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="infoBox">
|
||||
<div class="counter">0</div>
|
||||
<p>failures</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="infoBox">
|
||||
<div class="counter">0</div>
|
||||
<p>skipped</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="infoBox duration">
|
||||
<div class="counter">0.012s</div>
|
||||
<p>duration</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="infoBox success successRate">
|
||||
<div class="percent">100%</div>
|
||||
<p>successful</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab">
|
||||
<h2>standard output</h2>
|
||||
<span class="code">
|
||||
<pre id="root-0-test-stdout-field_level_and_class_level_violations_coexist_in_response()">2026-05-12T15:59:46.175+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
|
||||
2026-05-12T15:59:46.175+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
|
||||
2026-05-12T15:59:46.176+09:00 INFO 3742337 --- [ Test worker] [traceId=] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms
|
||||
2026-05-12T15:59:46.178+09:00 DEBUG 3742337 --- [ Test worker] [traceId=40737d1324e5f0819295bae39d8673e8] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to com.project.auth.ValidationExceptionHandlerIntegrationTest$ValidationTestController#signup(SignupRequest)
|
||||
2026-05-12T15:59:46.179+09:00 DEBUG 3742337 --- [ Test worker] [traceId=40737d1324e5f0819295bae39d8673e8] m.m.a.RequestResponseBodyMethodProcessor : Read "application/json" to [SignupRequest[password=, passwordConfirm=different]]
|
||||
2026-05-12T15:59:46.180+09:00 DEBUG 3742337 --- [ Test worker] [traceId=40737d1324e5f0819295bae39d8673e8] .m.m.a.ExceptionHandlerExceptionResolver : Using @ExceptionHandler com.project.auth.presentation.support.exception.ValidationExceptionHandler#handleValidationException(MethodArgumentNotValidException)
|
||||
2026-05-12T15:59:46.180+09:00 WARN 3742337 --- [ Test worker] [traceId=40737d1324e5f0819295bae39d8673e8] c.p.a.p.s.e.ValidationExceptionHandler : Validation failed: {/password=[password is required], __global__=[passwords must match]}
|
||||
2026-05-12T15:59:46.181+09:00 DEBUG 3742337 --- [ Test worker] [traceId=40737d1324e5f0819295bae39d8673e8] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/yaml]
|
||||
2026-05-12T15:59:46.181+09:00 DEBUG 3742337 --- [ Test worker] [traceId=40737d1324e5f0819295bae39d8673e8] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [ApiResult[success=false, code=PRES-001, message=요청 값이 올바르지 않습니다., data=null, errors={/password=[pass (truncated)...]
|
||||
2026-05-12T15:59:46.182+09:00 DEBUG 3742337 --- [ Test worker] [traceId=40737d1324e5f0819295bae39d8673e8] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in java.lang.String com.project.auth.ValidationExceptionHandlerIntegrationTest$ValidationTestController.signup(com.project.auth.ValidationExceptionHandlerIntegrationTest$SignupRequest) with 2 errors: [Field error in object 'signupRequest' on field 'password': rejected value []; codes [NotBlank.signupRequest.password,NotBlank.password,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [signupRequest.password,password]; arguments []; default message [password]]; default message [password is required]] [Error in object 'signupRequest': codes [PasswordsMatch.signupRequest,PasswordsMatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [signupRequest]; arguments []; default message []]; default message [passwords must match]] ]
|
||||
</pre>
|
||||
<button class="clipboard-copy-btn" aria-label="Copy to clipboard" data-copy-element-id="root-0-test-stdout-field_level_and_class_level_violations_coexist_in_response()">Copy</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<p>
|
||||
<div>
|
||||
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
|
||||
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
|
||||
</label>
|
||||
</div>Generated by
|
||||
<a href="https://www.gradle.org">Gradle 9.3.1</a> at May 12, 2026, 3:59:51 PM</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+1747
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user