단위(순수함수)와 E2E(전체 흐름) 사이 '부품 렌더링' 층을 메운다(jsdom). - Badge(3): 코드값→한국어 라벨/색 매핑, 미지값 폴백(방어적 기본값) - ProgressBar(4): 백분율 계산·반올림, 0 나눗셈 방어(NaN 방지), 막대 너비 - CodeEditor(6): 제어 입력 왕복, 줄번호 minRows 보장/증가, Tab 공백2칸 삽입, 텍스트 선택 후 Tab 커서 위치(selectionStart+2 회귀 방지 — 과거 버그 못 박기) 세팅: @testing-library/react+jest-dom+user-event+jsdom, 파일별 @vitest-environment, 매 테스트 후 cleanup(globals 미사용 시 DOM 누적 방지). 프론트 테스트 9→22. coverage 게이트·lint·build 통과. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
39 lines
973 B
JSON
39 lines
973 B
JSON
{
|
|
"name": "mirim-frontend",
|
|
"private": true,
|
|
"version": "0.1.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"test": "vitest run",
|
|
"coverage": "vitest run --coverage",
|
|
"lint": "eslint .",
|
|
"test:e2e": "playwright test"
|
|
},
|
|
"dependencies": {
|
|
"axios": "^1.7.9",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"react-router-dom": "^7.1.0",
|
|
"sql.js": "^1.14.1"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^9.17.0",
|
|
"@playwright/test": "1.49.1",
|
|
"@testing-library/dom": "^10.4.0",
|
|
"@testing-library/jest-dom": "^6.6.3",
|
|
"@testing-library/react": "^16.1.0",
|
|
"@testing-library/user-event": "^14.5.2",
|
|
"@vitejs/plugin-react": "^4.3.4",
|
|
"@vitest/coverage-v8": "^4.1.10",
|
|
"eslint": "^9.17.0",
|
|
"eslint-plugin-react-hooks": "^5.1.0",
|
|
"globals": "^15.14.0",
|
|
"jsdom": "^26.0.0",
|
|
"vite": "^6.0.7",
|
|
"vitest": "^4.1.10"
|
|
}
|
|
}
|