mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-03 23:00:14 -05:00
70 lines
1.8 KiB
JavaScript
70 lines
1.8 KiB
JavaScript
|
const should = require('should');
|
||
|
const sinon = require('sinon');
|
||
|
const labs = require('../../../core/shared/labs');
|
||
|
|
||
|
const {agentProvider, fixtureManager} = require('../../utils/e2e-framework');
|
||
|
|
||
|
describe('Tiers API', function () {
|
||
|
let agent;
|
||
|
|
||
|
before(async function () {
|
||
|
agent = await agentProvider.getAdminAPIAgent();
|
||
|
await fixtureManager.init('members');
|
||
|
await agent.loginAsOwner();
|
||
|
});
|
||
|
|
||
|
beforeEach(function () {
|
||
|
sinon.stub(labs, 'isSet').withArgs('multipleProducts').returns(false);
|
||
|
const stripeService = require('../../../core/server/services/stripe');
|
||
|
stripeService.api._configured = true;
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
sinon.restore();
|
||
|
const stripeService = require('../../../core/server/services/stripe');
|
||
|
stripeService.api._configured = false;
|
||
|
});
|
||
|
|
||
|
it('Errors when price is non-integer', async function () {
|
||
|
const tier = {
|
||
|
name: 'Blah',
|
||
|
monthly_price: {
|
||
|
amount: 99.99
|
||
|
}
|
||
|
};
|
||
|
|
||
|
await agent
|
||
|
.post('/products/')
|
||
|
.body({products: [tier]})
|
||
|
.expectStatus(422);
|
||
|
});
|
||
|
|
||
|
it('Errors when price is negative', async function () {
|
||
|
const tier = {
|
||
|
name: 'Blah',
|
||
|
monthly_price: {
|
||
|
amount: -100
|
||
|
}
|
||
|
};
|
||
|
|
||
|
await agent
|
||
|
.post('/products/')
|
||
|
.body({products: [tier]})
|
||
|
.expectStatus(422);
|
||
|
});
|
||
|
|
||
|
it('Errors when price is too large', async function () {
|
||
|
const tier = {
|
||
|
name: 'Blah',
|
||
|
monthly_price: {
|
||
|
amount: Number.MAX_SAFE_INTEGER
|
||
|
}
|
||
|
};
|
||
|
|
||
|
await agent
|
||
|
.post('/products/')
|
||
|
.body({products: [tier]})
|
||
|
.expectStatus(422);
|
||
|
});
|
||
|
});
|