mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-03 23:00:14 -05:00
90e7887007
refs https://github.com/TryGhost/Team/issues/1469 Currently, all new members get auto subscribed to the default newsletter. This change adds same behavior with multiple newsletters by auto subscribing all available newsletters on site for new members(If flag is enabled). Note: In future, this will also take into consideration the `subscribe_on_signup` flag for a newsletter to filter which newsletters should a member be auto-subscribed. - adds newsletters service for working with newsletter data - bumps `@tryghost/members-api` package which handles default subscription - adds new test fixture/data for newsletters
106 lines
4 KiB
JavaScript
106 lines
4 KiB
JavaScript
const sinon = require('sinon');
|
|
const should = require('should');
|
|
const {formattedMemberResponse} = require('../../../../../core/server/services/members/utils');
|
|
const labs = require('../../../../../core/shared/labs');
|
|
|
|
describe('Members Service - utils', function () {
|
|
describe('formattedMemberResponse', function () {
|
|
let labsStub;
|
|
beforeEach(function () {
|
|
labsStub = sinon.stub(labs, 'isSet').returns(true);
|
|
});
|
|
|
|
afterEach(function () {
|
|
sinon.restore();
|
|
});
|
|
|
|
it('returns correct data', async function () {
|
|
const member1 = formattedMemberResponse({
|
|
uuid: 'uuid-1',
|
|
email: 'jamie+1@example.com',
|
|
name: 'Jamie Larson',
|
|
avatar_image: 'https://gravatar.com/avatar/7d8efd2c2a781111599a8cae293cf704?s=250&d=blank',
|
|
subscribed: true,
|
|
status: 'free',
|
|
extra: 'property'
|
|
});
|
|
should(member1).deepEqual({
|
|
uuid: 'uuid-1',
|
|
email: 'jamie+1@example.com',
|
|
name: 'Jamie Larson',
|
|
firstname: 'Jamie',
|
|
avatar_image: 'https://gravatar.com/avatar/7d8efd2c2a781111599a8cae293cf704?s=250&d=blank',
|
|
subscribed: true,
|
|
subscriptions: [],
|
|
paid: false
|
|
});
|
|
});
|
|
|
|
it('formats newsletter data', async function () {
|
|
const member1 = formattedMemberResponse({
|
|
uuid: 'uuid-1',
|
|
email: 'jamie+1@example.com',
|
|
name: 'Jamie Larson',
|
|
avatar_image: 'https://gravatar.com/avatar/7d8efd2c2a781111599a8cae293cf704?s=250&d=blank',
|
|
subscribed: true,
|
|
status: 'comped',
|
|
extra: 'property',
|
|
newsletters: [{
|
|
id: 'newsletter-1',
|
|
name: 'Daily brief',
|
|
description: 'One email daily',
|
|
sender_name: 'Jamie',
|
|
sender_email: 'jamie@example.com',
|
|
sort_order: 0
|
|
}]
|
|
});
|
|
should(member1).deepEqual({
|
|
uuid: 'uuid-1',
|
|
email: 'jamie+1@example.com',
|
|
name: 'Jamie Larson',
|
|
firstname: 'Jamie',
|
|
avatar_image: 'https://gravatar.com/avatar/7d8efd2c2a781111599a8cae293cf704?s=250&d=blank',
|
|
subscribed: true,
|
|
subscriptions: [],
|
|
paid: true,
|
|
newsletters: [{
|
|
id: 'newsletter-1',
|
|
name: 'Daily brief',
|
|
description: 'One email daily',
|
|
sort_order: 0
|
|
}]
|
|
});
|
|
});
|
|
|
|
it('removes newsletter data if flag is disabled', async function () {
|
|
labsStub.returns(false);
|
|
const member1 = formattedMemberResponse({
|
|
uuid: 'uuid-1',
|
|
email: 'jamie+1@example.com',
|
|
name: 'Jamie Larson',
|
|
avatar_image: 'https://gravatar.com/avatar/7d8efd2c2a781111599a8cae293cf704?s=250&d=blank',
|
|
subscribed: true,
|
|
status: 'paid',
|
|
extra: 'property',
|
|
newsletters: [{
|
|
id: 'newsletter-1',
|
|
name: 'Daily brief',
|
|
description: 'One email daily',
|
|
sender_name: 'Jamie',
|
|
sender_email: 'jamie@example.com',
|
|
sort_order: 0
|
|
}]
|
|
});
|
|
should(member1).deepEqual({
|
|
uuid: 'uuid-1',
|
|
email: 'jamie+1@example.com',
|
|
name: 'Jamie Larson',
|
|
firstname: 'Jamie',
|
|
avatar_image: 'https://gravatar.com/avatar/7d8efd2c2a781111599a8cae293cf704?s=250&d=blank',
|
|
subscribed: true,
|
|
subscriptions: [],
|
|
paid: true
|
|
});
|
|
});
|
|
});
|
|
});
|