@ -7,12 +7,14 @@ const pify = require('pify');
const createCert = require ( 'create-cert' ) ;
const bodyParser = require ( 'body-parser' ) ;
const createTestServer = ( opts = { } ) => createCert ( opts . certificate )
. then ( keys => {
const createServer = ( keys , opts ) => {
const server = express ( ) ;
server . http = http . createServer ( server ) ;
if ( keys ) {
server . https = https . createServer ( keys , server ) ;
server . caCert = keys . caCert ;
}
server . set ( 'etag' , false ) ;
@ -42,29 +44,49 @@ const createTestServer = (opts = {}) => createCert(opts.certificate)
}
} ;
server . listen = ( ) => Promise . all ( [
server . listen = ( ) => {
const promises = [
pify ( server . http . listen . bind ( server . http ) ) ( ) . then ( ( ) => {
server . port = server . http . address ( ) . port ;
server . url = ` http://localhost: ${ server . port } ` ;
} ) ,
} )
] ;
if ( server . https ) {
promises . push (
pify ( server . https . listen . bind ( server . https ) ) ( ) . then ( ( ) => {
server . sslPort = server . https . address ( ) . port ;
server . sslUrl = ` https://localhost: ${ server . sslPort } ` ;
} )
] ) ;
) ;
}
return Promise . all ( promises ) ;
} ;
server . close = ( ) => Promise . all ( [
server . close = ( ) => {
const promises = [
pify ( server . http . close . bind ( server . http ) ) ( ) . then ( ( ) => {
server . port = undefined ;
server . url = undefined ;
} ) ,
} )
] ;
if ( server . https ) {
promises . push (
pify ( server . https . close . bind ( server . https ) ) ( ) . then ( ( ) => {
server . sslPort = undefined ;
server . sslUrl = undefined ;
} )
] ) ;
) ;
}
return Promise . all ( promises ) ;
} ;
return server . listen ( ) . then ( ( ) => server ) ;
} ) ;
} ;
module . exports = createTestServer ;
module . exports = ( opts = { } ) => {
if ( opts . certificate === false ) {
return createServer ( null , opts ) ;
}
return createCert ( opts . certificate ) . then ( keys => createServer ( keys , opts ) ) ;
} ;