EditorHttpControllerTests.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. const User = require('./helpers/User')
  2. const { expect } = require('chai')
  3. require('./helpers/MockDocstoreApi')
  4. require('./helpers/MockV1Api')
  5. require('./helpers/MockProjectHistoryApi')
  6. describe('EditorHttpController', function() {
  7. beforeEach('login', function(done) {
  8. this.user = new User()
  9. this.user.login(done)
  10. })
  11. beforeEach('create project', function(done) {
  12. this.projectName = 'wombat'
  13. this.user.createProject(this.projectName, (error, projectId) => {
  14. if (error) return done(error)
  15. this.projectId = projectId
  16. done()
  17. })
  18. })
  19. beforeEach('create doc', function(done) {
  20. this.user.createDocInProject(
  21. this.projectId,
  22. null,
  23. 'potato.tex',
  24. (error, docId) => {
  25. this.docId = docId
  26. done(error)
  27. }
  28. )
  29. })
  30. describe('joinProject', function() {
  31. it('should emit an empty deletedDocs array', function(done) {
  32. this.user.joinProject(this.projectId, (error, details) => {
  33. if (error) return done(error)
  34. expect(details.project.deletedDocs).to.deep.equal([])
  35. done()
  36. })
  37. })
  38. describe('after deleting a doc', function() {
  39. beforeEach(function(done) {
  40. this.user.deleteItemInProject(this.projectId, 'doc', this.docId, done)
  41. })
  42. it('should include the deleted doc in the deletedDocs array', function(done) {
  43. this.user.joinProject(this.projectId, (error, details) => {
  44. if (error) return done(error)
  45. expect(details.project.deletedDocs).to.deep.equal([
  46. { _id: this.docId, name: 'potato.tex' }
  47. ])
  48. done()
  49. })
  50. })
  51. })
  52. })
  53. })