| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- sinon = require "sinon"
- chai = require("chai")
- chai.should()
- expect = chai.expect
- MockWebApi = require "./helpers/MockWebApi"
- DocUpdaterClient = require "./helpers/DocUpdaterClient"
- DocUpdaterApp = require "./helpers/DocUpdaterApp"
- describe "Getting documents for project", ->
- before (done) ->
- @lines = ["one", "two", "three"]
- @version = 42
- DocUpdaterApp.ensureRunning(done)
- describe "when project state hash does not match", ->
- before (done) ->
- @projectStateHash = DocUpdaterClient.randomId()
- [@project_id, @doc_id] = [DocUpdaterClient.randomId(), DocUpdaterClient.randomId()]
- MockWebApi.insertDoc @project_id, @doc_id, {lines: @lines, version: @version}
- DocUpdaterClient.preloadDoc @project_id, @doc_id, (error) =>
- throw error if error?
- DocUpdaterClient.getProjectDocs @project_id, @projectStateHash, (error, @res, @returnedDocs) =>
- done()
- it "should return a 409 Conflict response", ->
- @res.statusCode.should.equal 409
- describe "when project state hash matches", ->
- before (done) ->
- @projectStateHash = DocUpdaterClient.randomId()
- [@project_id, @doc_id] = [DocUpdaterClient.randomId(), DocUpdaterClient.randomId()]
- MockWebApi.insertDoc @project_id, @doc_id, {lines: @lines, version: @version}
- DocUpdaterClient.preloadDoc @project_id, @doc_id, (error) =>
- throw error if error?
- DocUpdaterClient.getProjectDocs @project_id, @projectStateHash, (error, @res0, @returnedDocs0) =>
- # set the hash
- DocUpdaterClient.getProjectDocs @project_id, @projectStateHash, (error, @res, @returnedDocs) =>
- # the hash should now match
- done()
- it "should return a 200 response", ->
- @res.statusCode.should.equal 200
- it "should return the documents", ->
- @returnedDocs.should.deep.equal [ {_id: @doc_id, lines: @lines, v: @version} ]
- describe "when the doc has been removed", ->
- before (done) ->
- @projectStateHash = DocUpdaterClient.randomId()
- [@project_id, @doc_id] = [DocUpdaterClient.randomId(), DocUpdaterClient.randomId()]
- MockWebApi.insertDoc @project_id, @doc_id, {lines: @lines, version: @version}
- DocUpdaterClient.preloadDoc @project_id, @doc_id, (error) =>
- throw error if error?
- DocUpdaterClient.getProjectDocs @project_id, @projectStateHash, (error, @res0, @returnedDocs0) =>
- # set the hash
- DocUpdaterClient.deleteDoc @project_id, @doc_id, (error, res, body) =>
- # delete the doc
- DocUpdaterClient.getProjectDocs @project_id, @projectStateHash, (error, @res, @returnedDocs) =>
- # the hash would match, but the doc has been deleted
- done()
- it "should return a 409 Conflict response", ->
- @res.statusCode.should.equal 409
|