next-page-tester
Version:
Enable DOM integration testing on Next.js pages
35 lines (34 loc) • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPageInfo = void 0;
const getPageObject_1 = require("../getPageObject");
const fetchData_1 = require("../fetchData");
const _404_1 = require("../404");
const _error_1 = require("../_error");
const utils_1 = require("../utils");
/*
* Return page info associated with a given path
*/
async function getPageInfo({ options, }) {
const pageObject = await (0, getPageObject_1.getPageObject)({ options });
if (pageObject.type === 'notFound') {
if ((0, utils_1.isExternalRoute)(pageObject.route)) {
throw new _error_1.InternalError(`External route: ${pageObject.route}`);
}
return (0, _404_1.get404PageInfo)({ options });
}
const pageData = await (0, fetchData_1.fetchRouteData)({ options, pageObject });
if (pageData.redirect) {
return getPageInfo({
options: {
...options,
route: pageData.redirect.destination,
},
});
}
if (pageData.notFound) {
return (0, _404_1.get404PageInfo)({ options });
}
return { pageObject, pageData };
}
exports.getPageInfo = getPageInfo;