# QA Report - Redmine #4104 (dev)

- Generated: 2026-09-08T12:02:19+09:00
- Redmine: https://itsm.bix.bz/issues/4104
- QA Redmine: https://itsm.bix.bz/issues/4117
- Subject: SMS/Email 2차 인증 중복 로그인 강제로그인 모달 검증
- Workflow Status: 완료
- Status: FAIL
- Result JSON: artifacts/result-summary.json
- Roles: ADMIN
- Route Candidates: not recorded

## Scope

개발계 어드민 로그인에서 Email/SMS/PIN 2차 인증 방식별 정상 로그인, 중복 로그인 2차 인증 후 강제로그인 확인 모달, 강제로그인 성공, 기존 세션 무효화와 기존 화면 유지 동작을 검증한다.

## Checklist

1. jjm_email: Email 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인
2. jjm_sms: SMS 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인
3. jjm_pin: PIN 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인
4. Email/SMS 강제로그인 확인 모달의 화면 및 문구가 기존 PIN 모달과 동일한지 확인

## Setup Steps

1. [required] 2차 인증 테스트 계정 방식 확인 (admin/ADMIN / kind: state-verify) - jjm_email, jjm_sms, jjm_pin 계정의 로그인 화면에서 2차 인증 방식이 각각 EMAIL, SMS, PIN으로 설정되어 있는지 확인한다.
2. [required] 이메일 및 SMS 인증번호 준비 (admin/ADMIN / kind: manual-precondition) - Email/SMS 계정의 일반 로그인과 중복 로그인마다 외부 채널로 수신한 현재 6자리 인증번호를 권한 제한 임시 파일로 주입한다. 인증번호는 사용 직후 삭제하며 보고서와 저장소에는 기록하지 않는다.

## Source Text

주홍석님의 QA 요청입니다. SMS/Email 2차 인증 계정에서 중복 로그인 시 PIN과 동일하게 강제로그인 확인 모달이 표시되어야 한다. jjm_email, jjm_sms, jjm_pin 각 계정은 일반 브라우저와 독립 브라우저에서 2차 인증까지 완료한 뒤 강제로그인 처리와 기존 세션 종료를 확인한다.

## Execution Summary

- Passed: 0
- Failed: 3
- Skipped: 0
- Blocked: 1
- Flaky: 0
- Duration: 196271ms


## 한눈에 보는 결과

| 확인한 항목 | 계정 | 화면 | 수행한 동작 | 결과 | 증거 자료 |
|---|---|---|---|---|---|
| jjm_email: Email 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인 | ADMIN | 개발계 어드민 로그인 | ADMIN 계정으로 개발계 어드민 1차 로그인 세션을 유지한 상태에서 같은 계정의 독립 브라우저 로그인을 2차 인증까지 완료해 강제로그인 모달과 기존 세션 종료 여부를 확인 | 기대한 동작과 달랐습니다: Error: 이메일 2차 인증 중복 로그인 시 강제로그인 확인 모달이 단독으로 표시되어야 합니다.  expect(received).toBe(expected) // Object.is equality | [스크린샷 1](artifacts/screenshots/01-email-duplicate-result.png)<br>[스크린샷 2](artifacts/screenshots/02-screenshot.png)<br>[스크린샷 3](artifacts/screenshots/03-screenshot.png)<br>[화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4104/dev/artifacts/traces/01-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)<br>[실행 기록 1](artifacts/logs/01-email-duplicate-result.md)<br>[실행 기록 2](artifacts/logs/02-error-context.md) |
| jjm_sms: SMS 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인 | ADMIN | 개발계 어드민 로그인 | ADMIN 계정으로 개발계 어드민 1차 로그인 세션을 유지한 상태에서 같은 계정의 독립 브라우저 로그인을 2차 인증까지 완료해 강제로그인 모달과 기존 세션 종료 여부를 확인 | 기대한 동작과 달랐습니다: Error: SMS 2차 인증 중복 로그인 후 강제로그인 확인 모달 없이 두 번째 브라우저가 홈에 진입했고, 기존 로그인 세션도 새로고침 후 유지되었습니다. | [스크린샷 1](artifacts/screenshots/04-screenshot.png)<br>[스크린샷 2](artifacts/screenshots/05-screenshot.png)<br>[화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4104/dev/artifacts/traces/02-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)<br>[실행 기록 1](artifacts/logs/03-error-context.md)<br>[실행 기록 2](artifacts/logs/04-sms-duplicate-session-verification.md) |
| jjm_pin: PIN 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인 | ADMIN | 개발계 어드민 로그인 | ADMIN 계정으로 개발계 어드민 1차 로그인 세션을 유지한 상태에서 같은 계정의 독립 브라우저 로그인을 2차 인증까지 완료해 강제로그인 모달과 기존 세션 종료 여부를 확인 | 기대한 동작과 달랐습니다: Error: PIN 2차 인증 중복 로그인 시 강제로그인 확인 모달이 단독으로 표시되어야 합니다.  expect(received).toBe(expected) // Object.is equality | [스크린샷 1](artifacts/screenshots/06-pin-duplicate-result.png)<br>[스크린샷 2](artifacts/screenshots/07-screenshot.png)<br>[스크린샷 3](artifacts/screenshots/08-screenshot.png)<br>[화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4104/dev/artifacts/traces/03-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)<br>[실행 기록 1](artifacts/logs/05-pin-duplicate-result.md)<br>[실행 기록 2](artifacts/logs/06-error-context.md) |
| Email/SMS 강제로그인 확인 모달의 화면 및 문구가 기존 PIN 모달과 동일한지 확인 | ADMIN | [4104][dev] SMS/Email 2차 인증 중복 로그인 강제로그인 모달 검증 | ADMIN 계정으로 [4104][dev] SMS/Email 2차 인증 중복 로그인 강제로그인 모달 검증 항목을 확인 | 확인을 끝내지 못했습니다: Error: BLOCKED: Email/SMS/PIN 중 하나 이상에서 강제로그인 모달이 노출되지 않아 화면 및 문구를 비교할 수 없습니다. | [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4104/dev/artifacts/traces/04-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)<br>[실행 기록 1](artifacts/logs/07-force-modal-copy-comparison.md)<br>[실행 기록 2](artifacts/logs/08-error-context.md) |

## 실패 또는 확인 불가 상세

### 1. ADMIN / 개발계 어드민 로그인 / 실패

- 체크 항목: jjm_email: Email 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인
- 수행한 동작: ADMIN 계정으로 개발계 어드민 1차 로그인 세션을 유지한 상태에서 같은 계정의 독립 브라우저 로그인을 2차 인증까지 완료해 강제로그인 모달과 기존 세션 종료 여부를 확인
- 기대 결과: ADMIN 계정에서 개발계 어드민 로그인 확인 결과가 체크리스트와 일치해야 합니다.
- 실제 결과: 기대한 동작과 달랐습니다: Error: 이메일 2차 인증 중복 로그인 시 강제로그인 확인 모달이 단독으로 표시되어야 합니다.  expect(received).toBe(expected) // Object.is equality
- 분류: 기대 결과와 다름
- 오류 내용: Error: 이메일 2차 인증 중복 로그인 시 강제로그인 확인 모달이 단독으로 표시되어야 합니다.  expect(received).toBe(expected) // Object.is equality
- 스크린샷: [스크린샷 1](artifacts/screenshots/01-email-duplicate-result.png)<br>[스크린샷 2](artifacts/screenshots/02-screenshot.png)<br>[스크린샷 3](artifacts/screenshots/03-screenshot.png)
- 화면 재현 기록: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4104/dev/artifacts/traces/01-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)
- 실행 기록: [실행 기록 1](artifacts/logs/01-email-duplicate-result.md)<br>[실행 기록 2](artifacts/logs/02-error-context.md)
- 수동 확인 명령: `npm run qa:debug -- --issue "4104" --env "dev" --role "ADMIN" --case "jjm_email: Email 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인"`

### 2. ADMIN / 개발계 어드민 로그인 / 실패

- 체크 항목: jjm_sms: SMS 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인
- 수행한 동작: ADMIN 계정으로 개발계 어드민 1차 로그인 세션을 유지한 상태에서 같은 계정의 독립 브라우저 로그인을 2차 인증까지 완료해 강제로그인 모달과 기존 세션 종료 여부를 확인
- 기대 결과: ADMIN 계정에서 개발계 어드민 로그인 확인 결과가 체크리스트와 일치해야 합니다.
- 실제 결과: 기대한 동작과 달랐습니다: Error: SMS 2차 인증 중복 로그인 후 강제로그인 확인 모달 없이 두 번째 브라우저가 홈에 진입했고, 기존 로그인 세션도 새로고침 후 유지되었습니다.
- 분류: 기대 결과와 다름
- 오류 내용: Error: SMS 2차 인증 중복 로그인 후 강제로그인 확인 모달 없이 두 번째 브라우저가 홈에 진입했고, 기존 로그인 세션도 새로고침 후 유지되었습니다.
- 스크린샷: [스크린샷 1](artifacts/screenshots/04-screenshot.png)<br>[스크린샷 2](artifacts/screenshots/05-screenshot.png)
- 화면 재현 기록: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4104/dev/artifacts/traces/02-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)
- 실행 기록: [실행 기록 1](artifacts/logs/03-error-context.md)<br>[실행 기록 2](artifacts/logs/04-sms-duplicate-session-verification.md)
- 수동 확인 명령: `npm run qa:debug -- --issue "4104" --env "dev" --role "ADMIN" --case "jjm_sms: SMS 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인"`

### 3. ADMIN / 개발계 어드민 로그인 / 실패

- 체크 항목: jjm_pin: PIN 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인
- 수행한 동작: ADMIN 계정으로 개발계 어드민 1차 로그인 세션을 유지한 상태에서 같은 계정의 독립 브라우저 로그인을 2차 인증까지 완료해 강제로그인 모달과 기존 세션 종료 여부를 확인
- 기대 결과: ADMIN 계정에서 개발계 어드민 로그인 확인 결과가 체크리스트와 일치해야 합니다.
- 실제 결과: 기대한 동작과 달랐습니다: Error: PIN 2차 인증 중복 로그인 시 강제로그인 확인 모달이 단독으로 표시되어야 합니다.  expect(received).toBe(expected) // Object.is equality
- 분류: 기대 결과와 다름
- 오류 내용: Error: PIN 2차 인증 중복 로그인 시 강제로그인 확인 모달이 단독으로 표시되어야 합니다.  expect(received).toBe(expected) // Object.is equality
- 스크린샷: [스크린샷 1](artifacts/screenshots/06-pin-duplicate-result.png)<br>[스크린샷 2](artifacts/screenshots/07-screenshot.png)<br>[스크린샷 3](artifacts/screenshots/08-screenshot.png)
- 화면 재현 기록: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4104/dev/artifacts/traces/03-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)
- 실행 기록: [실행 기록 1](artifacts/logs/05-pin-duplicate-result.md)<br>[실행 기록 2](artifacts/logs/06-error-context.md)
- 수동 확인 명령: `npm run qa:debug -- --issue "4104" --env "dev" --role "ADMIN" --case "jjm_pin: PIN 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인"`

### 4. ADMIN / [4104][dev] SMS/Email 2차 인증 중복 로그인 강제로그인 모달 검증 / 확인 불가

- 체크 항목: Email/SMS 강제로그인 확인 모달의 화면 및 문구가 기존 PIN 모달과 동일한지 확인
- 수행한 동작: ADMIN 계정으로 [4104][dev] SMS/Email 2차 인증 중복 로그인 강제로그인 모달 검증 항목을 확인
- 기대 결과: ADMIN 계정에서 [4104][dev] SMS/Email 2차 인증 중복 로그인 강제로그인 모달 검증 확인 결과가 체크리스트와 일치해야 합니다.
- 실제 결과: 확인을 끝내지 못했습니다: Error: BLOCKED: Email/SMS/PIN 중 하나 이상에서 강제로그인 모달이 노출되지 않아 화면 및 문구를 비교할 수 없습니다.
- 분류: 확인 조건 부족
- 오류 내용: Error: BLOCKED: Email/SMS/PIN 중 하나 이상에서 강제로그인 모달이 노출되지 않아 화면 및 문구를 비교할 수 없습니다.
- 스크린샷: 없음
- 화면 재현 기록: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4104/dev/artifacts/traces/04-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)
- 실행 기록: [실행 기록 1](artifacts/logs/07-force-modal-copy-comparison.md)<br>[실행 기록 2](artifacts/logs/08-error-context.md)



## 수동 재현 필요

### 1. ADMIN / 개발계 어드민 로그인 / 기대 결과와 다름

- 체크 항목: jjm_email: Email 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인
- 필요한 이유: 화면에서 확인한 값이 체크리스트의 기대 결과와 달랐습니다.
- 작업자 알림: [QA 확인 요청] ADMIN / 개발계 어드민 로그인 / jjm_email: Email 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: 기대 결과와 다름 상태입니다. npm run qa:debug -- --issue "4104" --env "dev" --role "ADMIN" --case "jjm_email: Email 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인" 로 동일 계정과 항목을 다시 열어 확인하세요.
- 직접 열기 명령: `npm run qa:debug -- --issue "4104" --env "dev" --role "ADMIN" --case "jjm_email: Email 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인"`
- 작업자가 위 명령을 실행하면 대상 계정의 로그인 세션을 새로 만든 뒤 브라우저가 열립니다.
- 브라우저에서 자동화가 멈춘 화면, 현재 URL, 화면 문구, 다운로드 알림 또는 문서보관함 상태를 확인합니다.
- 확인한 화면과 필요한 조치 내용을 Redmine/GitHub QA 이슈에 남깁니다.

### 2. ADMIN / 개발계 어드민 로그인 / 기대 결과와 다름

- 체크 항목: jjm_sms: SMS 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인
- 필요한 이유: 화면에서 확인한 값이 체크리스트의 기대 결과와 달랐습니다.
- 작업자 알림: [QA 확인 요청] ADMIN / 개발계 어드민 로그인 / jjm_sms: SMS 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: 기대 결과와 다름 상태입니다. npm run qa:debug -- --issue "4104" --env "dev" --role "ADMIN" --case "jjm_sms: SMS 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인" 로 동일 계정과 항목을 다시 열어 확인하세요.
- 직접 열기 명령: `npm run qa:debug -- --issue "4104" --env "dev" --role "ADMIN" --case "jjm_sms: SMS 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인"`
- 작업자가 위 명령을 실행하면 대상 계정의 로그인 세션을 새로 만든 뒤 브라우저가 열립니다.
- 브라우저에서 자동화가 멈춘 화면, 현재 URL, 화면 문구, 다운로드 알림 또는 문서보관함 상태를 확인합니다.
- 확인한 화면과 필요한 조치 내용을 Redmine/GitHub QA 이슈에 남깁니다.

### 3. ADMIN / 개발계 어드민 로그인 / 기대 결과와 다름

- 체크 항목: jjm_pin: PIN 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인
- 필요한 이유: 화면에서 확인한 값이 체크리스트의 기대 결과와 달랐습니다.
- 작업자 알림: [QA 확인 요청] ADMIN / 개발계 어드민 로그인 / jjm_pin: PIN 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: 기대 결과와 다름 상태입니다. npm run qa:debug -- --issue "4104" --env "dev" --role "ADMIN" --case "jjm_pin: PIN 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인" 로 동일 계정과 항목을 다시 열어 확인하세요.
- 직접 열기 명령: `npm run qa:debug -- --issue "4104" --env "dev" --role "ADMIN" --case "jjm_pin: PIN 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인"`
- 작업자가 위 명령을 실행하면 대상 계정의 로그인 세션을 새로 만든 뒤 브라우저가 열립니다.
- 브라우저에서 자동화가 멈춘 화면, 현재 URL, 화면 문구, 다운로드 알림 또는 문서보관함 상태를 확인합니다.
- 확인한 화면과 필요한 조치 내용을 Redmine/GitHub QA 이슈에 남깁니다.


## 스크린샷

- ADMIN / 개발계 어드민 로그인 / jjm_email: Email 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: [스크린샷 1](artifacts/screenshots/01-email-duplicate-result.png)
- ADMIN / 개발계 어드민 로그인 / jjm_email: Email 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: [스크린샷 2](artifacts/screenshots/02-screenshot.png)
- ADMIN / 개발계 어드민 로그인 / jjm_email: Email 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: [스크린샷 3](artifacts/screenshots/03-screenshot.png)
- ADMIN / 개발계 어드민 로그인 / jjm_sms: SMS 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: [스크린샷 1](artifacts/screenshots/04-screenshot.png)
- ADMIN / 개발계 어드민 로그인 / jjm_sms: SMS 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: [스크린샷 2](artifacts/screenshots/05-screenshot.png)
- ADMIN / 개발계 어드민 로그인 / jjm_pin: PIN 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: [스크린샷 1](artifacts/screenshots/06-pin-duplicate-result.png)
- ADMIN / 개발계 어드민 로그인 / jjm_pin: PIN 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: [스크린샷 2](artifacts/screenshots/07-screenshot.png)
- ADMIN / 개발계 어드민 로그인 / jjm_pin: PIN 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: [스크린샷 3](artifacts/screenshots/08-screenshot.png)

## 화면 재현 기록

- ADMIN / 개발계 어드민 로그인 / jjm_email: Email 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4104/dev/artifacts/traces/01-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)
- ADMIN / 개발계 어드민 로그인 / jjm_sms: SMS 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4104/dev/artifacts/traces/02-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)
- ADMIN / 개발계 어드민 로그인 / jjm_pin: PIN 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4104/dev/artifacts/traces/03-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)
- ADMIN / [4104][dev] SMS/Email 2차 인증 중복 로그인 강제로그인 모달 검증 / Email/SMS 강제로그인 확인 모달의 화면 및 문구가 기존 PIN 모달과 동일한지 확인: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4104/dev/artifacts/traces/04-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)
- 화면 재현 기록은 실패한 항목에서 화면 전환과 요청 흐름을 다시 보기 위한 자료입니다.

## 실행 기록

- ADMIN / 개발계 어드민 로그인 / jjm_email: Email 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: [실행 기록 1](artifacts/logs/01-email-duplicate-result.md)
- ADMIN / 개발계 어드민 로그인 / jjm_email: Email 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: [실행 기록 2](artifacts/logs/02-error-context.md)
- ADMIN / 개발계 어드민 로그인 / jjm_sms: SMS 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: [실행 기록 1](artifacts/logs/03-error-context.md)
- ADMIN / 개발계 어드민 로그인 / jjm_sms: SMS 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: [실행 기록 2](artifacts/logs/04-sms-duplicate-session-verification.md)
- ADMIN / 개발계 어드민 로그인 / jjm_pin: PIN 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: [실행 기록 1](artifacts/logs/05-pin-duplicate-result.md)
- ADMIN / 개발계 어드민 로그인 / jjm_pin: PIN 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인: [실행 기록 2](artifacts/logs/06-error-context.md)
- ADMIN / [4104][dev] SMS/Email 2차 인증 중복 로그인 강제로그인 모달 검증 / Email/SMS 강제로그인 확인 모달의 화면 및 문구가 기존 PIN 모달과 동일한지 확인: [실행 기록 1](artifacts/logs/07-force-modal-copy-comparison.md)
- ADMIN / [4104][dev] SMS/Email 2차 인증 중복 로그인 강제로그인 모달 검증 / Email/SMS 강제로그인 확인 모달의 화면 및 문구가 기존 PIN 모달과 동일한지 확인: [실행 기록 2](artifacts/logs/08-error-context.md)

## 자동화 원본 결과

| Scenario | Status | Duration | Screenshot | 화면 재현 기록 | Log | Error |
|---|---:|---:|---|---|---|---|
| 4104/dev/duplicate-login-second-factor.spec.ts / [4104][dev] SMS/Email 2차 인증 중복 로그인 강제로그인 모달 검증 / jjm_email: Email 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인 | FAIL | 111771ms | [스크린샷 1](artifacts/screenshots/01-email-duplicate-result.png)<br>[스크린샷 2](artifacts/screenshots/02-screenshot.png)<br>[스크린샷 3](artifacts/screenshots/03-screenshot.png) | [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4104/dev/artifacts/traces/01-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c) | [로그 1](artifacts/logs/01-email-duplicate-result.md)<br>[로그 2](artifacts/logs/02-error-context.md) | Error: 이메일 2차 인증 중복 로그인 시 강제로그인 확인 모달이 단독으로 표시되어야 합니다.  expect(received).toBe(expected) // Object.is equality |
| 4104/dev/duplicate-login-second-factor.spec.ts / [4104][dev] SMS/Email 2차 인증 중복 로그인 강제로그인 모달 검증 / jjm_sms: SMS 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인 | FAIL | 67398ms | [스크린샷 1](artifacts/screenshots/04-screenshot.png)<br>[스크린샷 2](artifacts/screenshots/05-screenshot.png) | [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4104/dev/artifacts/traces/02-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c) | [로그 1](artifacts/logs/03-error-context.md)<br>[로그 2](artifacts/logs/04-sms-duplicate-session-verification.md) | Error: SMS 2차 인증 중복 로그인 후 강제로그인 확인 모달 없이 두 번째 브라우저가 홈에 진입했고, 기존 로그인 세션도 새로고침 후 유지되었습니다. |
| 4104/dev/duplicate-login-second-factor.spec.ts / [4104][dev] SMS/Email 2차 인증 중복 로그인 강제로그인 모달 검증 / jjm_pin: PIN 2차 인증으로 일반/중복 로그인을 완료하고 강제로그인 후 현재 세션 활성화와 기존 세션 종료를 확인 | FAIL | 14304ms | [스크린샷 1](artifacts/screenshots/06-pin-duplicate-result.png)<br>[스크린샷 2](artifacts/screenshots/07-screenshot.png)<br>[스크린샷 3](artifacts/screenshots/08-screenshot.png) | [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4104/dev/artifacts/traces/03-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c) | [로그 1](artifacts/logs/05-pin-duplicate-result.md)<br>[로그 2](artifacts/logs/06-error-context.md) | Error: PIN 2차 인증 중복 로그인 시 강제로그인 확인 모달이 단독으로 표시되어야 합니다.  expect(received).toBe(expected) // Object.is equality |
| 4104/dev/duplicate-login-second-factor.spec.ts / [4104][dev] SMS/Email 2차 인증 중복 로그인 강제로그인 모달 검증 / Email/SMS 강제로그인 확인 모달의 화면 및 문구가 기존 PIN 모달과 동일한지 확인 | BLOCKED | 1ms |  | [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4104/dev/artifacts/traces/04-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c) | [로그 1](artifacts/logs/07-force-modal-copy-comparison.md)<br>[로그 2](artifacts/logs/08-error-context.md) | Error: BLOCKED: Email/SMS/PIN 중 하나 이상에서 강제로그인 모달이 노출되지 않아 화면 및 문구를 비교할 수 없습니다. |

## Notes

- Playwright 실행 결과를 기준으로 작성되었습니다.
- QA subissue에 report/evidence 업로드와 완료 상태 갱신이 반영되었습니다.
