| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- sinon = require "sinon"
- chai = require("chai")
- chai.should()
- mongojs = require "../../../app/js/mongojs"
- db = mongojs.db
- ObjectId = mongojs.ObjectId
- Settings = require "settings-sharelatex"
- request = require "request"
- describe "Appending doc ops to the history", ->
- describe "when the history does not exist yet", ->
- before (done) ->
- @doc_id = ObjectId().toString()
- @user_id = ObjectId().toString()
- updates = [{
- op: [{ i: "f", p: 3 }]
- meta: { ts: Date.now(), user_id: @user_id }
- }, {
- op: [{ i: "o", p: 4 }]
- meta: { ts: Date.now(), user_id: @user_id }
- }, {
- op: [{ i: "o", p: 5 }]
- meta: { ts: Date.now(), user_id: @user_id }
- }]
- @version = 3
- request.post {
- url: "http://localhost:#{Settings.port}/doc/#{@doc_id}/history"
- json:
- version: @version
- docOps: updates
- }, (@error, @response, @body) =>
- done()
- it "should return a successful response", ->
- @response.statusCode.should.equal 204
- describe "when the history has already been started", ->
- beforeEach (done) ->
- @doc_id = ObjectId().toString()
- @user_id = ObjectId().toString()
- updates = [{
- op: [{ i: "f", p: 3 }]
- meta: { ts: Date.now(), user_id: @user_id }
- }, {
- op: [{ i: "o", p: 4 }]
- meta: { ts: Date.now(), user_id: @user_id }
- }, {
- op: [{ i: "o", p: 5 }]
- meta: { ts: Date.now(), user_id: @user_id }
- }]
- @version = 3
- request.post {
- url: "http://localhost:#{Settings.port}/doc/#{@doc_id}/history"
- json:
- version: @version
- docOps: updates
- }, (@error, @response, @body) =>
- done()
- describe "when the updates are recent and from the same user", ->
- beforeEach (done) ->
- updates = [{
- op: [{ i: "b", p: 6 }]
- meta: { ts: Date.now(), user_id: @user_id }
- }, {
- op: [{ i: "a", p: 7 }]
- meta: { ts: Date.now(), user_id: @user_id }
- }, {
- op: [{ i: "r", p: 8 }]
- meta: { ts: Date.now(), user_id: @user_id }
- }]
- @version = 6
- request.post {
- url: "http://localhost:#{Settings.port}/doc/#{@doc_id}/history"
- json:
- version: @version
- docOps: updates
- }, (@error, @response, @body) =>
- done()
- it "should return a successful response", ->
- @response.statusCode.should.equal 204
- describe "when the updates are far apart", ->
- beforeEach (done) ->
- oneDay = 24 * 60 * 60 * 1000
- updates = [{
- op: [{ i: "b", p: 6 }]
- meta: { ts: Date.now() + oneDay, user_id: @user_id }
- }, {
- op: [{ i: "a", p: 7 }]
- meta: { ts: Date.now() + oneDay, user_id: @user_id }
- }, {
- op: [{ i: "r", p: 8 }]
- meta: { ts: Date.now() + oneDay, user_id: @user_id }
- }]
- @version = 6
- request.post {
- url: "http://localhost:#{Settings.port}/doc/#{@doc_id}/history"
- json:
- version: @version
- docOps: updates
- }, (@error, @response, @body) =>
- done()
- it "should return a successful response", ->
- @response.statusCode.should.equal 204
|