UserFeaturesUpdaterTests.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /* eslint-disable
  2. camelcase,
  3. handle-callback-err,
  4. max-len,
  5. no-return-assign,
  6. no-unused-vars,
  7. */
  8. // TODO: This file was created by bulk-decaffeinate.
  9. // Fix any style issues and re-enable lint.
  10. /*
  11. * decaffeinate suggestions:
  12. * DS102: Remove unnecessary code created because of implicit returns
  13. * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  14. */
  15. const SandboxedModule = require('sandboxed-module')
  16. const should = require('chai').should()
  17. const sinon = require('sinon')
  18. const modulePath =
  19. '../../../../app/src/Features/Subscription/UserFeaturesUpdater'
  20. const { assert } = require('chai')
  21. describe('UserFeaturesUpdater', function() {
  22. beforeEach(function() {
  23. this.User = { update: sinon.stub().callsArgWith(2) }
  24. return (this.UserFeaturesUpdater = SandboxedModule.require(modulePath, {
  25. globals: {
  26. console: console
  27. },
  28. requires: {
  29. '../../models/User': {
  30. User: this.User
  31. },
  32. 'logger-sharelatex': {
  33. log() {}
  34. }
  35. }
  36. }))
  37. })
  38. describe('updateFeatures', function() {
  39. it('should send the users features', function(done) {
  40. const user_id = '5208dd34438842e2db000005'
  41. this.features = { versioning: true, collaborators: 10 }
  42. return this.UserFeaturesUpdater.updateFeatures(
  43. user_id,
  44. this.features,
  45. (err, features) => {
  46. const update = {
  47. 'features.versioning': true,
  48. 'features.collaborators': 10
  49. }
  50. this.User.update
  51. .calledWith({ _id: user_id }, update)
  52. .should.equal(true)
  53. features.should.deep.equal(this.features)
  54. return done()
  55. }
  56. )
  57. })
  58. })
  59. })