RestoringFilesTest.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. /* eslint-disable
  2. camelcase,
  3. max-len,
  4. no-unused-vars,
  5. */
  6. // TODO: This file was created by bulk-decaffeinate.
  7. // Fix any style issues and re-enable lint.
  8. /*
  9. * decaffeinate suggestions:
  10. * DS102: Remove unnecessary code created because of implicit returns
  11. * DS207: Consider shorter variations of null checks
  12. * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  13. */
  14. const { expect } = require('chai')
  15. const _ = require('underscore')
  16. const User = require('./helpers/User')
  17. const MockDocstoreApiClass = require('./mocks/MockDocstoreApi')
  18. const MockFilestoreApiClass = require('./mocks/MockFilestoreApi')
  19. let MockDocstoreApi, MockFilestoreApi
  20. before(function () {
  21. MockDocstoreApi = MockDocstoreApiClass.instance()
  22. MockFilestoreApi = MockFilestoreApiClass.instance()
  23. })
  24. describe('RestoringFiles', function () {
  25. beforeEach(function (done) {
  26. this.owner = new User()
  27. return this.owner.login(error => {
  28. if (error != null) {
  29. throw error
  30. }
  31. return this.owner.createProject(
  32. 'example-project',
  33. { template: 'example' },
  34. (error, project_id) => {
  35. this.project_id = project_id
  36. if (error != null) {
  37. throw error
  38. }
  39. return done()
  40. }
  41. )
  42. })
  43. })
  44. describe('restoring a deleted doc', function () {
  45. beforeEach(function (done) {
  46. return this.owner.getProject(this.project_id, (error, project) => {
  47. if (error != null) {
  48. throw error
  49. }
  50. this.doc = _.find(
  51. project.rootFolder[0].docs,
  52. doc => doc.name === 'main.tex'
  53. )
  54. return this.owner.request(
  55. {
  56. method: 'DELETE',
  57. url: `/project/${this.project_id}/doc/${this.doc._id}`,
  58. },
  59. (error, response, body) => {
  60. if (error != null) {
  61. throw error
  62. }
  63. expect(response.statusCode).to.equal(204)
  64. return this.owner.request(
  65. {
  66. method: 'POST',
  67. url: `/project/${this.project_id}/doc/${this.doc._id}/restore`,
  68. json: {
  69. name: 'main.tex',
  70. },
  71. },
  72. (error, response, body) => {
  73. if (error != null) {
  74. throw error
  75. }
  76. expect(response.statusCode).to.equal(200)
  77. expect(body.doc_id).to.exist
  78. this.restored_doc_id = body.doc_id
  79. return done()
  80. }
  81. )
  82. }
  83. )
  84. })
  85. })
  86. it('should have restored the doc', function (done) {
  87. return this.owner.getProject(this.project_id, (error, project) => {
  88. if (error != null) {
  89. throw error
  90. }
  91. const restored_doc = _.find(
  92. project.rootFolder[0].docs,
  93. doc => doc.name === 'main.tex'
  94. )
  95. expect(restored_doc._id.toString()).to.equal(this.restored_doc_id)
  96. expect(this.doc._id).to.not.equal(this.restored_doc_id)
  97. expect(
  98. MockDocstoreApi.docs[this.project_id][this.restored_doc_id].lines
  99. ).to.deep.equal(
  100. MockDocstoreApi.docs[this.project_id][this.doc._id].lines
  101. )
  102. return done()
  103. })
  104. })
  105. })
  106. })