Initial Commit
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# Quickstart: 스니펫 팔레트 검증
|
||||
|
||||
end-to-end로 "돌아간다"를 확인하는 가이드. 구현 코드는 tasks.md/구현 단계에서.
|
||||
|
||||
## 전제
|
||||
|
||||
- Windows + WebView2 런타임.
|
||||
- `3_windowsApp` 빌드 가능(.NET SDK), `2_frontend` `npm install` 완료.
|
||||
- DEBUG 실행은 WebView2 안에서 vite(localhost:15173)를 자동으로 물어 띄움 → 브릿지 살아있음.
|
||||
|
||||
## 실행
|
||||
|
||||
```pwsh
|
||||
# 데스크톱 런처(DEBUG) — WebView2 안에 React dev 앱 + C# 호스트
|
||||
# 3_windowsApp 솔루션 빌드/실행 (CodeAssist.App)
|
||||
```
|
||||
|
||||
## 단위 검증 (호스트 없이)
|
||||
|
||||
```pwsh
|
||||
# 프론트: 검색/랭킹 순수함수 + 브릿지 mock
|
||||
cd 2_frontend; npm run test # core/search, core/ranking, snippets.api(브릿지 mock)
|
||||
|
||||
# C#: SnippetRepository CRUD/usage (temp sqlite)
|
||||
dotnet test 3_windowsApp/CodeAssist.Tests
|
||||
```
|
||||
|
||||
## end-to-end 시나리오 (수동)
|
||||
|
||||
각 시나리오는 spec의 Acceptance를 눈으로 확인.
|
||||
|
||||
1. **소환·진입** (US1-1): 메모장에 포커스 → `Ctrl+1` → 팔레트가 가운데 뜨고 `/snippet`으로 진입, 검색 자동포커스, 결과는 usage 순.
|
||||
2. **검색** (US1-2): 키워드 입력 → 공백 나눈 키워드 전부가 name+desc에 있는 것만 남음(대소문자 무시, body 매칭 안 됨).
|
||||
3. **프리뷰** (US1-3): `↑`/`↓` → 우측 프리뷰가 선택 스니펫 body를 원문 그대로(공백/줄바꿈/특수문자) 표시.
|
||||
4. **붙여넣기** (US1-4): `Enter` → 팔레트 사라지고 **메모장(직전 창)에** body가 정확히 삽입, 그 스니펫 usage 상승.
|
||||
5. **빠른 붙여넣기** (US1-5): `Alt+3` → 3번 행이 선택 이동 없이 즉시 붙여넣어짐.
|
||||
6. **Esc 단계** (US1-6): 검색어 있을 때 `Esc` → 비움 / 빈 상태에서 `Esc` → 숨김.
|
||||
7. **생성** (US2-1~3): 코드 복사 후 생성 → body가 클립보드로 채워짐 / 이름·내용 빈 채 저장 거부 / 중복 이름 거부.
|
||||
8. **편집·삭제** (US2-4~6): `F2`/더블클릭 → 이름 읽기전용, 수정 저장 / 편집창서 삭제+확인 → 사라짐 / 완료 후 목록 새로고침.
|
||||
9. **분류** (US3): category 칩 선택 → 그 분류만 / `Ctrl+←/→` 칩 이동.
|
||||
10. **영속** (SC-003): 앱 껐다 켜기 → 스니펫·usage 유지. **첫 실행 시** 003 `snippets.db` 있으면 그 데이터로 시작(시드), 없으면 빈 목록.
|
||||
11. **대상 정확성** (SC-006): 서로 다른 창에서 각각 `Ctrl+1`→붙여넣기 → 항상 "부르기 직전 창"에 들어감.
|
||||
|
||||
## 참조
|
||||
|
||||
- 메시지 계약: [contracts/bridge-messages.md](./contracts/bridge-messages.md)
|
||||
- 데이터 인터페이스: [contracts/snippet-data-interface.md](./contracts/snippet-data-interface.md)
|
||||
- 데이터 모델/스키마: [data-model.md](./data-model.md)
|
||||
- 결정 근거: [research.md](./research.md)
|
||||
Reference in New Issue
Block a user