GettingDocsTests.coffee 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. sinon = require "sinon"
  2. chai = require("chai")
  3. chai.should()
  4. {ObjectId} = require "mongojs"
  5. DocstoreClient = require "./helpers/DocstoreClient"
  6. describe "Getting a doc", ->
  7. beforeEach (done) ->
  8. @project_id = ObjectId()
  9. @doc_id = ObjectId()
  10. @lines = ["original", "lines"]
  11. @version = 42
  12. @ranges = {
  13. changes: [{
  14. id: ObjectId().toString()
  15. op: { i: "foo", p: 3 }
  16. meta:
  17. user_id: ObjectId().toString()
  18. ts: new Date().toString()
  19. }]
  20. }
  21. DocstoreClient.createDoc @project_id, @doc_id, @lines, @version, @ranges, (error) =>
  22. throw error if error?
  23. done()
  24. describe "when the doc exists", ->
  25. it "should get the doc lines and version", (done) ->
  26. DocstoreClient.getDoc @project_id, @doc_id, {}, (error, res, doc) =>
  27. doc.lines.should.deep.equal @lines
  28. doc.version.should.equal @version
  29. doc.ranges.should.deep.equal @ranges
  30. done()
  31. describe "when the doc does not exist", ->
  32. it "should return a 404", (done) ->
  33. missing_doc_id = ObjectId()
  34. DocstoreClient.getDoc @project_id, missing_doc_id, {}, (error, res, doc) ->
  35. res.statusCode.should.equal 404
  36. done()
  37. describe "when the doc is a deleted doc", ->
  38. beforeEach (done) ->
  39. @deleted_doc_id = ObjectId()
  40. DocstoreClient.createDoc @project_id, @deleted_doc_id, @lines, @version, @ranges, (error) =>
  41. throw error if error?
  42. DocstoreClient.deleteDoc @project_id, @deleted_doc_id, done
  43. it "should return the doc", (done) ->
  44. DocstoreClient.getDoc @project_id, @deleted_doc_id, {include_deleted:true},(error, res, doc) =>
  45. doc.lines.should.deep.equal @lines
  46. doc.version.should.equal @version
  47. doc.ranges.should.deep.equal @ranges
  48. doc.deleted.should.equal true
  49. done()
  50. it "should return a 404 when the query string is not set", (done)->
  51. DocstoreClient.getDoc @project_id, @deleted_doc_id, {},(error, res, doc) =>
  52. res.statusCode.should.equal 404
  53. done()