overleaf/services/web/test/acceptance/src/helpers/DeletedSubscription.js

50 lines
1.5 KiB
JavaScript
Raw Normal View History

const { expect } = require('chai')
const MockSubscription = require('./Subscription')
const SubscriptionUpdater = require('../../../../app/src/Features/Subscription/SubscriptionUpdater')
const SubscriptionModel = require('../../../../app/src/models/Subscription')
.Subscription
const DeletedSubscriptionModel = require(`../../../../app/src/models/DeletedSubscription`)
.DeletedSubscription
class DeletedSubscription {
constructor(options = {}) {
this.subscription = new MockSubscription(options)
}
ensureExists(callback) {
this.subscription.ensureExists(error => {
if (error) {
return callback(error)
}
SubscriptionUpdater.deleteSubscription(this.subscription, {}, callback)
})
}
expectRestored(callback) {
DeletedSubscriptionModel.findOne(
{ 'subscription._id': this.subscription._id },
(error, deletedSubscription) => {
if (error) {
return callback(error)
}
expect(deletedSubscription).to.be.null
SubscriptionModel.findById(
this.subscription._id,
(error, subscription) => {
expect(subscription).to.exist
expect(subscription._id.toString()).to.equal(
this.subscription._id.toString()
)
expect(subscription.admin_id.toString()).to.equal(
this.subscription.admin_id.toString()
)
callback(error)
}
)
}
)
}
}
module.exports = DeletedSubscription