From 9df1a5b476665bec46129a1ee3eec20c18a903ab Mon Sep 17 00:00:00 2001 From: Mohammad Rad Date: Sat, 19 Oct 2024 14:55:31 -0700 Subject: [PATCH] Update: further filtering test logs to only include errors and failures --- app/(dashboard)/dashboard/pull-request.tsx | 28 ++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/app/(dashboard)/dashboard/pull-request.tsx b/app/(dashboard)/dashboard/pull-request.tsx index 4e0f1e2e..45b8b4dc 100644 --- a/app/(dashboard)/dashboard/pull-request.tsx +++ b/app/(dashboard)/dashboard/pull-request.tsx @@ -109,9 +109,33 @@ export function PullRequestItem({ const parsedLogs = useLogGroups(logs); const filterTestLogs = useCallback((parsedLogs: LogGroup[]) => { - return parsedLogs.filter((group: LogGroup) => + const relevantKeywords = ['error', 'typeerror', 'fail']; + const filteredLogs = parsedLogs.filter((group: LogGroup) => group.name.toLowerCase().includes('test') - ); + ).map(group => { + const relevantLogs = []; + let isRelevantSection = false; + for (const log of group.logs) { + if (relevantKeywords.some(keyword => log.toLowerCase().includes(keyword))) { + isRelevantSection = true; + } + if (isRelevantSection) { + relevantLogs.push(log); + } + if (log.trim() === '' || log.startsWith('✓')) { + isRelevantSection = false; + } + } + return { ...group, logs: relevantLogs }; + }).filter(group => group.logs.length > 0); + + // TODO: Uncomment this when we implement token counting + // const tokenCount = filteredLogs.reduce((count, group) => + // count + group.name.length + group.logs.join(' ').length, 0); + + // console.log(`Filtered log token count: ${tokenCount}`); + + return filteredLogs; }, []); const isRunning = optimisticRunning || pullRequest.buildStatus === "running";