SessionSocketsTests.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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 Settings = require('@overleaf/settings')
  13. const { expect } = require('chai')
  14. describe('SessionSockets', function () {
  15. before(function () {
  16. return (this.checkSocket = function (fn) {
  17. const client = RealTimeClient.connect()
  18. client.on('connectionAccepted', fn)
  19. client.on('connectionRejected', fn)
  20. return null
  21. })
  22. })
  23. describe('without cookies', function () {
  24. before(function () {
  25. return (RealTimeClient.cookie = null)
  26. })
  27. return it('should return a lookup error', function (done) {
  28. return this.checkSocket(error => {
  29. expect(error).to.exist
  30. expect(error.message).to.equal('invalid session')
  31. return done()
  32. })
  33. })
  34. })
  35. describe('with a different cookie', function () {
  36. before(function () {
  37. return (RealTimeClient.cookie = 'some.key=someValue')
  38. })
  39. return it('should return a lookup error', function (done) {
  40. return this.checkSocket(error => {
  41. expect(error).to.exist
  42. expect(error.message).to.equal('invalid session')
  43. return done()
  44. })
  45. })
  46. })
  47. describe('with an invalid cookie', function () {
  48. before(function (done) {
  49. RealTimeClient.setSession({}, error => {
  50. if (error) {
  51. return done(error)
  52. }
  53. RealTimeClient.cookie = `${
  54. Settings.cookieName
  55. }=${RealTimeClient.cookie.slice(17, 49)}`
  56. return done()
  57. })
  58. return null
  59. })
  60. return it('should return a lookup error', function (done) {
  61. return this.checkSocket(error => {
  62. expect(error).to.exist
  63. expect(error.message).to.equal('invalid session')
  64. return done()
  65. })
  66. })
  67. })
  68. describe('with a valid cookie and no matching session', function () {
  69. before(function () {
  70. return (RealTimeClient.cookie = `${Settings.cookieName}=unknownId`)
  71. })
  72. return it('should return a lookup error', function (done) {
  73. return this.checkSocket(error => {
  74. expect(error).to.exist
  75. expect(error.message).to.equal('invalid session')
  76. return done()
  77. })
  78. })
  79. })
  80. return describe('with a valid cookie and a matching session', function () {
  81. before(function (done) {
  82. RealTimeClient.setSession({}, done)
  83. return null
  84. })
  85. return it('should not return an error', function (done) {
  86. return this.checkSocket(error => {
  87. expect(error).to.not.exist
  88. return done()
  89. })
  90. })
  91. })
  92. })