jest-bench
Version:
Run benchmark with Jest
62 lines • 2.39 kB
JavaScript
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
;