From a8505cdc0e5d41cce0599a1f533477a37f7e3eae Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa <4232207+hi-ogawa@users.noreply.github.com> Date: Fri, 4 Sep 2026 13:08:39 +0900 Subject: [PATCH] refactor: traverse trace tasks with queue Co-authored-by: OpenCode (gpt-5.6-sol) --- packages/extension/src/traceReport.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/extension/src/traceReport.ts b/packages/extension/src/traceReport.ts index 978d999..fd1fe1d 100644 --- a/packages/extension/src/traceReport.ts +++ b/packages/extension/src/traceReport.ts @@ -73,19 +73,21 @@ function findTraceReportTargets( files: RunnerTestFile[], ): TraceReportTarget[] { const targets: TraceReportTarget[] = [] - - function visit(task: RunnerTask, fileId: string) { + const queue: { task: RunnerTask; fileId: string }[] = files.map((file) => ({ + task: file, + fileId: file.id, + })) + for (let index = 0; index < queue.length; index++) { + const { task, fileId } = queue[index] if (task.type === 'test') { const artifacts = (task as any).artifacts as { type: string }[] | undefined if (artifacts?.some((artifact) => artifact.type === 'internal:browserTrace')) { targets.push({ apiId, reportPath, fileId, testId: task.id }) } - return + } else { + queue.push(...task.tasks.map((task) => ({ task, fileId }))) } - task.tasks.forEach((child) => visit(child, fileId)) } - - files.forEach((file) => visit(file, file.id)) return targets } -- 2.51.2