@@ -52,7 +52,7 @@ function makeRequest(eventType, payload) {
5252
5353const env = { } ;
5454
55- describe ( "webhook repo filtering " , ( ) => {
55+ describe ( "webhook 저장소 필터링 " , ( ) => {
5656 beforeEach ( ( ) => {
5757 vi . clearAllMocks ( ) ;
5858 globalThis . fetch = vi . fn ( ) . mockResolvedValue ( {
@@ -62,8 +62,8 @@ describe("webhook repo filtering", () => {
6262 } ) ;
6363 } ) ;
6464
65- describe ( "top-level filter (payload.repository)" , ( ) => {
66- it ( "ignores immediately when payload.repository.name is not leetcode-study" , async ( ) => {
65+ describe ( "최상위 필터 (payload.repository)" , ( ) => {
66+ it ( "payload.repository.name 이 leetcode-study 가 아니면 즉시 무시한다 " , async ( ) => {
6767 const request = makeRequest ( "pull_request" , {
6868 action : "opened" ,
6969 organization : { login : "DaleStudy" } ,
@@ -77,7 +77,7 @@ describe("webhook repo filtering", () => {
7777 expect ( body . message ) . toBe ( "Ignored: daleui" ) ;
7878 } ) ;
7979
80- it ( "passes when payload.repository.name is leetcode-study" , async ( ) => {
80+ it ( "payload.repository.name 이 leetcode-study 면 통과시킨다 " , async ( ) => {
8181 const request = makeRequest ( "pull_request" , {
8282 action : "synchronize" ,
8383 organization : { login : "DaleStudy" } ,
@@ -100,7 +100,7 @@ describe("webhook repo filtering", () => {
100100 } ) ;
101101 } ) ;
102102
103- describe ( "projects_v2_item event repo filtering " , ( ) => {
103+ describe ( "projects_v2_item 이벤트 저장소 필터링 " , ( ) => {
104104 const basePayload = {
105105 action : "edited" ,
106106 organization : { login : "DaleStudy" } ,
@@ -116,7 +116,7 @@ describe("webhook repo filtering", () => {
116116 } ,
117117 } ;
118118
119- it ( "ignores when GraphQL lookup returns a non- leetcode-study repo " , async ( ) => {
119+ it ( "GraphQL 조회 결과가 leetcode-study 가 아니면 무시한다 " , async ( ) => {
120120 getPRInfoFromNodeId . mockResolvedValue ( {
121121 number : 962 ,
122122 owner : "DaleStudy" ,
@@ -132,7 +132,7 @@ describe("webhook repo filtering", () => {
132132 expect ( removeWarningComment ) . not . toHaveBeenCalled ( ) ;
133133 } ) ;
134134
135- it ( "processes normally when GraphQL lookup returns leetcode-study" , async ( ) => {
135+ it ( "GraphQL 조회 결과가 leetcode-study 면 정상 처리한다 " , async ( ) => {
136136 getPRInfoFromNodeId . mockResolvedValue ( {
137137 number : 100 ,
138138 owner : "DaleStudy" ,
@@ -146,7 +146,7 @@ describe("webhook repo filtering", () => {
146146 expect ( body . message ) . toBe ( "Processed" ) ;
147147 } ) ;
148148
149- it ( "ignores non- leetcode-study repo on deleted action " , async ( ) => {
149+ it ( "deleted 액션에서 leetcode-study 가 아닌 저장소는 무시한다 " , async ( ) => {
150150 getPRInfoFromNodeId . mockResolvedValue ( {
151151 number : 962 ,
152152 owner : "DaleStudy" ,
@@ -164,7 +164,7 @@ describe("webhook repo filtering", () => {
164164 expect ( ensureWarningComment ) . not . toHaveBeenCalled ( ) ;
165165 } ) ;
166166
167- it ( "ignores non- leetcode-study repo on created action " , async ( ) => {
167+ it ( "created 액션에서 leetcode-study 가 아닌 저장소는 무시한다 " , async ( ) => {
168168 getPRInfoFromNodeId . mockResolvedValue ( {
169169 number : 962 ,
170170 owner : "DaleStudy" ,
@@ -183,8 +183,8 @@ describe("webhook repo filtering", () => {
183183 } ) ;
184184 } ) ;
185185
186- describe ( "organization filter " , ( ) => {
187- it ( "ignores non- DaleStudy organization" , async ( ) => {
186+ describe ( "organization 필터 " , ( ) => {
187+ it ( "DaleStudy 가 아닌 organization 은 무시한다 " , async ( ) => {
188188 const request = makeRequest ( "pull_request" , {
189189 action : "opened" ,
190190 organization : { login : "OtherOrg" } ,
@@ -201,7 +201,7 @@ describe("webhook repo filtering", () => {
201201 expect ( body . message ) . toBe ( "Ignored: not DaleStudy organization" ) ;
202202 } ) ;
203203
204- it ( "ignores when organization field is missing " , async ( ) => {
204+ it ( "organization 필드가 없으면 무시한다 " , async ( ) => {
205205 const request = makeRequest ( "pull_request" , {
206206 action : "opened" ,
207207 repository : {
@@ -218,8 +218,8 @@ describe("webhook repo filtering", () => {
218218 } ) ;
219219 } ) ;
220220
221- describe ( "event type filter " , ( ) => {
222- it ( "ignores unsupported event types " , async ( ) => {
221+ describe ( "이벤트 타입 필터 " , ( ) => {
222+ it ( "지원하지 않는 이벤트 타입은 무시한다 " , async ( ) => {
223223 const request = makeRequest ( "push" , {
224224 organization : { login : "DaleStudy" } ,
225225 repository : {
@@ -236,7 +236,7 @@ describe("webhook repo filtering", () => {
236236 } ) ;
237237} ) ;
238238
239- describe ( "handlePullRequestEvent — AI handler dispatch " , ( ) => {
239+ describe ( "handlePullRequestEvent — AI 핸들러 디스패치 " , ( ) => {
240240 const basePRPayload = {
241241 action : "synchronize" ,
242242 organization : { login : "DaleStudy" } ,
@@ -264,7 +264,7 @@ describe("handlePullRequestEvent — AI handler dispatch", () => {
264264 } ) ;
265265 } ) ;
266266
267- it ( "dispatches 2 self-fetches via ctx.waitUntil when OPENAI_API_KEY, INTERNAL_SECRET, and WORKER_URL are all set " , async ( ) => {
267+ it ( "OPENAI_API_KEY, INTERNAL_SECRET, WORKER_URL 이 모두 설정되면 ctx.waitUntil 로 self-fetch 2 회를 디스패치한다 " , async ( ) => {
268268 const ctx = makeCtx ( ) ;
269269 const env = {
270270 OPENAI_API_KEY : "fake-openai" ,
@@ -294,7 +294,7 @@ describe("handlePullRequestEvent — AI handler dispatch", () => {
294294 expect ( postLearningStatus ) . not . toHaveBeenCalled ( ) ;
295295 } ) ;
296296
297- it ( "falls back to in-process handler calls when INTERNAL_SECRET is not set " , async ( ) => {
297+ it ( "INTERNAL_SECRET 이 없으면 in-process 핸들러 호출로 폴백한다 " , async ( ) => {
298298 const ctx = makeCtx ( ) ;
299299 const env = {
300300 OPENAI_API_KEY : "fake-openai" ,
@@ -318,7 +318,7 @@ describe("handlePullRequestEvent — AI handler dispatch", () => {
318318 expect ( prNumber ) . toBe ( 42 ) ;
319319 } ) ;
320320
321- it ( "falls back to in-process handler calls when WORKER_URL is not set " , async ( ) => {
321+ it ( "WORKER_URL 이 없으면 in-process 핸들러 호출로 폴백한다 " , async ( ) => {
322322 const ctx = makeCtx ( ) ;
323323 const env = {
324324 OPENAI_API_KEY : "fake-openai" ,
@@ -337,7 +337,7 @@ describe("handlePullRequestEvent — AI handler dispatch", () => {
337337 expect ( postLearningStatus ) . toHaveBeenCalledTimes ( 1 ) ;
338338 } ) ;
339339
340- it ( "does not dispatch or call handlers when OPENAI_API_KEY is missing " , async ( ) => {
340+ it ( "OPENAI_API_KEY 가 없으면 디스패치도 핸들러 호출도 하지 않는다 " , async ( ) => {
341341 const ctx = makeCtx ( ) ;
342342 const env = {
343343 INTERNAL_SECRET : "fake-secret" ,
0 commit comments