SessionSocketsTests.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /* eslint-disable
  2. no-return-assign,
  3. */
  4. // TODO: This file was created by bulk-decaffeinate.
  5. // Fix any style issues and re-enable lint.
  6. /*
  7. * decaffeinate suggestions:
  8. * DS102: Remove unnecessary code created because of implicit returns
  9. * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  10. */
  11. const RealTimeClient = require('./helpers/RealTimeClient')
  12. const FixturesManager = require('./helpers/FixturesManager')
  13. const Settings = require('@overleaf/settings')
  14. const { expect } = require('chai')
  15. describe('SessionSockets', function () {
  16. beforeEach(function (done) {
  17. FixturesManager.setUpProject(
  18. {
  19. privilegeLevel: 'owner',
  20. },
  21. (err, options) => {
  22. if (err) return done(err)
  23. this.checkSocket = function (fn) {
  24. RealTimeClient.connect(options.project_id, fn)
  25. }
  26. done()
  27. }
  28. )
  29. })
  30. describe('without cookies', function () {
  31. beforeEach(function () {
  32. return (RealTimeClient.cookie = null)
  33. })
  34. return it('should return a lookup error', function (done) {
  35. return this.checkSocket(error => {
  36. expect(error).to.exist
  37. expect(error.message).to.equal('invalid session')
  38. return done()
  39. })
  40. })
  41. })
  42. describe('with a different cookie', function () {
  43. beforeEach(function () {
  44. return (RealTimeClient.cookie = 'some.key=someValue')
  45. })
  46. return it('should return a lookup error', function (done) {
  47. return this.checkSocket(error => {
  48. expect(error).to.exist
  49. expect(error.message).to.equal('invalid session')
  50. return done()
  51. })
  52. })
  53. })
  54. describe('with an invalid cookie', function () {
  55. beforeEach(function (done) {
  56. RealTimeClient.setSession({}, error => {
  57. if (error) {
  58. return done(error)
  59. }
  60. RealTimeClient.cookie = `${
  61. Settings.cookieName
  62. }=${RealTimeClient.cookie.slice(17, 49)}`
  63. return done()
  64. })
  65. return null
  66. })
  67. return it('should return a lookup error', function (done) {
  68. return this.checkSocket(error => {
  69. expect(error).to.exist
  70. expect(error.message).to.equal('invalid session')
  71. return done()
  72. })
  73. })
  74. })
  75. describe('with a valid cookie and no matching session', function () {
  76. beforeEach(function () {
  77. return (RealTimeClient.cookie = `${Settings.cookieName}=unknownId`)
  78. })
  79. return it('should return a lookup error', function (done) {
  80. return this.checkSocket(error => {
  81. expect(error).to.exist
  82. expect(error.message).to.equal('invalid session')
  83. return done()
  84. })
  85. })
  86. })
  87. return describe('with a valid cookie and a matching session', function () {
  88. return it('should not return an error', function (done) {
  89. return this.checkSocket(error => {
  90. expect(error).to.not.exist
  91. return done()
  92. })
  93. })
  94. })
  95. })