UNPKG

@magic-num/fileclient

Version:
149 lines (123 loc) 3.87 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.teardown = exports.setup = exports.default = exports.jestInstance = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _fs = _interopRequireDefault(require("fs")); var _process = _interopRequireDefault(require("process")); var _path = _interopRequireDefault(require("path")); var _fileclient = _interopRequireDefault(require("./fileclient")); var _jsonfile = _interopRequireDefault(require("jsonfile")); require("console.table"); var jestInstance = function jestInstance(path) { var p = path; if (p) { var fileclient = _fileclient.default.fromPath(p); return fileclient; } else { throw new Error('Please config MagicData in jest.config.js or pass it to jest'); } }; exports.jestInstance = jestInstance; var writeData = function writeData(magic) { var result = {}; magic.handlers.forEach(function (handler) { var node = result[handler.id] = {}; handler.tcs.forEach(function (tc) { node[tc.id] = { id: tc.id, counter: 0 }; }); }); console.info('update stat file'); _jsonfile.default.writeFileSync(_path.default.join(_process.default.cwd(), 'testcase-stat.json'), result, { spaces: 2, EOL: '\r\n' }); }; var setup = /*#__PURE__*/ function () { var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/ _regenerator.default.mark(function _callee(path) { var client; return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: client = jestInstance(path); writeData(client); case 2: case "end": return _context.stop(); } } }, _callee, this); })); return function setup(_x) { return _ref.apply(this, arguments); }; }(); exports.setup = setup; var teardown = /*#__PURE__*/ function () { var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/ _regenerator.default.mark(function _callee2() { var stat, json, tabluar; return _regenerator.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: stat = _fs.default.readFileSync(_path.default.join(_process.default.cwd(), 'testcase-stat.json')); json = JSON.parse(stat); tabluar = []; Object.keys(json).forEach(function (k) { var row = {}; var api = json[k]; row.api = k; var tcs = Object.values(api); row.total = tcs.length; row.visited = tcs.filter(function (tc) { return tc.counter > 0; }).length; row.remain = tcs.filter(function (tc) { return tc.counter < 1; }).length; tabluar.push(row); }); console.info('Test data coverage statistics'); console.table(tabluar); case 6: case "end": return _context2.stop(); } } }, _callee2, this); })); return function teardown() { return _ref2.apply(this, arguments); }; }(); exports.teardown = teardown; var _default = function _default(_ref3) { var _ref3$magicData = _ref3.magicData, magicData = _ref3$magicData === void 0 ? '' : _ref3$magicData; var conf = { globals: { magicData: magicData }, moduleNameMapper: { "\\.(css|less)$": "identity-obj-proxy" }, testEnvironment: "jsdom" }; return conf; }; exports.default = _default;