/* * 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", () => 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", () => it("should return a 404", function(done) { const missing_doc_id = ObjectId(); return DocstoreClient.getDoc(this.project_id, missing_doc_id, {}, function(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(); }); }); }); });