e2ed
Version:
E2E testing framework over Playwright
28 lines (27 loc) • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getRouteInstanceFromUrl = void 0;
const error_1 = require("./error");
/**
* Get route instance and route params from url and method by route class.
* @throws {Error} If `url` accepted without errors by `getParamsFromUrlOrThrow`,
* but not match by `isMatchUrl` method.
* If `url` not accepted by `getParamsFromUrlOrThrow`, returns `undefined`.
* @internal
*/
const getRouteInstanceFromUrl = (url, Route) => {
let route;
let routeParams;
try {
routeParams = Route.getParamsFromUrlOrThrow(url);
route = new Route(routeParams);
}
catch {
return undefined;
}
if (route.isMatchUrl(url) !== true) {
throw new error_1.E2edError(`Inconsistency in "${Route.name}" route: isMatchUrl does not accept url accepted without errors by getParamsFromUrlOrThrow`, { route, url });
}
return { route, routeParams };
};
exports.getRouteInstanceFromUrl = getRouteInstanceFromUrl;