@apistudio/apim-cli
Version:
CLI for API Management Products
31 lines (30 loc) • 1.21 kB
JavaScript
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 {
async processFile(buffer) {
const zipModel = new ZipTestModelTransformer();
const model = await zipModel.transform(buffer);
const tests = model.getAllTests();
const runs = tests.map(async (test) => 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, reqHeader) {
return await fetchTraceAndCatalogData(reqbody, reqHeader);
}
async getCaptureId(reqbody, reqHeader) {
return await fetchCaptureId(reqbody, reqHeader);
}
}