LivePersonInc/chronosjs

View on GitHub
build/connect.js

Summary

Maintainability
A
55 mins
Test Coverage
const fs = require('fs');
const mkdirp = require('mkdirp');
const bodyParser = require('body-parser');

module.exports = {
    server: {
        options: {
            //keepalive: true,
            port: 8001,
            base: ".",
            middleware: (connect, options, middlewares) => {
                // inject a custom middleware into the array of default middlewares - this middleware captures the coverage report generated by istanbul
                middlewares.unshift((req, res, next) => {
                    if (req && req.method === 'POST') {
                        mkdirp.sync('test/coverage/reports/');
                        fs.writeFile('test/coverage/reports/coverage.json', JSON.stringify(req.body), function (err) {
                            if (err) {
                                console.log(err);
                            }
                            else {
                                console.log('Code coverage information exported!');
                            }
                        });
                        res.write('{\'status\': \'success\'}');
                        res.writeHead(200, {'Content-Type': 'application/json'});
                        res.end();
                    }
                    else {
                        return next();
                    }
                });

                middlewares.unshift(bodyParser.json({ limit: '5mb' }));

                return middlewares;
            }
        }
    }
};