it('returns false if add-on has a null value for authors', () => { const partialAddon = { ...addon, authors: null }; expect(isAddonAuthor({ addon: partialAddon, userId: null })).toEqual( false, ); });
siteUserCanManageReplies() { const { addon, siteUser, siteUserHasReplyPerm, _siteUserCanManageReplies, } = this.props; if (_siteUserCanManageReplies) { // Return a stub implementation for testing. return _siteUserCanManageReplies(); } if (!siteUser) { return false; } return ( isAddonAuthor({ addon, userId: siteUser.id }) || siteUserHasReplyPerm ); }
listContent() { const { addon, hasStatsPermission, i18n, userId, currentVersion, } = this.props; if (!addon) { return this.renderDefinitions({ versionLastUpdated: <LoadingText minWidth={20} />, versionLicense: <LoadingText minWidth={20} />, }); } let homepage = trimAndAddProtocolToUrl(addon.homepage); if (homepage) { homepage = ( <li> <a className="AddonMoreInfo-homepage-link" href={homepage}> {i18n.gettext('Homepage')} </a> </li> ); } let supportUrl = trimAndAddProtocolToUrl(addon.support_url); if (supportUrl) { supportUrl = ( <li> <a className="AddonMoreInfo-support-link" href={supportUrl}> {i18n.gettext('Support Site')} </a> </li> ); } let supportEmail = addon.support_email; if (supportEmail && /.+@.+/.test(supportEmail)) { supportEmail = ( <li> <a className="AddonMoreInfo-support-email" href={`mailto:${supportEmail}`} > {i18n.gettext('Support Email')} </a> </li> ); } else { supportEmail = null; } let statsLink = null; if ( isAddonAuthor({ addon, userId }) || addon.public_stats || hasStatsPermission ) { statsLink = ( <Link className="AddonMoreInfo-stats-link" href={`/addon/${addon.slug}/statistics/`} > {i18n.gettext('Visit stats dashboard')} </Link> ); } const lastUpdated = addon.last_updated; const license = currentVersion && currentVersion.license; let versionLicenseLink = null; if (license) { versionLicenseLink = license.url ? ( <Link className="AddonMoreInfo-license-link" href={license.url} prependClientApp={false} prependLang={false} > {license.name} </Link> ) : ( <span className="AddonMoreInfo-license-name">{license.name}</span> ); } return this.renderDefinitions({ homepage, supportUrl, supportEmail, statsLink, version: currentVersion && addonHasVersionHistory(addon) ? currentVersion.version : null, versionLastUpdated: lastUpdated ? i18n.sprintf( // translators: This will output, in English: // "2 months ago (Dec 12 2016)" i18n.gettext('%(timeFromNow)s (%(date)s)'), { timeFromNow: i18n.moment(lastUpdated).fromNow(), date: i18n.moment(lastUpdated).format('ll'), }, ) : null, versionLicenseLink, privacyPolicyLink: addon.has_privacy_policy ? ( <Link className="AddonMoreInfo-privacy-policy-link" href={`/addon/${addon.slug}/privacy/`} > {i18n.gettext('Read the privacy policy for this add-on')} </Link> ) : null, eulaLink: addon.has_eula ? ( <Link className="AddonMoreInfo-eula-link" href={`/addon/${addon.slug}/eula/`} > {i18n.gettext('Read the license agreement for this add-on')} </Link> ) : null, versionHistoryLink: addonHasVersionHistory(addon) ? ( <li> <Link className="AddonMoreInfo-version-history-link" href={`/addon/${addon.slug}/versions/`} > {i18n.gettext('See all versions')} </Link> </li> ) : null, }); }
it('returns false when userId is not set', () => { expect(isAddonAuthor({ addon, userId: null })).toEqual(false); });
it('returns false when addon.authors is not set', () => { expect(isAddonAuthor({ addon: {}, userId: 5838591 })).toEqual(false); });
it('returns false when addon is null', () => { expect(isAddonAuthor({ addon: null, userId: 5838591 })).toEqual(false); });
it('returns false when userId is not in add-on author object', () => { expect(isAddonAuthor({ addon, userId: 5838592 })).toEqual(false); });
it('returns true when userId is in add-on author object', () => { expect(isAddonAuthor({ addon, userId: 5838591 })).toEqual(true); });