Merge branch 'master' of github.com:sveltejs/sapper

This commit is contained in:
Artyom Stepanishchev
2018-12-09 18:01:31 +03:00
2 changed files with 22 additions and 15 deletions

View File

@@ -8,6 +8,10 @@ declare const prefetchRoutes: () => Promise<void>;
declare const prefetch: (href: string) => Promise<void>;
declare const goto: (href: string) => Promise<void>;
type StartOpts = {
requestInterceptor?: (interceptedRequst: puppeteer.Request) => any
};
export class AppRunner {
cwd: string;
entry: string;
@@ -24,7 +28,7 @@ export class AppRunner {
this.messages = [];
}
async start() {
async start({ requestInterceptor }: StartOpts = {}) {
this.port = await ports.find(3000);
this.proc = fork(this.entry, [], {
@@ -50,19 +54,10 @@ export class AppRunner {
}
});
await this.page.setRequestInterception(true);
this.page.on('request', interceptedRequest => {
if (/example\.com/.test(interceptedRequest.url())) {
interceptedRequest.respond({
status: 200,
contentType: 'text/html',
body: `<h1>external</h1>`
});
} else {
interceptedRequest.continue();
}
});
if (requestInterceptor) {
await this.page.setRequestInterception(true);
this.page.on('request', requestInterceptor);
}
return {
page: this.page,

View File

@@ -21,7 +21,19 @@ describe('redirects', function() {
await build({ cwd: __dirname });
runner = new AppRunner(__dirname, '__sapper__/build/server/server.js');
({ base, page, start, prefetchRoutes, title } = await runner.start());
({ base, page, start, prefetchRoutes, title } = await runner.start({
requestInterceptor: (interceptedRequest) => {
if (/example\.com/.test(interceptedRequest.url())) {
interceptedRequest.respond({
status: 200,
contentType: 'text/html',
body: `<h1>external</h1>`
});
} else {
interceptedRequest.continue();
}
}
}));
});
after(() => runner.end());