mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
90 lines
No EOL
3 KiB
JavaScript
90 lines
No EOL
3 KiB
JavaScript
/* eslint-disable
|
|
camelcase,
|
|
handle-callback-err,
|
|
no-unused-vars,
|
|
*/
|
|
// TODO: This file was created by bulk-decaffeinate.
|
|
// Fix any style issues and re-enable lint.
|
|
/*
|
|
* decaffeinate suggestions:
|
|
* 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 DocstoreApp = require("./helpers/DocstoreApp");
|
|
|
|
const DocstoreClient = require("./helpers/DocstoreClient");
|
|
|
|
describe("Getting a doc", function() {
|
|
beforeEach(function(done) {
|
|
this.project_id = ObjectId();
|
|
this.doc_id = ObjectId();
|
|
this.lines = ["original", "lines"];
|
|
this.version = 42;
|
|
this.ranges = {
|
|
changes: [{
|
|
id: ObjectId().toString(),
|
|
op: { i: "foo", p: 3 },
|
|
meta: {
|
|
user_id: ObjectId().toString(),
|
|
ts: new Date().toString()
|
|
}
|
|
}]
|
|
};
|
|
return DocstoreApp.ensureRunning(() => {
|
|
return DocstoreClient.createDoc(this.project_id, this.doc_id, this.lines, this.version, this.ranges, error => {
|
|
if (error != null) { throw error; }
|
|
return done();
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("when the doc exists", function() { return it("should get the doc lines and version", function(done) {
|
|
return DocstoreClient.getDoc(this.project_id, this.doc_id, {}, (error, res, doc) => {
|
|
doc.lines.should.deep.equal(this.lines);
|
|
doc.version.should.equal(this.version);
|
|
doc.ranges.should.deep.equal(this.ranges);
|
|
return done();
|
|
});
|
|
}); });
|
|
|
|
describe("when the doc does not exist", function() { return it("should return a 404", function(done) {
|
|
const missing_doc_id = ObjectId();
|
|
return DocstoreClient.getDoc(this.project_id, missing_doc_id, {}, (error, res, doc) => {
|
|
res.statusCode.should.equal(404);
|
|
return done();
|
|
});
|
|
}); });
|
|
|
|
return describe("when the doc is a deleted doc", function() {
|
|
beforeEach(function(done) {
|
|
this.deleted_doc_id = ObjectId();
|
|
return DocstoreClient.createDoc(this.project_id, this.deleted_doc_id, this.lines, this.version, this.ranges, error => {
|
|
if (error != null) { throw error; }
|
|
return DocstoreClient.deleteDoc(this.project_id, this.deleted_doc_id, done);
|
|
});
|
|
});
|
|
|
|
it("should return the doc", function(done) {
|
|
return DocstoreClient.getDoc(this.project_id, this.deleted_doc_id, {include_deleted:true},(error, res, doc) => {
|
|
doc.lines.should.deep.equal(this.lines);
|
|
doc.version.should.equal(this.version);
|
|
doc.ranges.should.deep.equal(this.ranges);
|
|
doc.deleted.should.equal(true);
|
|
return done();
|
|
});
|
|
});
|
|
|
|
return it("should return a 404 when the query string is not set", function(done){
|
|
return DocstoreClient.getDoc(this.project_id, this.deleted_doc_id, {},(error, res, doc) => {
|
|
res.statusCode.should.equal(404);
|
|
return done();
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|