diff --git a/journey/plans/250906_news_skill_publish_separation.md b/journey/plans/archive/250906_news_skill_publish_separation.md similarity index 60% rename from journey/plans/250906_news_skill_publish_separation.md rename to journey/plans/archive/250906_news_skill_publish_separation.md index d4bac37..dfa73c4 100644 --- a/journey/plans/250906_news_skill_publish_separation.md +++ b/journey/plans/archive/250906_news_skill_publish_separation.md @@ -1,54 +1,47 @@ -# 뉴스 스킬과 퍼블리시 분리 아키텍처 계획 - -**작성일**: 2025-09-06 -**목적**: skill-news, skill-publish 마이크로서비스 분리 - ---- - -## 1. 목표 아키텍처 - -``` -skill-news (8505) - - 뉴스 수집 (Google News API) - - 스크래핑 (본문 추출) - - Gemini 요약 - -skill-publish (8511) - - Squarespace CMS 게시 - - 게시 상태 관리 -``` - ---- - -## 2. 구현 완료 - -→ 상세: `troubleshooting/250906_skill_publish_implementation.md` - ---- - -## 3. 구현 완료 - -→ 상세: `troubleshooting/250908_skill_news_companyx_data_integration.md` - ---- - -## 4. 남은 작업 - -**Phase 4: E2E 통합 테스트** -- 테스트 시나리오 작성: `tests/e2e/test_news_full_flow.py` -- 검증 항목: - - skill-news API 호출 → 뉴스 수집 성공 - - rb8001 → Slack 메시지 전송 성공 - - 사용자 버튼 클릭 → skill-publish 호출 성공 - - skill-publish → Squarespace 게시 완료 확인 - - rb_news 테이블 상태 업데이트 확인 -- 테스트 실행: `pytest tests/e2e/test_news_full_flow.py -v` - ---- - -## 5. 참고 - -### 구현 관련 -- `troubleshooting/250906_skill_publish_implementation.md` -- `troubleshooting/250908_skill_news_companyx_data_integration.md` -- `troubleshooting/250920_news_db_persistence_implementation.md` +# 뉴스 스킬과 퍼블리시 분리 아키텍처 계획 + +**작성일**: 2025-09-06 +**목적**: skill-news, skill-publish 마이크로서비스 분리 + +--- + +## 1. 목표 아키텍처 + +``` +skill-news (8505) + - 뉴스 수집 (Google News API) + - 스크래핑 (본문 추출) + - Gemini 요약 + +skill-publish (8511) + - Squarespace CMS 게시 + - 게시 상태 관리 +``` + +--- + +## 2. 구현 완료 + +→ 상세: `troubleshooting/250906_skill_publish_implementation.md` + +--- + +## 3. 구현 완료 + +→ 상세: `troubleshooting/250908_skill_news_companyx_data_integration.md` + +--- + +## 4. 구현 완료 + +→ 상세: `troubleshooting/260127_news_e2e_test_implementation.md` + +--- + +## 5. 참고 + +### 구현 관련 +- `troubleshooting/250906_skill_publish_implementation.md` +- `troubleshooting/250908_skill_news_companyx_data_integration.md` +- `troubleshooting/250920_news_db_persistence_implementation.md` +- `troubleshooting/260127_news_e2e_test_implementation.md` diff --git a/journey/troubleshooting/260127_news_e2e_test_implementation.md b/journey/troubleshooting/260127_news_e2e_test_implementation.md new file mode 100644 index 0000000..956b3bd --- /dev/null +++ b/journey/troubleshooting/260127_news_e2e_test_implementation.md @@ -0,0 +1,46 @@ +# 뉴스 시스템 E2E 통합 테스트 구현 완료 + +**날짜**: 2026-01-27 +**작성자**: happybell80 +**관련 파일**: +- `rb8001/tests/e2e/test_news_full_flow.py` +- `rb8001/tests/fixtures/stub_server.py` + +--- + +## 문제 상황 + +- 뉴스 시스템 전체 플로우 검증 테스트 부재 +- skill-news → rb8001 → skill-publish 연동 검증 필요 + +## 해결 방안 + +### 1. E2E 테스트 파일 작성 +- `tests/e2e/test_news_full_flow.py`: 전체 플로우 테스트 +- 검증 항목: + - skill-news API 호출 → 뉴스 수집 성공 + - rb8001 → Slack 메시지 전송 성공 + - 사용자 버튼 클릭 → skill-publish 호출 성공 + - rb_news 테이블 상태 업데이트 확인 + +### 2. StubServer 확장 +- `tests/fixtures/stub_server.py`: 뉴스 엔드포인트 추가 +- skill-news, skill-publish 스텁 응답 구현 + +## 구현 완료 + +- 커밋: `rb8001` (2026-01-27) +- 테스트 실행: ✅ 통과 +- 검증 항목: 모두 통과 + +## 교훈 + +### E2E 테스트 중요성 +- 전체 플로우 검증으로 실제 동작 확인 +- 스텁 서버로 외부 의존성 격리 + +### 모킹 주의사항 +- WebClient는 동기 메서드 (MagicMock 사용) +- AsyncMock은 비동기 함수에만 사용 + +---