|
|
@@ -1,60 +0,0 @@
|
|
|
-sinon = require('sinon')
|
|
|
-chai = require('chai')
|
|
|
-should = chai.should()
|
|
|
-expect = chai.expect
|
|
|
-modulePath = '../../../../app/js/infrastructure/ProxyManager'
|
|
|
-SandboxedModule = require('sandboxed-module')
|
|
|
-MockRequest = require "../helpers/MockRequest"
|
|
|
-MockResponse = require "../helpers/MockResponse"
|
|
|
-
|
|
|
-describe "ProxyManager", ->
|
|
|
- before ->
|
|
|
- @settings = proxyUrls: {}
|
|
|
- @httpProxy = sinon.stub()
|
|
|
- @proxyManager = SandboxedModule.require modulePath, requires:
|
|
|
- 'settings-sharelatex': @settings
|
|
|
- 'logger-sharelatex':
|
|
|
- error: ->
|
|
|
- log: -> console.log(arguments)
|
|
|
- 'httpProxy': @httpProxy
|
|
|
-
|
|
|
- describe 'apply', ->
|
|
|
- before ->
|
|
|
- @sandbox = sinon.sandbox.create()
|
|
|
- @app = use: sinon.stub()
|
|
|
- @sandbox.stub(@proxyManager, 'makeTargetUrl')
|
|
|
-
|
|
|
- after ->
|
|
|
- @sandbox.restore()
|
|
|
-
|
|
|
- beforeEach ->
|
|
|
- @app.use.reset()
|
|
|
- @requestUrl = '/foo/bar'
|
|
|
- @settings.proxyUrls[@requestUrl] = 'http://whatever'
|
|
|
-
|
|
|
- it 'sets routes', ->
|
|
|
- @proxyManager.makeTargetUrl.returns('http://whatever')
|
|
|
- @proxyManager.apply(@app)
|
|
|
- @app.use.calledWith(@requestUrl).should.equal true
|
|
|
-
|
|
|
- it 'logs errors', ->
|
|
|
- @proxyManager.makeTargetUrl.returns(null)
|
|
|
- @proxyManager.apply(@app)
|
|
|
- @app.use.called.should.equal false
|
|
|
-
|
|
|
- describe 'makeTargetUrl', ->
|
|
|
- it 'returns Strings', ->
|
|
|
- target = 'http://whatever'
|
|
|
- @proxyManager.makeTargetUrl(target).should.equal target
|
|
|
-
|
|
|
- it 'makes with path', ->
|
|
|
- target = path: 'baz'
|
|
|
- @proxyManager.makeTargetUrl(target).should.equal 'baz'
|
|
|
-
|
|
|
- it 'makes with baseUrl', ->
|
|
|
- target = baseUrl: 'foo.bar'
|
|
|
- @proxyManager.makeTargetUrl(target).should.equal 'foo.bar'
|
|
|
-
|
|
|
- it 'makes with baseUrl and path', ->
|
|
|
- target = path: 'baz', baseUrl: 'foo.bar/'
|
|
|
- @proxyManager.makeTargetUrl(target).should.equal 'foo.bar/baz'
|