UNPKG

@oaklean/profiler-jest-environment

Version:

A jest environment to collect energy measurements on source code level during test execution.

68 lines 7.49 kB
"use strict"; 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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