0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-01-06 22:40:14 -05:00
ghost/test/regression/models/model_stripe_customer_subscription_spec.js

52 lines
2 KiB
JavaScript
Raw Normal View History

const should = require('should');
const {Member} = require('../../../core/server/models/member');
const {MemberStripeCustomer} = require('../../../core/server/models/member-stripe-customer');
const {StripeCustomerSubscription} = require('../../../core/server/models/stripe-customer-subscription');
const testUtils = require('../../utils');
describe('StripeCustomerSubscription Model', function run() {
before(testUtils.teardownDb);
beforeEach(testUtils.setup('roles'));
afterEach(testUtils.teardownDb);
describe('customer', function () {
it('Is correctly mapped to the stripe customer', async function () {
const context = testUtils.context.admin;
const member = await Member.add({
email: 'test@test.member'
}, context);
await MemberStripeCustomer.add({
member_id: member.get('id'),
customer_id: 'fake_customer_id'
}, context);
await StripeCustomerSubscription.add({
customer_id: 'fake_customer_id',
subscription_id: 'fake_subscription_id',
plan_id: 'fake_plan_id',
plan_amount: 1337,
plan_nickname: 'e-LEET',
plan_interval: 'year',
plan_currency: 'btc',
status: 'active',
start_date: new Date(),
current_period_end: new Date(),
cancel_at_period_end: false
}, context);
const subscription = await StripeCustomerSubscription.findOne({
subscription_id: 'fake_subscription_id'
}, Object.assign({}, context, {
withRelated: ['customer']
}));
const customer = subscription.related('customer');
should.exist(customer, 'StripeCustomerSubscription should have been fetched with customer');
should.equal(customer.get('customer_id'), 'fake_customer_id');
});
});
});