Skip to content

Commit e9d95dc

Browse files
committed
docs: 프롬프트 템플릿에 대한 리드미 파일 수정
1 parent 15c8497 commit e9d95dc

File tree

1 file changed

+77
-130
lines changed

1 file changed

+77
-130
lines changed

.cursor/templates/README.md

Lines changed: 77 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,45 @@
1-
# Cursor AI 도구 모음
1+
# Cursor AI 테스트 생성 도구
22

3-
이 디렉토리는 Cursor AI를 활용한 개발 도구들을 모아놓은 곳입니다.
3+
이 디렉토리는 Cursor AI를 활용하여 **Githru VSCode Extension** 프로젝트의 테스트 코드를 자동 생성하는 도구들을 모아놓은 곳입니다.
44

5-
## 📁 구조
5+
## 📁 프로젝트 구조
66

77
```
8-
.cursor/
9-
├── rules/ # Cursor 룰 파일들
10-
│ └── testing.mdc # 테스트 관련 룰
11-
├── templates/ # AI 프롬프트 템플릿들
12-
│ ├── test.playwright.md # E2E 테스트 생성 템플릿
13-
│ ├── test.unit.md # Unit 테스트 생성 템플릿
14-
│ ├── test.integration.md # 통합 테스트 생성 템플릿
15-
│ └── README.md # 이 파일
16-
└── generated-tests/ # 템플릿으로 생성된 테스트들
17-
├── e2e/ # E2E 테스트
18-
├── unit/ # 단위 테스트
19-
└── integration/ # 통합 테스트
8+
githru-vscode-ext/
9+
├── .cursor/ # Cursor AI 도구들
10+
│ ├── rules/
11+
│ │ └── testing.mdc # 테스트 작성 규칙
12+
│ └── templates/
13+
│ ├── test.playwright.md # E2E 테스트 템플릿
14+
│ └── README.md # 이 파일
15+
├── packages/
16+
│ ├── view/ # React 웹뷰 패키지
17+
│ │ ├── src/
18+
│ │ │ ├── components/ # React 컴포넌트들
19+
│ │ │ ├── store/ # Zustand 상태 관리
20+
│ │ │ └── fake-assets/ # 테스트용 모킹 데이터
21+
│ │ └── tests/ # 실제 테스트 파일들
22+
│ │ ├── pr-commit-detail.e2e.spec.ts
23+
│ │ ├── temporal-filter.e2e.spec.ts
24+
│ │ └── fakeAsset.ts # 테스트 헬퍼 함수들
25+
│ ├── analysis-engine/ # 분석 엔진 패키지
26+
│ └── vscode/ # VSCode 확장 패키지
2027
```
2128

22-
## 🚀 사용 방법
29+
## 🚀 빠른 시작 (Quick Start)
2330

24-
### 1. E2E 테스트 생성
31+
### 1. E2E 테스트 생성 (Playwright)
2532

26-
1. 템플릿 파일을 열어서 테스트 시나리오를 작성합니다
27-
2. Cursor Agent (⌃+I)에 붙여넣습니다
28-
3. AI가 자동으로 `.cursor/generated-tests/e2e/` 디렉토리에 파일을 생성하고 저장합니다
33+
**템플릿 파일**: `.cursor/templates/test.playwright.md`
2934

30-
### 2. Unit 테스트 생성
35+
1. **템플릿 열기**: `.cursor/templates/test.playwright.md` 파일을 엽니다
36+
2. **시나리오 작성**: 아래 예시를 참고해 테스트 시나리오를 작성합니다
37+
3. **AI 실행**: `⌃+I` (Cursor Agent)를 누르고 템플릿을 붙여넣습니다
38+
4. **파일 생성**: AI가 자동으로 `packages/view/tests/`에 테스트 파일을 생성합니다
3139

32-
**템플릿 파일**: `templates/test.unit.md`
40+
## 📝 사용 예시
3341

34-
1. 템플릿 파일을 열어서 테스트 시나리오를 작성합니다
35-
2. Cursor Agent (⌃+I)에 붙여넣습니다
36-
3. AI가 자동으로 `.cursor/generated-tests/unit/` 디렉토리에 파일을 생성하고 저장합니다
37-
38-
### 3. 통합 테스트 생성
39-
40-
**템플릿 파일**: `templates/test.integration.md`
41-
42-
1. 템플릿 파일을 열어서 테스트 시나리오를 작성합니다
43-
2. Cursor Agent (⌃+I)에 붙여넣습니다
44-
3. AI가 자동으로 `.cursor/generated-tests/integration/` 디렉토리에 파일을 생성하고 저장합니다
45-
46-
**예시**:
42+
### E2E 테스트 예시 (TemporalFilter)
4743

4844
```markdown
4945
Context:
@@ -61,132 +57,83 @@ Constraints:
6157
- VSCode webview environment
6258
```
6359

64-
**BranchSelector 예시**:
65-
66-
```markdown
67-
Context:
60+
**결과**: `packages/view/tests/temporal-filter.e2e.spec.ts` 파일 생성
6861

69-
- 테스트 대상: BranchSelector 컴포넌트
70-
- 시나리오:
71-
- [ ] 브랜치 목록이 로드되어야 한다
72-
- [ ] 브랜치 선택 시 데이터가 갱신되어야 한다
73-
- [ ] 로딩 중에는 스피너가 표시되어야 한다
74-
75-
Constraints:
76-
77-
- Zustand state only (no other state libs)
78-
- Mock external dependencies (GitHub API, file system)
79-
- VSCode webview environment
80-
```
62+
## 🔧 테스트 룰 및 규칙
8163

82-
### 2. 테스트 룰 적용
64+
### 자동 적용되는 룰
8365

84-
**룰 파일**: `rules/testing.mdc`
66+
**룰 파일**: `.cursor/rules/testing.mdc`
8567

8668
- Cursor가 자동으로 이 룰을 적용하여 일관된 테스트 코드를 생성합니다
87-
- Jest + RTL + Playwright 패턴을 따릅니다
88-
- VSCode webview 환경에 최적화되어 있습니다
89-
90-
## 📋 생성된 테스트 관리
69+
- **Jest + RTL + Playwright** 패턴을 따릅니다
70+
- **VSCode webview 환경**에 최적화되어 있습니다
71+
- **Zustand 상태 관리****외부 의존성 모킹**을 자동으로 처리합니다
9172

9273
### 파일 명명 규칙
9374

94-
- E2E 테스트: `{component-name}.e2e.spec.ts`
95-
- 단위 테스트: `{component-name}.test.tsx`
96-
- 통합 테스트: `{component-name}.spec.tsx`
75+
- **E2E 테스트**: `{component-name}.e2e.spec.ts`
9776

98-
### 디렉토리 구조
77+
### 실제 테스트 파일 위치
9978

10079
```
101-
packages/view/tests/ # 실제 테스트 파일 위치
102-
├── branch-selector.e2e.spec.ts # ✅ 완료된 BranchSelector E2E 테스트
103-
├── temporal-filter-working.e2e.spec.ts # ✅ 완료된 TemporalFilter E2E 테스트
104-
└── branch-selector.e2e.spec copy.ts # 기존 테스트 백업
105-
106-
.cursor/generated-tests/ # 템플릿으로 생성된 테스트들 (참고용)
107-
├── e2e/ # E2E 테스트들
108-
│ ├── temporal-filter.e2e.spec.ts
109-
│ └── branch-selector.e2e.spec.ts
110-
├── unit/ # 단위 테스트들
111-
│ ├── statistics.test.tsx
112-
│ └── theme-selector.test.tsx
113-
└── integration/ # 통합 테스트들
114-
└── webview-communication.spec.ts
80+
packages/view/tests/
11581
```
11682

117-
### ✅ 완료된 테스트 현황
118-
119-
#### BranchSelector E2E 테스트 (`branch-selector.e2e.spec.ts`)
120-
121-
- **테스트 시나리오**: 5개 (4개 통과, 1개 스킵)
122-
1. ✅ 브랜치 목록이 로드되어야 한다
123-
2. ✅ 브랜치 선택 시 데이터가 갱신되어야 한다
124-
3. ✅ 로딩 중에는 스피너가 표시되어야 한다
125-
4. ✅ 브랜치 선택 시 IDE 메시지가 전송되어야 한다
126-
5. ⏭️ 브랜치 목록이 비어있을 때 적절한 처리가 되어야 한다 (스킵)
127-
128-
#### TemporalFilter E2E 테스트 (`temporal-filter-working.e2e.spec.ts`)
129-
130-
- **테스트 시나리오**: 2개 (모두 통과)
131-
1. ✅ 기간 브러시 필터링이 정상 작동해야 한다
132-
2. ✅ 브러시 필터링 후 통계가 갱신되어야 한다
133-
134-
## 🔧 커스터마이징
135-
136-
### 새로운 템플릿 추가
137-
138-
1. `templates/` 디렉토리에 새 `.md` 파일 생성
139-
2. 프롬프트 템플릿 작성
140-
3. 이 README에 사용법 추가
141-
142-
### 룰 수정
143-
144-
1. `rules/testing.mdc` 파일 편집
145-
2. 프로젝트 요구사항에 맞게 가이드라인 조정
146-
147-
## 📚 참고 자료
148-
149-
- [Cursor 공식 문서](https://cursor.sh/docs)
150-
- [Playwright 테스트 가이드](https://playwright.dev/docs/intro)
151-
- [Jest + RTL 가이드](https://testing-library.com/docs/react-testing-library/intro/)
152-
- [Zustand 테스트 패턴](https://github.com/pmndrs/zustand/blob/main/docs/guides/testing.md)
153-
15483
## 🎯 테스트 실행 방법
15584

15685
### E2E 테스트 실행
15786

15887
```bash
159-
# 특정 컴포넌트 테스트 실행
160-
npm run test:e2e -- --grep "BranchSelector"
88+
# packages/view 디렉토리로 이동
89+
cd packages/view
16190

16291
# 모든 E2E 테스트 실행
16392
npm run test:e2e
16493

165-
# 테스트 리포트 확인
166-
npx playwright show-report
94+
# 특정 테스트 실행
95+
npm run test:e2e -- tests/pr-commit-detail.e2e.spec.ts
96+
npm run test:e2e -- tests/temporal-filter.e2e.spec.ts
97+
98+
# 특정 브라우저에서 실행
99+
npm run test:e2e -- --project=chromium
100+
npm run test:e2e -- --project=webkit
167101
```
168102

169103
### 테스트 결과 확인
170104

171105
```bash
172-
# 마지막 실행 결과 확인
106+
# 테스트 리포트 확인
173107
npx playwright show-report
174108

175-
# 특정 브라우저에서 테스트 실행
176-
npx playwright test --project=chromium
109+
# 헤드리스 모드로 실행
110+
npm run test:e2e -- --headed
111+
112+
# 디버그 모드로 실행
113+
npm run test:e2e -- --debug
177114
```
178115

179-
## ⚠️ 주의사항
116+
## 🔧 커스터마이징
117+
118+
### 새로운 템플릿 추가
119+
120+
1. `.cursor/templates/` 디렉토리에 새 `.md` 파일 생성
121+
2. 프롬프트 템플릿 작성
122+
3. 이 README에 사용법 추가
180123

181-
- 생성된 테스트는 반드시 실제 실행해보고 검증하세요
182-
- 프로젝트별 특성에 맞게 셀렉터와 로직을 조정하세요
183-
- VSCode webview 환경의 제약사항을 고려하세요
184-
- 로딩 상태가 너무 빠를 경우 스피너 테스트가 스킵될 수 있습니다
185-
- 브랜치 목록이 1개만 있을 경우 선택 테스트가 스킵됩니다
124+
**현재 사용 가능한 템플릿**:
186125

187-
## 🚀 다음 단계
126+
- `test.playwright.md`: E2E 테스트 생성용
127+
128+
### 룰 수정
129+
130+
1. `.cursor/rules/testing.mdc` 파일 편집
131+
2. 프로젝트 요구사항에 맞게 가이드라인 조정
132+
133+
## ⚠️ 주의사항
188134

189-
1. **Unit 테스트 추가**: BranchSelector 컴포넌트의 개별 함수들에 대한 단위 테스트
190-
2. **Integration 테스트**: VSCode webview와의 통신 테스트
191-
3. **다른 컴포넌트 테스트**: Statistics, ThemeSelector 등 추가 컴포넌트 테스트
192-
4. **CI/CD 통합**: GitHub Actions에서 자동 테스트 실행 설정
135+
- **생성된 테스트는 반드시 실제 실행해보고 검증하세요**
136+
- **VSCode webview 환경의 제약사항**을 고려하세요
137+
- **Zustand 상태 관리****외부 의존성 모킹**이 자동으로 적용됩니다
138+
- **로딩 상태가 너무 빠를 경우** 스피너 테스트가 스킵될 수 있습니다
139+
- **실제 DOM 구조**에 맞춰 셀렉터가 자동으로 조정됩니다

0 commit comments

Comments
 (0)