({
fixture,
rootPath,
surfaceRunners
}: EvaluateDiscoveryFixtureParams)
| 454 | } |
| 455 | |
| 456 | export async function evaluateDiscoveryFixture({ |
| 457 | fixture, |
| 458 | rootPath, |
| 459 | surfaceRunners |
| 460 | }: EvaluateDiscoveryFixtureParams): Promise<DiscoverySummaryType> { |
| 461 | const runners: Record<DiscoverySurface, DiscoverySurfaceRunner> = { |
| 462 | ...DEFAULT_SURFACE_RUNNERS, |
| 463 | ...(surfaceRunners ?? {}) |
| 464 | }; |
| 465 | const results: DiscoveryTaskResultEval[] = []; |
| 466 | |
| 467 | for (const task of fixture.tasks) { |
| 468 | const runner = runners[task.surface]; |
| 469 | if (!runner) { |
| 470 | throw new Error(`No runner registered for surface: ${task.surface}`); |
| 471 | } |
| 472 | const startMs = Date.now(); |
| 473 | const payload = await runner(task, rootPath); |
| 474 | const elapsedMs = Date.now() - startMs; |
| 475 | results.push(evaluateDiscoveryTask(task, payload, elapsedMs)); |
| 476 | } |
| 477 | |
| 478 | return summarizeDiscoveryResults(results); |
| 479 | } |
| 480 | |
| 481 | export function formatDiscoveryReport({ |
| 482 | codebaseLabel, |
no test coverage detected