GettingAllDocsTests.coffee 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. sinon = require "sinon"
  2. chai = require("chai")
  3. chai.should()
  4. {ObjectId} = require "mongojs"
  5. async = require "async"
  6. DocstoreClient = require "./helpers/DocstoreClient"
  7. describe "Getting all docs", ->
  8. beforeEach (done) ->
  9. @project_id = ObjectId()
  10. @docs = [{
  11. _id: ObjectId()
  12. lines: ["one", "two", "three"]
  13. ranges: {"mock": "one"}
  14. rev: 2
  15. }, {
  16. _id: ObjectId()
  17. lines: ["aaa", "bbb", "ccc"]
  18. ranges: {"mock": "two"}
  19. rev: 4
  20. }, {
  21. _id: ObjectId()
  22. lines: ["111", "222", "333"]
  23. ranges: {"mock": "three"}
  24. rev: 6
  25. }]
  26. @deleted_doc = {
  27. _id: ObjectId()
  28. lines: ["deleted"]
  29. ranges: {"mock": "four"}
  30. rev: 8
  31. }
  32. version = 42
  33. jobs = for doc in @docs
  34. do (doc) =>
  35. (callback) =>
  36. DocstoreClient.createDoc @project_id, doc._id, doc.lines, version, doc.ranges, callback
  37. jobs.push (cb) =>
  38. DocstoreClient.createDoc @project_id, @deleted_doc._id, @deleted_doc.lines, version, @deleted_doc.ranges, (err)=>
  39. DocstoreClient.deleteDoc @project_id, @deleted_doc._id, cb
  40. async.series jobs, done
  41. it "getAllDocs should return all the (non-deleted) docs", (done) ->
  42. DocstoreClient.getAllDocs @project_id, (error, res, docs) =>
  43. throw error if error?
  44. docs.length.should.equal @docs.length
  45. for doc, i in docs
  46. doc.lines.should.deep.equal @docs[i].lines
  47. done()
  48. it "getAllRanges should return all the (non-deleted) doc ranges", (done) ->
  49. DocstoreClient.getAllRanges @project_id, (error, res, docs) =>
  50. throw error if error?
  51. docs.length.should.equal @docs.length
  52. for doc, i in docs
  53. doc.ranges.should.deep.equal @docs[i].ranges
  54. done()