### 테스트 함수 | 함수 | API 엔드포인트 | 테스트 항목 | |------|---------------|------------| | [`histLoad()`](src/Web/wwwroot/js/app.js:717) | GET `/api/history/tagnames` | 1. 태그 이름 목록 로드
2. 8개 선택란 드롭다운 채움
3. 기존 선택값 보존 | | [`histQuery()`](src/Web/wwwroot/js/app.js:757) | GET `/api/history/query` 또는 POST `/api/text-to-sql/query-history-interval` | 1. 단일 태그 조회
2. 다중 태그 조회
3. 기본 간격(5분) 처리
4. 1분 강제 처리
5. 사용자 간격(1시간, 1일 등) 처리
6. 시간 범위 필터
7. limit 파라미터
8. 테이블 렌더링 | | [`histReset()`](src/Web/wwwroot/js/app.js:902) | - | 1. 모든 태그 선택 초기화
2. 시간 필드 초기화
3. 간격 및 limit 기본값 복구
4. 결과 숨김 | | [`htLoadStatus()`](src/Web/wwwroot/js/app.js:922) | GET `/api/experion/hypertable/status` | 1. 하이퍼테이블 존재 여부 확인
2. 레코드 개수 표시
3. 보관 정책 확인
4. 압축 상태 확인
5. 연속 집계 상태 확인 | | [`htCreate()`](src/Web/wwwroot/js/app.js:973) | POST `/api/experion/hypertable/create` | 1. 기본값으로 생성
2. 보관 정책 활성화
3. 압축 활성화
4. 연속 집계 생성
5. 데이터 마이그레이션
6. 기존 테이블이 있을 때 처리 | | [`htToggleRetention()`](src/Web/wwwroot/js/app.js:1055) | - | 1. 체크박스 상태 확인
2. 상태 메시지 변경 | | [`htToggleCompression()`](src/Web/wwwroot/js/app.js:1064) | - | 1. 체크박스 상태 확인
2. 상태 메시지 변경 | ### 테스트 시나리오 1. **태그 불러오기**: 태그 선택 버튼 → 8개 드롭다운 채움 2. **기본 조회**: 1개 태그, 간격=5분 → 기본 API 호출 확인 3. **다중 태그 조회**: 2개 태그 → OR 쿼리 확인 4. **1분 간격**: `#hf-interval` = 1 minute → HistoryIntervalRowDto 처리 5. **사용자 간격**: `#hf-interval` = 1 hour → Text-to-SQL API 호출 확인 6. **테이블 렌더링**: 결과 데이터 → timeBucket 또는 recordedAt 열 사용 7. **하이퍼테이블 상태**: 상태 버튼 → 현재 테이블 구조 표시 8. **하이퍼테이블 생성**: 하이퍼테이블이 없을 때 생성 확인 9. **보관 정책 설정**: 체크박스 → RetentionPolicy 확인 10. **압축 설정**: 체크박스 → Compression 확인 11. **초기화**: 초기화 버튼 → 모든 필드 초기화 확인 ### 하이퍼테이블 하위 테스트 #### htLoadStatus() 테스트 | 항목 | 확인 포인트 | |------|-------------| | 테이블 존재 | `isHypertable: true/false, tableName: string` | | 레코드 수 | `recordCount: number` | | 보관 정책 | `hasRetentionPolicy: true/false` | | 압축 | `hasCompression: true/false` | | 연속 집계 | `hasContinuousAggregate: true/false` | #### htCreate() 테스트 | 항목 | 리턴값 | |------|--------| | 성공 | `{ success, message, tableName }` | | 충돌(409) | `{ tableName }` → 테이블 이미 있음 | | 오류(500) | `{ success, message }` → 생성 실패 | --- ## 📝 전체 테스트 목록 요약 ### Phase 1 완료 항목 (1-7) - [x] 01 인증서 관리 (cert) - 4개 함수, 4개 시나리오 - [x] 02 서버 접속 테스트 (conn) - 4개 함수, 4개 시나리오 - [x] 03 데이터 크롤링 (crawl) - 2개 함수, 5개 시나리오 - [x] 04 DB 저장 (db) - 4개 함수, 5개 시나리오 - [x] 05 노드맵 대시보드 (nm-dash) - 5개 함수, 5개 시나리오 - [x] 06 포인트빌더 (pb) - 9개 함수, 6개 시나리오 - [ ] 07 이력 조회 (hist) - 7개 함수, 11개 시나리오 (작업 시작) --- ## 🗺️ 전체 테스트 플로우 ```mermaid flowchart TD A[인증서 관리 cert] --> B[서버 접속 conn] B --> C[데이터 크롤링 crawl] C --> D[DB 저장 db] D --> E[노드맵 대시보드 nm-dash] E --> F[포인트빌더 pb] F --> G[이력 조회 hist] subgraph Phase1 [Phase 1: UI 테스트 계획] A B C D E F G end