DeletedSubscription.mjs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { expect } from 'chai'
  2. import MockSubscription from './Subscription.js'
  3. import SubscriptionUpdater from '../../../../app/src/Features/Subscription/SubscriptionUpdater.js'
  4. import { Subscription as SubscriptionModel } from '../../../../app/src/models/Subscription.js'
  5. import { DeletedSubscription as DeletedSubscriptionModel } from '../../../../app/src/models/DeletedSubscription.js'
  6. class DeletedSubscription {
  7. constructor(options = {}) {
  8. this.subscription = new MockSubscription(options)
  9. }
  10. ensureExists(callback) {
  11. this.subscription.ensureExists(error => {
  12. if (error) {
  13. return callback(error)
  14. }
  15. SubscriptionUpdater.deleteSubscription(this.subscription, {}, callback)
  16. })
  17. }
  18. expectRestored(callback) {
  19. DeletedSubscriptionModel.findOne({
  20. 'subscription._id': this.subscription._id,
  21. })
  22. .then(deletedSubscription => {
  23. expect(deletedSubscription).to.be.null
  24. SubscriptionModel.findById(this.subscription._id)
  25. .then(subscription => {
  26. expect(subscription).to.exist
  27. expect(subscription._id.toString()).to.equal(
  28. this.subscription._id.toString()
  29. )
  30. expect(subscription.admin_id.toString()).to.equal(
  31. this.subscription.admin_id.toString()
  32. )
  33. callback()
  34. })
  35. .catch(callback)
  36. })
  37. .catch(callback)
  38. }
  39. }
  40. export default DeletedSubscription