| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- spies = require('chai-spies')
- chai = require('chai').use(spies)
- sinon = require('sinon')
- should = chai.should()
- modulePath = "../../../../app/js/Features/Versioning/VersioningApiController"
- SandboxedModule = require('sandboxed-module')
- MockRequest = require "../helpers/MockRequest"
- MockResponse = require "../helpers/MockResponse"
- describe "VersioningApiController", ->
- beforeEach ->
- @handler = {}
- @controller = SandboxedModule.require modulePath, requires:
- './VersioningApiHandler':@handler
- @req = new MockRequest()
- @res = new MockResponse()
-
- describe "takeSnapshot", ->
- beforeEach ->
- @error = null
- @handler.takeSnapshot = (project_id, message, callback) =>
- callback(@error)
- sinon.spy @handler, "takeSnapshot"
- @req.params = Project_id: "project_id"
-
- describe "successfully", ->
- beforeEach ->
- @error = null
- @req.body = message: "hello world"
- @controller.takeSnapshot(@req, @res)
- it "should call VersioningApiHandler.takeSnapshot", ->
- @handler.takeSnapshot.calledWith(
- "project_id", @req.body.message
- ).should.equal true
- it "should return a successful response", ->
- @res.returned.should.equal true
- @res.success.should.equal true
- @res.body.should.equal "{}"
- describe "without message", ->
- beforeEach ->
- @error = null
- @controller.takeSnapshot(@req, @res)
- it "should use a default message", ->
- @handler.takeSnapshot.calledWith(
- "project_id", "Manual snapshot"
- ).should.equal true
- describe "with errors", ->
- beforeEach ->
- @error = new Error("Oops")
- @next = sinon.stub()
- @controller.takeSnapshot(@req, @res, @next)
- it "should call next() with the error", ->
- @res.returned.should.equal false
- @next.called.should.equal true
- it 'enable versioning in the handler', (done)->
- project_id = "1234"
-
- @handler.enableVersioning = (sentProjectId, callback)->
- sentProjectId.should.equal project_id
- callback null
- @controller.enableVersioning project_id, ->
- done()
- it 'proxys list versions', (done)->
- shouldProxy @controller.listVersions, @handler, done
- it 'proxys get version', (done)->
- shouldProxy @controller.getVersion, @handler, done
- it 'proxys get verion file', (done)->
- shouldProxy @controller.getVersionFile, @handler, done
- shouldProxy = (fun, handler, callback)->
- req = {"stuf":"here"}
- res = {"other":"stuff"}
- handler.proxyToVersioningApi = (proxyReq, proxyRes)->
- proxyReq.should.deep.equal req
- proxyRes.should.deep.equal res
- callback()
- fun req, res
|