diff --git a/packages/next/server/next-dev-server.js b/packages/next/server/next-dev-server.js index 66a36ac0afc44ed59ef3ffa6115f49c0e5de6f5f..436a268b9865560eaa2ff23e6a55b9b00b793561 100644 --- a/packages/next/server/next-dev-server.js +++ b/packages/next/server/next-dev-server.js @@ -114,7 +114,7 @@ export default class DevServer extends Server { return !snippet.includes('data-amp-development-mode-only') } - async renderToHTML (req, res, pathname, query, options) { + async renderToHTML (req, res, pathname, query, options = {}) { const compilationErr = await this.getCompilationError(pathname) if (compilationErr) { res.statusCode = 500 diff --git a/test/integration/custom-server/test/index.test.js b/test/integration/custom-server/test/index.test.js index b5686acea774681c7cd1ce14efaad4cf399655c5..9dcd6ec424e6278d4e2062e19e88da93e7826a29 100644 --- a/test/integration/custom-server/test/index.test.js +++ b/test/integration/custom-server/test/index.test.js @@ -32,7 +32,7 @@ const startServer = async (optEnv = {}) => { optEnv ) - server = await initNextServerScript(scriptPath, /Ready on/, env) + server = await initNextServerScript(scriptPath, /Ready on/, env, /ReferenceError: options is not defined/) } describe('Custom Server', () => { diff --git a/test/lib/next-test-utils.js b/test/lib/next-test-utils.js index 696b68949907075b85bb3c4a1c3ce89deda54635..00d8de86ee25391740410b12686f310175a2e73a 100644 --- a/test/lib/next-test-utils.js +++ b/test/lib/next-test-utils.js @@ -17,7 +17,7 @@ import _pkg from 'next/package.json' export const nextServer = server export const pkg = _pkg -export function initNextServerScript (scriptPath, successRegexp, env) { +export function initNextServerScript (scriptPath, successRegexp, env, failRegexp) { return new Promise((resolve, reject) => { const instance = spawn('node', [scriptPath], { env }) @@ -30,7 +30,12 @@ export function initNextServerScript (scriptPath, successRegexp, env) { } function handleStderr (data) { - process.stderr.write(data.toString()) + const message = data.toString() + if (failRegexp && failRegexp.test(message)) { + instance.kill() + return reject(new Error('received failRegexp')) + } + process.stderr.write(message) } instance.stdout.on('data', handleStdout)