@percy/sdk-utils
Version:
Common JavaScript SDK utils
84 lines (75 loc) • 2.79 kB
JavaScript
(function() {
this["null"] = this["null"] || {};
this.PercySDKUtils.TestHelpers = (function (require$$0) {
'use strict';
const process = (typeof globalThis !== "undefined" && globalThis.process) || {};
process.env = process.env || {};
process.env.__PERCY_BROWSERIFIED__ = true;
globalThis.process = globalThis.process || process;
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0);
const utils = require$$0__default["default"];
const helpers = {
async setupTest({
logger = true
} = {}) {
utils.percy.version = '';
delete utils.percy.config;
delete utils.percy.build;
delete utils.percy.enabled;
delete utils.percy.domScript;
delete utils.logger.log.history;
delete utils.logger.loglevel.lvl;
delete process.env.PERCY_LOGLEVEL;
delete process.env.PERCY_SERVER_ADDRESS;
utils.logger.log = helpers.logger.__log__;
if (logger) helpers.logger.mock();
await helpers.test('reset');
},
async test(cmd, arg) {
let res = await utils.request.post(`/test/api/${cmd}`, arg);
return res.body;
},
async get(what, map) {
let res = await utils.request(`/test/${what}`);
if (!map) map = what === 'logs' ? l => l.message : i => i;
return Array.isArray(res.body[what]) ? res.body[what].map(map) : map(res.body);
},
async mockGetCurrentUrl() {
try {
await utils.request('/wd/hub/session');
} catch {}
},
get testSnapshotURL() {
return `${utils.percy.address}/test/snapshot`;
},
logger: {
__log__: utils.logger.log,
loglevel: utils.logger.loglevel,
stdout: [],
stderr: [],
mock() {
helpers.logger.reset();
utils.logger.log = (ns, lvl, msg) => {
if (lvl === 'debug' && helpers.logger.loglevel.lvl !== 'debug') return;
msg = `[percy${lvl === 'debug' ? `:${ns}` : ''}] ${msg}`;
let io = lvl === 'info' ? 'stdout' : 'stderr';
helpers.logger[io].push(msg);
};
},
reset() {
helpers.logger.stdout = [];
helpers.logger.stderr = [];
helpers.logger.loglevel('info');
}
}
};
var helpers_1 = helpers;
return helpers_1;
})(PercySDKUtils);
}).call(window);
if (typeof define === "function" && define.amd) {
define("@percy/sdk-utils", [], () => window.PercySDKUtils.TestHelpers);
} else if (typeof module === "object" && module.exports) {
module.exports = window.PercySDKUtils.TestHelpers;
}