text: // 1. start the dev server using production config
  process.env.NODE_ENV = "testing"
  
  const webpack = require("webpack")
  const DevServer = require("webpack-dev-server")
  
  const webpackConfig = require("../../build/webpack.prod.conf")
  const devConfigPromise = require("../../build/webpack.dev.conf")
  
  let server
  
  devConfigPromise
    .then(devConfig => {
      const devServerOptions = devConfig.devServer
      const compiler = webpack(webpackConfig)
      server = new DevServer(compiler, devServerOptions)
      const port = devServerOptions.port
      const host = devServerOptions.host
      return server.listen(port, host)
    })
    .then(() => {
      // 2. run the nightwatch test suite against it
      // to run in additional browsers:
      //    1. add an entry in test/e2e/nightwatch.conf.js under "test_settings"
      //    2. add it to the --env flag below
      // or override the environment flag, for example: `npm run e2e -- --env chrome,firefox`
      // For more information on Nightwatch's config file, see
      // http://nightwatchjs.org/guide#settings-file
      let opts = process.argv.slice(2)
      if (opts.indexOf("--config") === -1) {
        opts = opts.concat(["--config", "test/e2e/nightwatch.conf.js"])
      }
      if (opts.indexOf("--env") === -1) {
        opts = opts.concat(["--env", "chrome"])
      }
  
      const spawn = require("cross-spawn")
      const runner = spawn("./node_modules/.bin/nightwatch", opts, { stdio: "inherit" })
  
      runner.on("exit", function(code) {
        server.close()
        process.exit(code)
      })
  
      runner.on("error", function(err) {
        server.close()
        throw err
      })
    })
  