@magic-num/fileclient
Version:
149 lines (123 loc) • 3.87 kB
JavaScript
;
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;