overleaf/services/docstore/test/acceptance/js/GettingAllDocsTests.js

115 lines
3 KiB
JavaScript
Raw Normal View History

/* eslint-disable
handle-callback-err,
no-unused-vars,
*/
// TODO: This file was created by bulk-decaffeinate.
// Fix any style issues and re-enable lint.
/*
* decaffeinate suggestions:
* DS101: Remove unnecessary use of Array.from
* DS102: Remove unnecessary code created because of implicit returns
* DS207: Consider shorter variations of null checks
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
const sinon = require('sinon')
const chai = require('chai')
chai.should()
const { ObjectId } = require('mongojs')
const async = require('async')
const DocstoreApp = require('./helpers/DocstoreApp')
2014-04-30 08:06:12 -04:00
const DocstoreClient = require('./helpers/DocstoreClient')
2014-04-30 08:06:12 -04:00
describe('Getting all docs', function() {
beforeEach(function(done) {
this.project_id = ObjectId()
this.docs = [
{
_id: ObjectId(),
lines: ['one', 'two', 'three'],
ranges: { mock: 'one' },
rev: 2
},
{
_id: ObjectId(),
lines: ['aaa', 'bbb', 'ccc'],
ranges: { mock: 'two' },
rev: 4
},
{
_id: ObjectId(),
lines: ['111', '222', '333'],
ranges: { mock: 'three' },
rev: 6
}
]
this.deleted_doc = {
_id: ObjectId(),
lines: ['deleted'],
ranges: { mock: 'four' },
rev: 8
}
const version = 42
const jobs = Array.from(this.docs).map(doc =>
(doc => {
return callback => {
return DocstoreClient.createDoc(
this.project_id,
doc._id,
doc.lines,
version,
doc.ranges,
callback
)
}
})(doc)
)
jobs.push(cb => {
return DocstoreClient.createDoc(
this.project_id,
this.deleted_doc._id,
this.deleted_doc.lines,
version,
this.deleted_doc.ranges,
err => {
return DocstoreClient.deleteDoc(
this.project_id,
this.deleted_doc._id,
cb
)
}
)
})
jobs.unshift(cb => DocstoreApp.ensureRunning(cb))
return async.series(jobs, done)
})
it('getAllDocs should return all the (non-deleted) docs', function(done) {
return DocstoreClient.getAllDocs(this.project_id, (error, res, docs) => {
if (error != null) {
throw error
}
docs.length.should.equal(this.docs.length)
for (let i = 0; i < docs.length; i++) {
const doc = docs[i]
doc.lines.should.deep.equal(this.docs[i].lines)
}
return done()
})
})
return it('getAllRanges should return all the (non-deleted) doc ranges', function(done) {
return DocstoreClient.getAllRanges(this.project_id, (error, res, docs) => {
if (error != null) {
throw error
}
docs.length.should.equal(this.docs.length)
for (let i = 0; i < docs.length; i++) {
const doc = docs[i]
doc.ranges.should.deep.equal(this.docs[i].ranges)
}
return done()
})
})
})