@oaklean/profiler-jest-environment
Version:
A jest environment to collect energy measurements on source code level during test execution.
68 lines • 7.49 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = default_1;
const profiler_core_1 = require("@oaklean/profiler-core");
const constants_1 = require("./constants");
function default_1() {
return __awaiter(this, void 0, void 0, function* () {
if (!constants_1.ENABLE_MEASUREMENTS) {
return;
}
const performance = new profiler_core_1.PerformanceHelper();
performance.start('jestEnv.teardown');
profiler_core_1.LoggerHelper.log('Profiler: Combine Measurements and generate an aggregated report');
performance.start('jestEnv.teardown.resolveConfig');
const profilerConfig = profiler_core_1.ProfilerConfig.autoResolve();
performance.stop('jestEnv.teardown.resolveConfig');
const exportAssetHelper = new profiler_core_1.ExportAssetHelper(profilerConfig.getOutDir().join('jest'));
const reportPaths = exportAssetHelper.allReportPathsInOutputDir();
performance.start('jestEnv.teardown.loadReports');
const reports = reportPaths.map((filePath) => {
const report = profiler_core_1.ProjectReport.loadFromFile(filePath, 'bin');
if (!report) {
throw new Error(`ProjectReport could not be found: ${filePath.toPlatformString()}`);
}
return report;
});
performance.stop('jestEnv.teardown.loadReports');
performance.start('jestEnv.teardown.resolveEngineModule');
const engineModule = reports.length > 0
? reports[0].globalIndex.engineModule
: profiler_core_1.NodeModule.currentEngineModule();
performance.stop('jestEnv.teardown.resolveEngineModule');
const globalIndex = new profiler_core_1.GlobalIndex(engineModule);
const moduleIndex = globalIndex.getModuleIndex('upsert');
performance.start('jestEnv.teardown.mergeReports');
const accumulatedProjectReport = profiler_core_1.ProjectReport.merge(moduleIndex, ...reports);
performance.stop('jestEnv.teardown.mergeReports');
const accumulatedProjectReportPath = exportAssetHelper.outputAccumulatedReportPath();
performance.start('jestEnv.teardown.exportReport');
accumulatedProjectReport.storeToFile(accumulatedProjectReportPath, 'bin', profilerConfig);
performance.stop('jestEnv.teardown.exportReport');
const commitHash = accumulatedProjectReport.executionDetails.commitHash;
const accumulatedProjectReportHistoryPath = profilerConfig
.getOutHistoryDir()
.join(`${accumulatedProjectReport.projectMetaData.projectID}`, profiler_core_1.ExportAssetHelper.historyReportFileName(accumulatedProjectReport.executionDetails.timestamp, commitHash));
performance.start('jestEnv.teardown.exportHistoryReport');
accumulatedProjectReport.storeToFile(accumulatedProjectReportHistoryPath, 'bin', profilerConfig);
performance.stop('jestEnv.teardown.exportHistoryReport');
if (yield accumulatedProjectReport.shouldBeStoredInRegistry()) {
performance.start('jestEnv.teardown.uploadToRegistry');
yield profiler_core_1.RegistryHelper.uploadToRegistry(accumulatedProjectReport);
performance.stop('jestEnv.teardown.uploadToRegistry');
}
performance.stop('jestEnv.teardown');
performance.printReport('jestEnv.teardown');
performance.exportAndSum(exportAssetHelper.outputPerformancePath());
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhcmRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZWFyZG93bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWNBLDRCQWtGQztBQWhHRCwwREFVK0I7QUFFL0IsMkNBQWlEO0FBRWpEOztRQUNDLElBQUksQ0FBQywrQkFBbUIsRUFBRSxDQUFDO1lBQzFCLE9BQU07UUFDUCxDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxpQ0FBaUIsRUFBRSxDQUFBO1FBQzNDLFdBQVcsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUNyQyw0QkFBWSxDQUFDLEdBQUcsQ0FDZixrRUFBa0UsQ0FDbEUsQ0FBQTtRQUVELFdBQVcsQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQTtRQUNuRCxNQUFNLGNBQWMsR0FBRyw4QkFBYyxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ25ELFdBQVcsQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQTtRQUNsRCxNQUFNLGlCQUFpQixHQUFHLElBQUksaUNBQWlCLENBQzlDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQ3ZDLENBQUE7UUFFRCxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyx5QkFBeUIsRUFBRSxDQUFBO1FBQ2pFLFdBQVcsQ0FBQyxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQTtRQUNqRCxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBcUIsRUFBRSxFQUFFO1lBQ3pELE1BQU0sTUFBTSxHQUFHLDZCQUFhLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUMxRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2IsTUFBTSxJQUFJLEtBQUssQ0FDZCxxQ0FBcUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FDbEUsQ0FBQTtZQUNGLENBQUM7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