GettingDocsTests.coffee 1.9 KB

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