next-page-tester
Version:
Enable DOM integration testing on Next.js pages
40 lines (39 loc) • 1.55 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.renderEnhancedApp = void 0;
const react_1 = __importDefault(require("react"));
function renderApp({ options, pageObject, pageProps, appProps, }) {
const { env } = options;
const files = pageObject.files[env];
const { appFile: { default: AppComponent }, pageFile: { default: PageComponent }, wrappersFile, } = files;
const wrappers = {
appWrapper: wrappersFile === null || wrappersFile === void 0 ? void 0 : wrappersFile.App,
pageWrapper: wrappersFile === null || wrappersFile === void 0 ? void 0 : wrappersFile.Page,
};
return renderEnhancedApp({
App: AppComponent,
Page: PageComponent,
appProps,
pageProps,
wrappers,
});
}
exports.default = renderApp;
/*
* Render App and Page component inside optional wrapper provided as options.wrapper
*/
function renderEnhancedApp({ App, Page, appProps, pageProps, wrappers, }) {
let UserEnhancedPage = Page;
let UserEnhancedApp = App;
if (wrappers.appWrapper) {
UserEnhancedApp = wrappers.appWrapper(App);
}
if (wrappers.pageWrapper) {
UserEnhancedPage = wrappers.pageWrapper(Page);
}
return (react_1.default.createElement(UserEnhancedApp, { Component: UserEnhancedPage, pageProps: pageProps, ...appProps }));
}
exports.renderEnhancedApp = renderEnhancedApp;