0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-10 23:36:14 -05:00

Handled default product to use first paid product

Since we now have 2 products by default for all ghost sites, free and default paid, the usage of default product which so far was using first product needs to be updated to use the first paid product.

- updates default product usage to use first paid tier
- updates tests
This commit is contained in:
Rishabh 2022-01-13 14:08:51 +05:30 committed by Rishabh Garg
parent 345eb5828c
commit 62777d7f26
8 changed files with 45 additions and 17 deletions

View file

@ -28,7 +28,9 @@ function calculateLegacyPriceData(products) {
};
}
const defaultProduct = products[0] || {};
const defaultProduct = products.find((product) => {
return product.type === 'paid';
}) || {};
const monthlyPrice = makePriceObject(defaultProduct.monthly_price || defaultPrice);

View file

@ -113,7 +113,9 @@ const getPortalProductPrices = async function () {
prices: productPrices
};
});
const defaultProduct = products[0];
const defaultProduct = products.find((product) => {
return product.type === 'paid';
});
const defaultPrices = defaultProduct ? defaultProduct.prices : [];
let portalProducts = defaultProduct ? [defaultProduct] : [];
if (labsService.isSet('multipleProducts')) {

View file

@ -24,7 +24,8 @@ describe('MemberStripeCustomer Model', function run() {
const product = await Product.add({
name: 'Ghost Product',
slug: 'ghost-product'
slug: 'ghost-product',
type: 'paid'
}, context);
await StripeProduct.add({
@ -126,7 +127,8 @@ describe('MemberStripeCustomer Model', function run() {
const product = await Product.add({
name: 'Ghost Product',
slug: 'ghost-product'
slug: 'ghost-product',
type: 'paid'
}, context);
await StripeProduct.add({

View file

@ -30,7 +30,8 @@ describe('Member Model', function run() {
const product = await Product.add({
name: 'Ghost Product',
slug: 'ghost-product'
slug: 'ghost-product',
type: 'paid'
}, context);
await StripeProduct.add({
@ -188,7 +189,8 @@ describe('Member Model', function run() {
const product = await Product.add({
name: 'Ghost Product',
slug: 'ghost-product'
slug: 'ghost-product',
type: 'paid'
}, context);
await StripeProduct.add({
@ -271,14 +273,16 @@ describe('Member Model', function run() {
it('Products can be created & added to members by the product array', async function () {
const context = testUtils.context.admin;
const product = await Product.add({
name: 'Product-Add-Test'
name: 'Product-Add-Test',
type: 'paid'
});
const member = await Member.add({
email: 'testing-products@test.member',
products: [{
id: product.id
}, {
name: 'Product-Create-Test'
name: 'Product-Create-Test',
type: 'paid'
}]
}, {
...context,
@ -311,7 +315,8 @@ describe('Member Model', function run() {
email: 'filter-test@test.member',
products: [{
name: 'VIP',
slug: 'vip'
slug: 'vip',
type: 'paid'
}]
}, context);
@ -355,7 +360,8 @@ describe('Member Model', function run() {
email: 'name-filter-test@test.member',
products: [{
name: 'VIP',
slug: 'vip'
slug: 'vip',
type: 'paid'
}]
}, context);
@ -378,7 +384,8 @@ describe('Member Model', function run() {
email: 'email-filter-test@test.member',
products: [{
name: 'VIP',
slug: 'vip'
slug: 'vip',
type: 'paid'
}]
}, context);
@ -404,7 +411,8 @@ describe('Member Model', function run() {
const product = await Product.add({
name: 'Ghost Product',
slug: 'ghost-product'
slug: 'ghost-product',
type: 'paid'
}, context);
await StripeProduct.add({

View file

@ -26,7 +26,8 @@ describe('StripeCustomerSubscription Model', function run() {
const product = await Product.add({
name: 'Ghost Product',
slug: 'ghost-product'
slug: 'ghost-product',
type: 'paid'
}, context);
await StripeProduct.add({

View file

@ -35,8 +35,8 @@ const validateRouteSettings = require('../../../../../core/server/services/route
*/
describe('DB version integrity', function () {
// Only these variables should need updating
const currentSchemaHash = 'e649797a5de92d417744f6f2623c79cf';
const currentFixturesHash = '07d4b0c4cf159b34344a6b5e88c74e9f';
const currentSchemaHash = '56769494697fb27c189c63e3e8a228e9';
const currentFixturesHash = 'e1d5e5d493aa1b01498505e75ce73e56';
const currentSettingsHash = 'd73b63e33153c9256bca42ebfd376779';
const currentRoutesHash = '3d180d52c663d173a6be791ef411ed01';

View file

@ -366,10 +366,17 @@ DataGenerator.Content = {
],
products: [
{
id: ObjectId().toHexString(),
name: 'Free',
slug: 'free',
type: 'free'
},
{
id: ObjectId().toHexString(),
name: 'Ghost Product',
slug: 'ghost-product'
slug: 'ghost-product',
type: 'paid'
}
],

View file

@ -5,7 +5,13 @@
"entries": [
{
"name": "Default Product",
"slug": "default-product"
"slug": "default-product",
"type": "paid"
},
{
"name": "Free",
"slug": "free",
"type": "free"
}
]
},