Files
cypress/packages/https-proxy/test/unit/server_spec.coffee
2017-08-15 15:25:13 -04:00

53 lines
1.4 KiB
CoffeeScript

require("../spec_helper")
Promise = require("bluebird")
proxy = require("../helpers/proxy")
Server = require("../../lib/server")
describe "lib/server", ->
beforeEach ->
@setup = (options = {}) =>
@ca = {}
@port = 12345
Server.create(@ca, @port, options)
context "#listen", ->
it "calls options.onUpgrade with req, socket head", ->
onUpgrade = @sandbox.stub()
@setup({onUpgrade: onUpgrade})
.then (srv) ->
srv._sniServer.emit("upgrade", 1, 2, 3)
expect(onUpgrade).to.be.calledWith(1,2,3)
it "calls options.onRequest with req, res", ->
onRequest = @sandbox.stub()
req = {url: "https://www.foobar.com", headers: {host: "www.foobar.com"}}
res = {}
@setup({onRequest: onRequest})
.then (srv) ->
srv._sniServer.emit("request", req, res)
expect(onRequest).to.be.calledWith(req, res)
it "calls options.onError with err and port", (done) ->
onError = @sandbox.stub()
socket = {}
head = {}
@setup({onError: onError})
.then (srv) ->
conn = srv._makeDirectConnection({url: "localhost:8444"}, socket, head)
conn.once "error", ->
err = onError.getCall(0).args[0]
expect(err.message).to.eq("connect ECONNREFUSED 127.0.0.1:8444")
expect(onError).to.be.calledWithMatch(err, socket, head, 8444)
done()
return