testplane
Version:
Tests framework based on mocha and wdio
62 lines • 2.62 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPathWithoutExtName = exports.getTestInfoFromViteRequest = exports.prepareError = exports.getImportMetaUrl = void 0;
const node_url_1 = __importDefault(require("node:url"));
const node_path_1 = __importDefault(require("node:path"));
const lodash_1 = __importDefault(require("lodash"));
const constants_1 = require("./constants");
// TODO: use import.meta.url after migrate to esm
const getImportMetaUrl = (path) => {
return node_url_1.default.pathToFileURL(path).toString();
};
exports.getImportMetaUrl = getImportMetaUrl;
// TODO: use from browser code after migrate to esm
const prepareError = (error) => {
return JSON.parse(JSON.stringify(error, Object.getOwnPropertyNames(error)));
};
exports.prepareError = prepareError;
const getTestInfoFromViteRequest = (req) => {
if (!req.url?.endsWith("index.html") || !req.originalUrl) {
return null;
}
if (req.originalUrl && req.originalUrl.endsWith("devtools.json")) {
return null;
}
const parsedUrl = node_url_1.default.parse(req.originalUrl);
const [routeName, runUuid] = lodash_1.default.compact(parsedUrl.pathname?.split("/"));
if (runUuid?.endsWith(".map")) {
return null;
}
if (routeName !== constants_1.VITE_RUN_UUID_ROUTE || !runUuid) {
throw new Error(`Pathname must be in "/${constants_1.VITE_RUN_UUID_ROUTE}/:uuid" format, but got: ${req.originalUrl}`);
}
const env = constants_1.WORKER_ENV_BY_RUN_UUID.get(runUuid);
if (!env) {
throw new Error(`Worker environment is not found by "${runUuid}". ` +
"This is possible if:\n" +
' - "runUuid" is not generated by Testplane\n' +
" - the test has already been completed\n" +
" - worker was disconnected");
}
return {
routeName,
runUuid,
env: {
...env,
file: node_path_1.default.posix.join("/", node_path_1.default.relative(process.cwd(), env.file).replaceAll(node_path_1.default.sep, node_path_1.default.posix.sep)),
},
};
};
exports.getTestInfoFromViteRequest = getTestInfoFromViteRequest;
const getPathWithoutExtName = (fsPath) => {
const extname = node_path_1.default.extname(fsPath);
if (!extname) {
return fsPath;
}
return fsPath.slice(0, -extname.length);
};
exports.getPathWithoutExtName = getPathWithoutExtName;
//# sourceMappingURL=utils.js.map