3 changed files with 45 additions and 16 deletions
@ -1,21 +1,42 @@ |
|||||
'use strict'; |
'use strict'; |
||||
|
|
||||
const http = require('http'); |
const http = require('http'); |
||||
|
const https = require('https'); |
||||
const express = require('express'); |
const express = require('express'); |
||||
const getPort = require('get-port'); |
const getPort = require('get-port'); |
||||
const pify = require('pify'); |
const pify = require('pify'); |
||||
|
const createCert = require('create-cert'); |
||||
|
|
||||
const createTestServer = () => getPort().then(port => { |
const createTestServer = () => Promise.all([ |
||||
const app = express(); |
getPort(), |
||||
const server = http.createServer(app); |
getPort(), |
||||
|
createCert() |
||||
|
]) |
||||
|
.then(results => { |
||||
|
const app = express(); |
||||
|
app.port = results[0]; |
||||
|
app.sslPort = results[1]; |
||||
|
app.sslCert = results[2]; |
||||
|
app.host = 'localhost'; |
||||
|
app.url = `http://${app.host}:${app.port}`; |
||||
|
app.sslUrl = `https://${app.host}:${app.sslPort}`; |
||||
|
|
||||
app.host = 'localhost'; |
const server = http.createServer(app); |
||||
app.port = port; |
const sslServer = https.createServer({ |
||||
app.url = `http://${app.host}:${app.port}`; |
key: app.sslCert.keys.clientKey, |
||||
app.listen = pify(server.listen.bind(server, app.port)); |
cert: app.sslCert.keys.certificate |
||||
app.close = pify(server.close.bind(server)); |
}, app); |
||||
|
|
||||
return app.listen().then(() => app); |
app.listen = () => Promise.all([ |
||||
}); |
pify(server.listen.bind(server))(app.port), |
||||
|
pify(sslServer.listen.bind(sslServer))(app.sslPort) |
||||
|
]); |
||||
|
app.close = () => Promise.all([ |
||||
|
pify(server.close.bind(server))(), |
||||
|
pify(sslServer.close.bind(sslServer))() |
||||
|
]); |
||||
|
|
||||
|
return app.listen().then(() => app); |
||||
|
}); |
||||
|
|
||||
module.exports = createTestServer; |
module.exports = createTestServer; |
||||
|
Loading…
Reference in new issue