diff --git a/test/server/fake-backend.js b/test/server/fake-backend.js index e932aea4b6..c8af7aaca2 100644 --- a/test/server/fake-backend.js +++ b/test/server/fake-backend.js @@ -7,19 +7,19 @@ module.exports = (app) => { req.body.split('\n').forEach((log) => logs.push(JSON.parse(log))) res.send('ok') }) - app.get('/logs', (req, res) => res.send(logs)) + app.get('/logs', (req, res) => send(res, logs)) app.post('/rum', (req, res) => { req.body.split('\n').forEach((rumEvent) => rumEvents.push(JSON.parse(rumEvent))) res.send('ok') }) - app.get('/rum', (req, res) => res.send(rumEvents)) + app.get('/rum', (req, res) => send(res, rumEvents)) app.post('/monitoring', (req, res) => { monitoring.push(JSON.parse(req.body)) res.send('ok') }) - app.get('/monitoring', (req, res) => res.send(monitoring)) + app.get('/monitoring', (req, res) => send(res, monitoring)) app.get('/reset', (req, res) => { logs = [] @@ -36,3 +36,9 @@ module.exports = (app) => { res.send('ok') }) } + +function send(res, data) { + // add response content to res object for logging + res.body = JSON.stringify(data) + res.send(data) +} diff --git a/test/server/server.js b/test/server/server.js index d902aa2c23..b9c2d03fcb 100644 --- a/test/server/server.js +++ b/test/server/server.js @@ -23,7 +23,7 @@ if (process.env.ENV === 'development') { app.use(middleware(webpack(withBuildEnv(logsConfig(null, { mode: 'development' }))))) } else { // e2e tests - morgan.token('body', (req) => hasValidBody(req) && `\n${req.body}`) + morgan.token('body', (req, res) => extractBody(req, res)) const stream = fs.createWriteStream(path.join(__dirname, 'test-server.log')) app.use(morgan(':method :url :body', { stream })) app.use(express.static(path.join(__dirname, '../../packages/logs/bundle'))) @@ -53,6 +53,15 @@ function withBuildEnv(webpackConf) { return webpackConf } -function hasValidBody(req) { - return req.body && JSON.stringify(req.body) !== '{}' +function extractBody(req, res) { + if (isValidBody(req.body)) { + return `\n${req.body}` + } + if (isValidBody(res.body)) { + return `\n${res.body}` + } +} + +function isValidBody(body) { + return body && JSON.stringify(body) !== '{}' }