Files
CODE_ASSISTANT/specs/001-snippet-palette/quickstart.md
T
2026-09-16 17:22:14 +09:00

2.8 KiB

Quickstart: 스니펫 팔레트 검증

end-to-end로 "돌아간다"를 확인하는 가이드. 구현 코드는 tasks.md/구현 단계에서.

전제

  • Windows + WebView2 런타임.
  • 3_windowsApp 빌드 가능(.NET SDK), 2_frontend npm 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를 눈으로 확인.

  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→붙여넣기 → 항상 "부르기 직전 창"에 들어감.

참조