Files
cypress/packages/https-proxy/test/helpers/https_server.coffee
Zach Bloomquist 7b85344b84 Fix proxying HTTPS requests to IP addresses (#4947)
* use own server-destroy implementation that supports secureConnect events

* stand up HTTPS server for requests over ssl to IPs

* don't need to resolve with

* fix tests

* stand up a server on 127.0.0.1 for test

* tighten up / cleanup code, consolidate + refactor

- lazily fs.outputfile’s
- move sslIpServers to be global
- add remove all CA utility

* Improve proxy_spec test

* Don't crash on server error events

* feedback

* derp


Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2019-09-12 15:30:10 -04:00

43 lines
934 B
CoffeeScript

https = require("https")
Promise = require("bluebird")
{ allowDestroy } = require("@packages/network")
certs = require("./certs")
defaultOnRequest = (req, res) ->
console.log "HTTPS SERVER REQUEST URL:", req.url
console.log "HTTPS SERVER REQUEST HEADERS:", req.headers
res.setHeader("Content-Type", "text/html")
res.writeHead(200)
res.end("<html><head></head><body>https server</body></html>")
servers = []
create = (onRequest) ->
https.createServer(certs, onRequest ? defaultOnRequest)
module.exports = {
create
start: (port, onRequest) ->
new Promise (resolve) ->
srv = create(onRequest)
allowDestroy(srv)
servers.push(srv)
srv.listen port, ->
console.log "server listening on port: #{port}"
resolve(srv)
stop: ->
stop = (srv) ->
new Promise (resolve) ->
srv.destroy(resolve)
Promise.map(servers, stop)
.then ->
servers = []
}