UNPKG

jest-bench

Version:
62 lines 2.39 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.benchmarkSuite = void 0; const benchmark_1 = __importDefault(require("./benchmark")); const store_1 = require("./store"); const defaultTimeoutSeconds = 60; function benchmarkSuite(name, desc, timeoutMsOrOptions) { describe(name, () => { var _a; let timeout; let options = {}; if (timeoutMsOrOptions != null) { if (typeof timeoutMsOrOptions == 'number') { timeout = timeoutMsOrOptions; } else { options = timeoutMsOrOptions; timeout = ((_a = options.timeoutSeconds) !== null && _a !== void 0 ? _a : defaultTimeoutSeconds) * 1000; } } else { timeout = defaultTimeoutSeconds * 1000; } const { setup, teardown, setupSuite, teardownSuite } = desc; if (setupSuite) { beforeAll(setupSuite); } if (teardownSuite) { afterAll(teardownSuite); } for (let key of Object.keys(desc)) { if (["setup", "teardown", "setupSuite", "teardownSuite"].indexOf(key) !== -1) { continue; } else { const fn = desc[key]; test(key, () => new Promise((resolve, reject) => { const bm = (0, benchmark_1.default)(key, Object.assign(Object.assign({}, options), { defer: fn.length === 1, setup, fn, teardown, onComplete: () => { (0, store_1.saveResult)(name, key, { stats: bm.stats, times: bm.times, count: bm.count, cycles: bm.cycles, hz: bm.hz, }); resolve(null); }, onError: () => { reject(bm.error); } })); bm.run({ async: true }); }), timeout); } } }); } exports.benchmarkSuite = benchmarkSuite; //# sourceMappingURL=suite.js.map