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