mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
added acceptance tests
This commit is contained in:
parent
f6be68eb08
commit
5971a19084
2 changed files with 74 additions and 0 deletions
|
@ -0,0 +1,68 @@
|
|||
sinon = require "sinon"
|
||||
chai = require("chai")
|
||||
chai.should()
|
||||
expect = chai.expect
|
||||
|
||||
MockWebApi = require "./helpers/MockWebApi"
|
||||
DocUpdaterClient = require "./helpers/DocUpdaterClient"
|
||||
|
||||
describe "Getting documents for project", ->
|
||||
before (done) ->
|
||||
@lines = ["one", "two", "three"]
|
||||
@version = 42
|
||||
setTimeout done, 200 # Give MockWebApi a chance to start
|
||||
|
||||
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
|
|
@ -80,3 +80,9 @@ module.exports = DocUpdaterClient =
|
|||
|
||||
removeComment: (project_id, doc_id, comment, callback = () ->) ->
|
||||
request.del "http://localhost:3003/project/#{project_id}/doc/#{doc_id}/comment/#{comment}", callback
|
||||
|
||||
getProjectDocs: (project_id, projectStateHash, callback = () ->) ->
|
||||
request.get "http://localhost:3003/project/#{project_id}/doc?state=#{projectStateHash}", (error, res, body) ->
|
||||
if body? and res.statusCode >= 200 and res.statusCode < 300
|
||||
body = JSON.parse(body)
|
||||
callback error, res, body
|
||||
|
|
Loading…
Reference in a new issue