test(seed): 관리자 테스트 계정 추가 (admin@bibimbap.local)

기존 tester 계정은 USER 용으로 유지하고,
admin@bibimbap.local / test1234! (role=ADMIN) 를 seed-dev.sql 에 추가.
screenshot-guide.md 계정 표를 용도·role 포함 2행으로 확장.
teardown 은 %@bibimbap.local 전체 삭제라 수정 불필요.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0162BaZnrbiYgWc9JJMZ9Czb
This commit is contained in:
이정수 2026-06-30 14:36:31 +09:00
parent aa55524191
commit 925eb73a62
2 changed files with 49 additions and 10 deletions

View File

@ -2,8 +2,10 @@
-- bibimbap dev seed — 리뷰/댓글(W3-2) 기능 테스트용 더미 상황
-- =============================================================================
-- 목적: 새로 추가된 게임 리뷰/댓글 기능을 실제로 테스트할 수 있는 더미 데이터.
-- 1) 로그인 가능한 테스트 계정 1개 (직접 로그인 → 리뷰/댓글 작성 테스트용)
-- 2) 표시되는 더미 게임 1개 (테스트 계정 소유)
-- 1) 로그인 가능한 테스트 계정 2개
-- - tester@bibimbap.local (role=USER — 일반 사용자 기능 테스트용)
-- - admin@bibimbap.local (role=ADMIN — 관리자 기능 테스트용)
-- 2) 표시되는 더미 게임 1개 (tester 계정 소유)
-- 3) 이미 등록된 더미 리뷰 5개 (각자 다른 더미 유저 — game당 user 1리뷰 제약 때문)
-- + 보너스: 더미 댓글 3개
--
@ -14,7 +16,9 @@
-- 적용 (호스트 psql, 포트 5433):
-- PGPASSWORD=change_me_local_dev psql -h localhost -p 5433 -U bibimbap -d bibimbap -f db/seed-dev.sql
--
-- 로그인 자격: tester@bibimbap.local / test1234! (provider='email')
-- 로그인 자격:
-- tester@bibimbap.local / test1234! (role=USER, provider='email')
-- admin@bibimbap.local / test1234! (role=ADMIN, provider='email')
-- password_hash 는 UserController.hashPassword 와 동일 알고리즘으로 사전 생성:
-- PBKDF2WithHmacSHA256 / 210000 iter / 256-bit key / 16-byte salt,
-- 포맷 = pbkdf2_sha256$<iter>$<base64 salt>$<base64 hash>.
@ -27,6 +31,7 @@ SET search_path TO dev;
DO $$
DECLARE
v_tester_id bigint;
v_admin_id bigint;
v_game_id bigint;
v_uid bigint;
-- test1234! 의 사전 생성 해시 (위 알고리즘과 동일).
@ -34,7 +39,7 @@ DECLARE
r RECORD;
BEGIN
-- -------------------------------------------------------------------------
-- 1) 로그인 테스트 계정 (users + email identity)
-- 1a) 일반 사용자 테스트 계정 (role=USER)
-- -------------------------------------------------------------------------
SELECT id INTO v_tester_id
FROM users
@ -58,6 +63,35 @@ BEGIN
(v_tester_id, 'email', 'tester@bibimbap.local', 'tester@bibimbap.local', c_pw_hash, '테스터');
END IF;
-- -------------------------------------------------------------------------
-- 1b) 관리자 테스트 계정 (role=ADMIN)
-- -------------------------------------------------------------------------
SELECT id INTO v_admin_id
FROM users
WHERE canonical_email = 'admin@bibimbap.local' AND is_delete IS NOT TRUE
LIMIT 1;
IF v_admin_id IS NULL THEN
INSERT INTO users (display_name, canonical_email, role, status)
VALUES ('어드민', 'admin@bibimbap.local', 'ADMIN', 'ACTIVE')
RETURNING id INTO v_admin_id;
ELSE
-- 기존 계정 role 이 ADMIN 이 아닌 경우 보정 (재실행 안전)
UPDATE users SET role = 'ADMIN', permissions_epoch = permissions_epoch + 1
WHERE id = v_admin_id AND role <> 'ADMIN';
END IF;
IF NOT EXISTS (
SELECT 1 FROM user_auth_identities
WHERE provider = 'email' AND provider_user_id = 'admin@bibimbap.local'
AND is_delete IS NOT TRUE
) THEN
INSERT INTO user_auth_identities
(user_id, provider, provider_user_id, email, password_hash, display_name)
VALUES
(v_admin_id, 'email', 'admin@bibimbap.local', 'admin@bibimbap.local', c_pw_hash, '어드민');
END IF;
-- -------------------------------------------------------------------------
-- 2) 더미 게임 (테스트 계정 소유, 목록/상세에 표시되도록 visible)
-- webgl_path / thumbnail_url 은 NULL — game-detail.jsp 가 빈 src 로 안전 처리.
@ -146,7 +180,7 @@ BEGIN
END IF;
END LOOP;
RAISE NOTICE 'seed-dev 완료: tester_id=%, game_id=%', v_tester_id, v_game_id;
RAISE NOTICE 'seed-dev 완료: tester_id=%, admin_id=%, game_id=%', v_tester_id, v_admin_id, v_game_id;
END $$;
-- 적용 결과 확인용 요약 (psql 실행 시 출력).

View File

@ -14,12 +14,12 @@ pip3 install playwright
## 테스트 계정
| 항목 | 값 |
|---|---|
| 이메일 | `tester@bibimbap.local` |
| 비밀번호 | `test1234!` |
| 용도 | 이메일 | 비밀번호 | role |
|---|---|---|---|
| 일반 사용자 | `tester@bibimbap.local` | `test1234!` | USER |
| 관리자 | `admin@bibimbap.local` | `test1234!` | ADMIN |
seed: `db/seed-dev.sql` (tester = user3)
seed: `db/seed-dev.sql`
## 실행
@ -34,8 +34,13 @@ python3 docs/development/screenshot-guide.py
### 전체 캡처 (로그인 포함 세부 화면)
```bash
# 일반 사용자로 캡처
SCREENSHOT_EMAIL=tester@bibimbap.local SCREENSHOT_PASSWORD='test1234!' \
python3 docs/development/screenshot-guide.py
# 관리자로 캡처 (관리자 전용 UI 확인 시)
SCREENSHOT_EMAIL=admin@bibimbap.local SCREENSHOT_PASSWORD='test1234!' \
python3 docs/development/screenshot-guide.py
```
추가 7장 캡처: