Playwright E2E 테스트 환경 구성 및 테스터 계정 생성

- Playwright + Chromium 브라우저 테스트 환경 세팅
- 테스터 계정 4개 생성 (admin/local/shop/user, pw: test1234!)
  - seed SQL + Node.js 시더 스크립트 포함
- E2E 테스트 23개 작성 (전체 통과):
  - auth: 로그인/로그아웃/실패/회원가입 (9개)
  - admin: 지자체관리자/Super Admin 패널 접근 (10개)
  - public: 홈/로그인/회원가입/404 (4개)
- CLAUDE.md: 테스트 섹션을 Playwright 기반으로 업데이트
- jobs.md: 테스트 작업 완료 기록

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
javamon1174
2026-03-25 15:18:57 +09:00
parent 17d61b3ee8
commit e318c5e042
12 changed files with 649 additions and 15 deletions

View File

@@ -73,31 +73,49 @@ assets/ # 기획 문서 (엑셀)
php spark serve --port=8045
```
## 테스트
## 테스트 (Playwright E2E)
모든 작업 완료 후 반드시 테스트를 수행합니다.
모든 작업 완료 후 반드시 Playwright 브라우저 테스트를 수행합니다.
```bash
# 전체 테스트
vendor/bin/phpunit
npm test
# 특정 테스트 스위트
vendor/bin/phpunit --testsuite App
# headed 모드 (브라우저 표시)
npm run test:headed
# 특정 테스트 파일
vendor/bin/phpunit tests/unit/SomeTest.php
# 특정 파일
npx playwright test e2e/auth.spec.js
# 필터로 특정 메서드
vendor/bin/phpunit --filter testMethodName
# 특정 테스트
npx playwright test -g "로그인 페이지"
```
### 테스트 구조
```
e2e/
├── helpers/
│ ├── auth.js # 로그인/로그아웃 헬퍼, 테스터 계정 정보
│ └── db-seed.js # 테스터 계정 DB 시딩 스크립트
├── auth.spec.js # 인증 테스트 (로그인/로그아웃/회원가입)
├── admin.spec.js # 관리자 패널 테스트 (지자체관리자/Super Admin)
└── public.spec.js # 공개 페이지 테스트
```
### 테스터 계정 (비밀번호: `test1234!`)
| ID | 역할 | Level |
|----|------|-------|
| `tester_admin` | Super Admin | 4 |
| `tester_local` | 지자체관리자 (대구) | 3 |
| `tester_shop` | 지정판매소 | 2 |
| `tester_user` | 일반 사용자 | 1 |
### 테스트 규칙
- **작업 완료 시 해당 기능의 테스트를 반드시 작성/실행**
- 테스트 디렉토리: `tests/unit/`, `tests/database/`, `tests/session/`
- CI4 TestCase 사용: `CodeIgniter\Test\CIUnitTestCase`, `CodeIgniter\Test\DatabaseTestTrait`
- 테스트 파일명: `{ClassName}Test.php` (PascalCase)
- 테스트 메서드명: `test{행위}` (camelCase)
- DB 테스트 시 `DatabaseTestTrait` + `$seed` 속성 활용
- **작업 완료 시 해당 기능의 E2E 테스트를 반드시 작성/실행**
- 테스트 파일: `e2e/{기능명}.spec.js`
- 공통 로그인은 `e2e/helpers/auth.js` `login(page, role)` 사용
- 새 기능 추가 시 해당 페이지 접근 + 주요 CRUD 동작 테스트 작성
- 테스터 계정 시딩: `node e2e/helpers/db-seed.js`
## DB 초기화 순서