From 68b499721b36146fff9c3d62d8d3f300887fcf98 Mon Sep 17 00:00:00 2001 From: mini Date: Fri, 7 Aug 2026 14:58:30 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20SignupPage=EC=97=90=20=EC=84=9C=EB=B2=84?= =?UTF-8?q?=20=ED=95=84=EC=88=98=20agreements=20=ED=95=84=EB=93=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit server #100에서 SignupRequest.agreements가 @NotNull 필수로 바뀌었는데 client가 안 보내서, 지금 상태로는 실제 회원가입이 전부 400으로 실패하고 있었음. curl로 직접 재현 확인. 화면의 서비스 이용약관/개인정보/마케팅 체크박스 상태를 agreements.service_terms/ privacy_policy/marketing으로 매핑해서 전송. 로컬 서버에 실제로 붙여서 201 확인함. Closes #279 --- src/pages/SignupPage/SignupPage.test.tsx | 5 +++++ src/pages/SignupPage/SignupPage.tsx | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/src/pages/SignupPage/SignupPage.test.tsx b/src/pages/SignupPage/SignupPage.test.tsx index db20a76..0ef9fc9 100644 --- a/src/pages/SignupPage/SignupPage.test.tsx +++ b/src/pages/SignupPage/SignupPage.test.tsx @@ -116,6 +116,11 @@ describe('SignupPage', () => { display_name: '김경민', email: 'mini@naver.com', password: 'password123', + agreements: { + service_terms: { agreed: true, version: '1.0' }, + privacy_policy: { agreed: true, version: '1.0' }, + marketing: { agreed: false, version: '1.0' }, + }, }) }) diff --git a/src/pages/SignupPage/SignupPage.tsx b/src/pages/SignupPage/SignupPage.tsx index 9240015..3989399 100644 --- a/src/pages/SignupPage/SignupPage.tsx +++ b/src/pages/SignupPage/SignupPage.tsx @@ -24,6 +24,9 @@ interface SignupResponseBody { email: string } +// 화면에 표시된 약관 버전. 약관 문구가 바뀌면 같이 올린다. +const TERMS_VERSION = '1.0' + const SERVER_FIELD_TO_SCREEN_FIELD: Record = { company_name: 'workplace', display_name: 'name', @@ -84,6 +87,11 @@ export function SignupPage() { display_name: name, email, password, + agreements: { + service_terms: { agreed: termsAgreed, version: TERMS_VERSION }, + privacy_policy: { agreed: privacyAgreed, version: TERMS_VERSION }, + marketing: { agreed: marketingOptIn, version: TERMS_VERSION }, + }, }), skipAuthRetry: true, })