Skip to content

회원가입 테스트 작성#35

Merged
mung96 merged 8 commits into
mainfrom
test/signup-vi
Apr 29, 2026
Merged

회원가입 테스트 작성#35
mung96 merged 8 commits into
mainfrom
test/signup-vi

Conversation

@mung96

@mung96 mung96 commented Apr 29, 2026

Copy link
Copy Markdown
Owner

No description provided.

@mung96 mung96 self-assigned this Apr 29, 2026
@vercel

vercel Bot commented Apr 29, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dev-time Error Error Apr 29, 2026 10:00am

@gitguardian

gitguardian Bot commented Apr 29, 2026

Copy link
Copy Markdown

⚠️ GitGuardian has uncovered 1 secret following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secret in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
30265416 Triggered Generic Password 4012709 src/pages/auth/signup/ui/signup-page/index.test.tsx View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secret safely. Learn here the best practices.
  3. Revoke and rotate this secret.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

@mung96 mung96 merged commit 7fa3c96 into main Apr 29, 2026
1 of 4 checks passed
@mung96 mung96 deleted the test/signup-vi branch April 29, 2026 10:01

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request implements the signup feature, including API integration, MSW mocks, and comprehensive testing with Vitest and Playwright. Key UI changes involve refactoring the email field into a controlled component. Feedback focuses on resetting the duplicate validation state upon input changes, ensuring error messages display correctly when fields are empty, addressing flaky tests identified in TODOs, and removing explicit timeouts in E2E tests to follow Playwright best practices.

value={emailField.value}
errorMessage={errors.email?.message}
successMessage={"사용 가능한 이메일입니다."}
onChange={(e) => emailField.onChange(e.target.value)}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

이메일 입력값이 변경될 때 중복 확인 상태(isValidDuplicateEmail)를 false로 초기화해야 합니다. 그렇지 않으면 사용자가 중복 확인을 마친 후 이메일을 수정하더라도 이전의 확인 결과가 유효한 것으로 간주되어 잘못된 데이터로 가입이 시도될 수 있습니다.

Suggested change
onChange={(e) => emailField.onChange(e.target.value)}
onChange={(e) => {
emailField.onChange(e.target.value);
setIsValidDuplicateEmail(false);
}}

id={"id"}
error={!!touchedFields.email ? errors.email?.message : undefined}
success={isValidDuplicateEmail ? "사용 가능한 이메일입니다." : undefined}
error={!!value ? errorMessage : undefined}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

!!value 조건문으로 인해 이메일 필드가 비어있을 때 발생하는 에러 메시지(예: '이메일을 입력해주세요')가 화면에 표시되지 않는 문제가 발생할 수 있습니다. errorMessage가 존재한다면 값의 유무와 상관없이 표시되도록 수정하는 것이 좋습니다.

Suggested change
error={!!value ? errorMessage : undefined}
error={errorMessage}

Comment thread tests/signup.test.ts
const TEST_PASSWORD = "abcd1234";
const TEST_CONFIRM_PASSWORD = "abcd1234";

// TODO: 테스트가 왜 통과할때도 있고 아닐때도 있는거지

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

테스트가 간헐적으로 실패한다는 TODO 주석이 있습니다. 원인을 파악하여 해결하거나, 해결이 지연될 경우 이슈로 등록하여 관리하는 것이 좋습니다. 불안정한 테스트는 전체 테스트 스위트의 신뢰도를 떨어뜨립니다.

Comment thread tests/signup.test.ts

// 로그인 페이지로 이동하면 뒤로가기로 회원가입 페이지는 다시 갈 수 없다.
await page.goBack();
await page.waitForTimeout(500);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Playwright에서 waitForTimeout은 권장되지 않는 방식입니다. 다음 라인의 expect(page).not.toHaveURL()이 내부적으로 재시도 로직을 포함하고 있으므로, 명시적인 대기 시간 없이도 URL 변경을 올바르게 감지할 수 있습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant