Files
waoowaoo/tests/contracts/route-behavior-matrix.ts

51 lines
2.1 KiB
TypeScript

import { ROUTE_CATALOG, type RouteCatalogEntry } from './route-catalog'
export type RouteBehaviorMatrixEntry = {
routeFile: string
contractGroup: RouteCatalogEntry['contractGroup']
caseId: string
tests: ReadonlyArray<string>
}
const CONTRACT_TEST_BY_GROUP: Record<RouteCatalogEntry['contractGroup'], string> = {
'llm-observe-routes': 'tests/integration/api/contract/llm-observe-routes.test.ts',
'direct-submit-routes': 'tests/integration/api/contract/direct-submit-routes.test.ts',
'crud-asset-hub-routes': 'tests/integration/api/contract/crud-routes.test.ts',
'crud-novel-promotion-routes': 'tests/integration/api/contract/crud-routes.test.ts',
'task-infra-routes': 'tests/integration/api/contract/task-infra-routes.test.ts',
'user-project-routes': 'tests/integration/api/contract/crud-routes.test.ts',
'auth-routes': 'tests/integration/api/contract/crud-routes.test.ts',
'infra-routes': 'tests/integration/api/contract/crud-routes.test.ts',
}
function resolveChainTest(routeFile: string): string {
if (routeFile.includes('/generate-video/') || routeFile.includes('/lip-sync/')) {
return 'tests/integration/chain/video.chain.test.ts'
}
if (routeFile.includes('/voice-') || routeFile.includes('/voice/')) {
return 'tests/integration/chain/voice.chain.test.ts'
}
if (
routeFile.includes('/analyze')
|| routeFile.includes('/story-to-script')
|| routeFile.includes('/script-to-storyboard')
|| routeFile.includes('/screenplay-conversion')
|| routeFile.includes('/reference-to-character')
) {
return 'tests/integration/chain/text.chain.test.ts'
}
return 'tests/integration/chain/image.chain.test.ts'
}
export const ROUTE_BEHAVIOR_MATRIX: ReadonlyArray<RouteBehaviorMatrixEntry> = ROUTE_CATALOG.map((entry) => ({
routeFile: entry.routeFile,
contractGroup: entry.contractGroup,
caseId: `ROUTE:${entry.routeFile.replace(/^src\/app\/api\//, '').replace(/\/route\.ts$/, '')}`,
tests: [
CONTRACT_TEST_BY_GROUP[entry.contractGroup],
resolveChainTest(entry.routeFile),
],
}))
export const ROUTE_BEHAVIOR_COUNT = ROUTE_BEHAVIOR_MATRIX.length