GettingDocsTests.coffee 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. DocstoreClient.createProject @project_id, (error) =>
  12. throw error if error?
  13. DocstoreClient.createDoc @project_id, @doc_id, @lines, (error) =>
  14. throw error if error?
  15. done()
  16. afterEach (done) ->
  17. DocstoreClient.deleteProject @project_id, done
  18. describe "when the doc exists", ->
  19. it "should get the doc lines and version", (done) ->
  20. DocstoreClient.getDoc @project_id, @doc_id, {}, (error, res, doc) =>
  21. doc.lines.should.deep.equal @lines
  22. done()
  23. describe "when the doc does not exist", ->
  24. it "should return a 404", (done) ->
  25. missing_doc_id = ObjectId()
  26. DocstoreClient.getDoc @project_id, missing_doc_id, {}, (error, res, doc) ->
  27. res.statusCode.should.equal 404
  28. done()
  29. describe "when the doc is a deleted doc", ->
  30. beforeEach (done) ->
  31. @deleted_doc_id = ObjectId()
  32. DocstoreClient.createDeletedDoc @project_id, @deleted_doc_id, @lines, done
  33. it "should return the doc", (done) ->
  34. DocstoreClient.getDoc @project_id, @deleted_doc_id, {include_deleted:true},(error, res, doc) =>
  35. doc.lines.should.deep.equal @lines
  36. doc.deleted.should.equal true
  37. done()
  38. it "should return a 404 when the query string is not set", (done)->
  39. DocstoreClient.getDoc @project_id, @deleted_doc_id, {},(error, res, doc) =>
  40. res.statusCode.should.equal 404
  41. done()