| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- sinon = require "sinon"
- chai = require("chai")
- chai.should()
- expect = chai.expect
- mongojs = require "../../../app/js/mongojs"
- db = mongojs.db
- ObjectId = mongojs.ObjectId
- Settings = require "settings-sharelatex"
- TrackChangesApp = require "./helpers/TrackChangesApp"
- TrackChangesClient = require "./helpers/TrackChangesClient"
- MockDocUpdaterApi = require "./helpers/MockDocUpdaterApi"
- MockWebApi = require "./helpers/MockWebApi"
- describe "Restoring a version", ->
- before (done) ->
- sinon.spy MockDocUpdaterApi, "setDoc"
- @now = Date.now()
- @user_id = ObjectId().toString()
- @doc_id = ObjectId().toString()
- @project_id = ObjectId().toString()
- MockWebApi.projects[@project_id] = features: versioning: true
-
- minutes = 60 * 1000
- @updates = [{
- op: [{ i: "one ", p: 0 }]
- meta: { ts: @now - 6 * minutes, user_id: @user_id }
- v: 3
- }, {
- op: [{ i: "two ", p: 4 }]
- meta: { ts: @now - 4 * minutes, user_id: @user_id }
- v: 4
- }, {
- op: [{ i: "three ", p: 8 }]
- meta: { ts: @now - 2 * minutes, user_id: @user_id }
- v: 5
- }, {
- op: [{ i: "four", p: 14 }]
- meta: { ts: @now, user_id: @user_id }
- v: 6
- }]
- @lines = ["one two three four"]
- @restored_lines = ["one two "]
- @beforeVersion = 5
- MockWebApi.users[@user_id] = @user =
- email: "user@sharelatex.com"
- first_name: "Leo"
- last_name: "Lion"
- id: @user_id
- MockDocUpdaterApi.docs[@doc_id] =
- lines: @lines
- version: 7
- TrackChangesApp.ensureRunning =>
- TrackChangesClient.pushRawUpdates @project_id, @doc_id, @updates, (error) =>
- throw error if error?
- TrackChangesClient.restoreDoc @project_id, @doc_id, @beforeVersion, @user_id, (error) =>
- throw error if error?
- done()
- return null
- after () ->
- MockDocUpdaterApi.setDoc.restore()
- return null
- it "should set the doc in the doc updater", ->
- MockDocUpdaterApi.setDoc
- .calledWith(@project_id, @doc_id, @restored_lines, @user_id, true)
- .should.equal true
- return null
|