All files scoring.ts

100% Statements 2/2
100% Branches 4/4
100% Functions 1/1
100% Lines 2/2

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28              7x   7x                                    
import { ToolName, buildStandardToolScore } from '@aiready/core';
import type { TestabilityReport } from './types';
 
/**
 * Convert testability report into a ToolScoringOutput for the unified score.
 */
export function calculateTestabilityScore(report: TestabilityReport): any {
  const { summary, rawData, recommendations } = report;
 
  return buildStandardToolScore({
    toolName: ToolName.TestabilityIndex,
    score: summary.score,
    rawData,
    dimensions: summary.dimensions,
    dimensionNames: {
      testCoverageRatio: 'Test Coverage',
      purityScore: 'Function Purity',
      dependencyInjectionScore: 'Dependency Injection',
      interfaceFocusScore: 'Interface Focus',
      observabilityScore: 'Observability',
    },
    recommendations,
    recommendationImpact:
      summary.aiChangeSafetyRating === 'blind-risk' ? 15 : 8,
    rating: summary.aiChangeSafetyRating || summary.rating,
  });
}