# Edge-Node Integration Test ## 이 파일을 읽는 구현 에이전트에게 작업을 진행하며 `CODE_REVIEW.md` 스텁의 체크리스트를 채우고, 중간/최종 검증 결과를 작성해 주십시오. ## 배경 Go의 `internal` 패키지 규칙으로 인해 `apps/edge`와 `apps/node`를 하나의 외부 패키지에서 동시에 임포트할 수 없습니다. 따라서 양측의 네트워크 통합 테스트를 각각의 모듈 내부(`apps/edge/internal/transport`, `apps/node/internal/transport`)에서 수행하도록 나누어 구성합니다. ### [TEST-1] Edge Server 통합 테스트 - **문제**: Edge 서버의 네트워크 등록 절차가 실제 소켓 환경에서 검증되지 않음. - **해결 방법**: `apps/edge/internal/transport/integration_test.go`를 작성하여 `Server`를 구동하고, `toki.TcpClient`를 통해 Node의 역할을 모방해 접속한 뒤 Registry 등록을 검증. - **수정 파일 및 체크리스트**: - `apps/edge/internal/transport/integration_test.go` - [ ] `transport.Server` 구동 - [ ] Node 클라이언트 소켓 연결 및 `CapabilityResponse` 전송 - [ ] Edge Registry 내 정상 등록 대기 및 확인 ### [TEST-2] Node Client 통합 테스트 - **문제**: Node 클라이언트의 서버 접속 및 메시지 처리 흐름이 네트워크 레벨에서 검증되지 않음. - **해결 방법**: `apps/node/internal/transport/integration_test.go`를 작성하여 임의의 `toki.TcpServer`를 구동해 Edge 서버를 모방하고, Node 클라이언트가 `DialEdge`로 접속하여 패킷을 교환하는지 검증. - **수정 파일 및 체크리스트**: - `apps/node/internal/transport/integration_test.go` - [ ] Mock Edge 서버 구동 (임의 포트) - [ ] `transport.DialEdge` 호출로 접속 - [ ] Mock Handler 동작 검증 (`CapabilityRequest`, `RunRequest` 등) ## 수정 파일 요약 | 파일 경로 | 작업 항목 | |-----------|-----------| | `apps/edge/internal/transport/integration_test.go` | [TEST-1] | | `apps/node/internal/transport/integration_test.go` | [TEST-2] | ## 최종 검증 ```bash go test -v ./apps/edge/... ./apps/node/... ```