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

Removed www from support address email

refs https://github.com/TryGhost/Team/issues/397

- the logic for default support address domain was not removing `www`, causing address to be formed as `noreply@www.example.com` instead of `noreply@example.com`
- removes `www` from the domain for support email address
This commit is contained in:
Rishabh 2022-05-17 22:31:39 +05:30
parent ba142e714b
commit 799570fbd0
3 changed files with 37 additions and 3 deletions

View file

@ -3,7 +3,7 @@ import MemberAvatar from '../common/MemberGravatar';
import ActionButton from '../common/ActionButton';
import CloseButton from '../common/CloseButton';
import Switch from '../common/Switch';
import {getMemberSubscription, getMemberTierName, getSiteNewsletters, getUpdatedOfferPrice, hasMultipleNewsletters, hasMultipleProductsFeature, hasOnlyFreePlan, isComplimentaryMember} from '../../utils/helpers';
import {getMemberSubscription, getMemberTierName, getSiteNewsletters, getSupportAddress, getUpdatedOfferPrice, hasMultipleNewsletters, hasMultipleProductsFeature, hasOnlyFreePlan, isComplimentaryMember} from '../../utils/helpers';
import {getDateString} from '../../utils/date-time';
import {ReactComponent as LoaderIcon} from '../../images/icons/loader.svg';
import {ReactComponent as OfferTagIcon} from '../../images/icons/offer-tag.svg';
@ -545,7 +545,7 @@ export default class AccountHomePage extends React.Component {
render() {
const {member, site} = this.context;
const {members_support_address: supportAddress} = site;
const supportAddress = getSupportAddress({site});
if (!member) {
return null;
}

View file

@ -588,6 +588,11 @@ export const getMemberName = ({member}) => {
export const getSupportAddress = ({site}) => {
const {members_support_address: supportAddress} = site || {};
if (supportAddress?.split('@')?.length > 1) {
const [recipient, domain] = supportAddress?.split('@');
const updatedDomain = domain?.replace(/^(www)\.(?=[^/]*\..{2,5})/, '') || '';
return `${recipient}@${updatedDomain}`;
}
return supportAddress || '';
};

View file

@ -1,4 +1,4 @@
import {getCurrencySymbol, getFreeProduct, getMemberName, getMemberSubscription, getPriceFromSubscription, getPriceIdFromPageQuery, hasMultipleProducts, isActiveOffer, isInviteOnlySite, isPaidMember, isSameCurrency} from './helpers';
import {getCurrencySymbol, getFreeProduct, getMemberName, getMemberSubscription, getPriceFromSubscription, getPriceIdFromPageQuery, getSupportAddress, hasMultipleProducts, isActiveOffer, isInviteOnlySite, isPaidMember, isSameCurrency} from './helpers';
import * as Fixtures from './fixtures-generator';
import {site as FixturesSite, member as FixtureMember, offer as FixtureOffer} from '../utils/test-fixtures';
import {isComplimentaryMember} from '../utils/helpers';
@ -186,6 +186,35 @@ describe('Helpers - ', () => {
});
});
describe('getSupportAddress -', () => {
test('returns expected support address for non sub domain', () => {
let site = {
members_support_address: 'jamie@example.com'
};
const supportAddress = getSupportAddress({site});
expect(supportAddress).toBe('jamie@example.com');
});
test('returns expected support address for non www sub domain', () => {
let site = {
members_support_address: 'jamie@blog.example.com'
};
const supportAddress = getSupportAddress({site});
expect(supportAddress).toBe('jamie@blog.example.com');
});
test('returns expected support address for www domain', () => {
let site = {
members_support_address: 'jamie@www.example.com'
};
const supportAddress = getSupportAddress({site});
expect(supportAddress).toBe('jamie@example.com');
});
});
describe('getPriceIdFromPageQuery - ', () => {
test('can correctly fetch price id from page query ', () => {
const mockPriceIdFn = getPriceIdFromPageQuery;