EditorHttpControllerTests.js 1.5 KB

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