diff --git a/packages/datadog-plugin-next/test/index.spec.js b/packages/datadog-plugin-next/test/index.spec.js index 25143c14608..4772c07a481 100644 --- a/packages/datadog-plugin-next/test/index.spec.js +++ b/packages/datadog-plugin-next/test/index.spec.js @@ -60,15 +60,16 @@ describe('Plugin', function () { }) server.once('error', done) - server.stdout.once('data', () => { - // first log outputted isn't always the server started log - // https://github.com/vercel/next.js/blob/v10.2.0/packages/next/next-server/server/config-utils.ts#L39 - // these are webpack related logs that run during execution time and not build - - // additionally, next.js sets timeouts in 10.x when displaying extra logs - // https://github.com/vercel/next.js/blob/v10.2.0/packages/next/server/next.ts#L132-L133 - setTimeout(done, 700) // relatively high timeout chosen to be safe - }) + + function waitUntilServerStarted (chunk) { + const chunkString = chunk.toString() + if (chunkString?.includes(port) || chunkString?.includes('Ready ')) { + server.stdout.off('data', waitUntilServerStarted) + done() + } + } + server.stdout.on('data', waitUntilServerStarted) + server.stderr.on('data', chunk => process.stderr.write(chunk)) server.stdout.on('data', chunk => process.stdout.write(chunk)) })