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

113 lines
3 KiB
JavaScript
Raw Normal View History

/* eslint-disable
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 { ObjectId } = require('mongodb')
const async = require('async')
const DocstoreApp = require('./helpers/DocstoreApp')
2014-04-30 12:06:12 +00:00
const DocstoreClient = require('./helpers/DocstoreClient')
2014-04-30 12:06:12 +00:00
2020-05-28 13:20:54 +00:00
describe('Getting all docs', function () {
beforeEach(function (done) {
this.project_id = ObjectId()
this.docs = [
{
_id: ObjectId(),
lines: ['one', 'two', 'three'],
ranges: { mock: 'one' },
2021-07-13 11:04:48 +00:00
rev: 2,
},
{
_id: ObjectId(),
lines: ['aaa', 'bbb', 'ccc'],
ranges: { mock: 'two' },
2021-07-13 11:04:48 +00:00
rev: 4,
},
{
_id: ObjectId(),
lines: ['111', '222', '333'],
ranges: { mock: 'three' },
2021-07-13 11:04:48 +00:00
rev: 6,
},
]
this.deleted_doc = {
_id: ObjectId(),
lines: ['deleted'],
ranges: { mock: 'four' },
2021-07-13 11:04:48 +00:00
rev: 8,
}
const version = 42
2021-07-13 11:04:48 +00:00
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)
)
2021-07-13 11:04:48 +00:00
jobs.push(cb => {
return DocstoreClient.createDoc(
this.project_id,
this.deleted_doc._id,
this.deleted_doc.lines,
version,
this.deleted_doc.ranges,
2021-07-13 11:04:48 +00:00
err => {
if (err) return done(err)
return DocstoreClient.deleteDoc(
this.project_id,
this.deleted_doc._id,
cb
)
}
)
})
2021-07-13 11:04:48 +00:00
jobs.unshift(cb => DocstoreApp.ensureRunning(cb))
return async.series(jobs, done)
})
2020-05-28 13:20:54 +00:00
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()
})
})
2020-05-28 13:20:54 +00:00
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()
})
})
})