@apistudio/apim-cli
Version:
CLI for API Management Products
37 lines (34 loc) • 1.33 kB
text/typescript
/**
* Copyright IBM Corp. 2024, 2025
*/
import { TestManagerInterface } from '../models/interface.js';
import { TestRunner } from '../engine/execution/test-runner.js';
import { ZipTestModelTransformer } from '../transformers/zip-models.transformer.js';
import { fetchTraceAndCatalogData, fetchCaptureId } from '../helpers/trace-helper.js';
export class TestManager implements TestManagerInterface {
async processFile(buffer: Buffer) {
const zipModel = new ZipTestModelTransformer();
const model = await zipModel.transform(buffer);
const tests = model.getAllTests();
const runs = tests.map(async (test: any) => new TestRunner(test).run());
const promisedSummaries = await Promise.allSettled(runs);
const summaries = [];
for (const summary of promisedSummaries) {
if (summary.status === 'fulfilled') {
summaries.push(summary.value);
}
}
return summaries;
}
/**
* Process trace data from a request
* @param traceReq - The request containing trace data
* @returns Processed trace data
*/
async processTrace(reqbody: any, reqHeader: any): Promise<any | null> {
return await fetchTraceAndCatalogData(reqbody, reqHeader)
}
async getCaptureId(reqbody: any, reqHeader: any): Promise<any | null> {
return await fetchCaptureId(reqbody, reqHeader)
}
}