GettingAllDocsTests.coffee 1.7 KB

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