Programmatic API
testpilot-ai can be used as a library in your own tools and scripts.
Installation
npm install @amit641/testpilot-ai
Generate Tests
import { generateTests, resolveConfig } from '@amit641/testpilot-ai';
const config = resolveConfig({
provider: 'openai',
model: 'gpt-4o',
});
const result = await generateTests('src/utils.ts', config);
console.log(`Generated ${result.testCount} tests`);
console.log(`Written to: ${result.testFile}`);
console.log(`Duration: ${result.duration}ms`);
console.log(`Tokens used: ${result.tokensUsed}`);
Analyze a File
import { analyzeFile } from '@amit641/testpilot-ai';
const analysis = analyzeFile('src/utils.ts');
console.log(`File: ${analysis.fileName}`);
console.log(`Language: ${analysis.language}`);
console.log(`Exports: ${analysis.exports.length}`);
for (const exp of analysis.exports) {
console.log(` ${exp.kind}: ${exp.name}`);
if (exp.parameters) {
for (const param of exp.parameters) {
console.log(` - ${param.name}: ${param.type ?? 'any'}`);
}
}
}
Resolve Config
import { resolveConfig } from '@amit641/testpilot-ai';
// Merges: defaults < config file < package.json < your overrides
const config = resolveConfig({
provider: 'anthropic',
framework: 'jest',
edgeCases: false,
});
Dry Run (No File Write)
import { generateTests, resolveConfig } from '@amit641/testpilot-ai';
const config = resolveConfig({ provider: 'openai' });
const result = await generateTests('src/utils.ts', config, {
dryRun: true,
onChunk: (text) => process.stdout.write(text),
});
// result.testFile shows where it would have been written
// but no file was created
Streaming Callback
import { generateTests, resolveConfig } from '@amit641/testpilot-ai';
const config = resolveConfig({ provider: 'openai' });
const result = await generateTests('src/utils.ts', config, {
onChunk: (chunk) => {
// Called for each streamed text chunk
process.stdout.write(chunk);
},
});
Framework Detection
import { detectFramework, getFrameworkInfo } from '@amit641/testpilot-ai';
const framework = detectFramework({
devDependencies: { vitest: '^2.0.0' },
});
// → 'vitest'
const info = getFrameworkInfo('vitest');
console.log(info.runCommand); // 'npx vitest run'
Types
All types are exported for TypeScript usage:
import type {
AutotestConfig,
AutotestResult,
AnalyzedFile,
ExportedSymbol,
GeneratedTest,
TestFramework,
TestCategory,
ParameterInfo,
ImportStatement,
SymbolKind,
} from '@amit641/testpilot-ai';