diff --git a/packages/react-native-ui-lib/src/helpers/AvatarHelper.ts b/packages/react-native-ui-lib/src/helpers/AvatarHelper.ts index c3b4275bfa..62c3f6ffb4 100644 --- a/packages/react-native-ui-lib/src/helpers/AvatarHelper.ts +++ b/packages/react-native-ui-lib/src/helpers/AvatarHelper.ts @@ -90,8 +90,12 @@ export function getBackgroundColor(name?: string, } export function isGravatarUrl(url: string) { - const {hostname, pathname} = new URL(url); - return _.split(hostname, '.').includes('gravatar') && pathname.startsWith('/avatar/'); + try { + const {hostname, pathname} = new URL(url); + return _.split(hostname, '.').includes('gravatar') && pathname.startsWith('/avatar/'); + } catch { + return false; + } } export function isBlankGravatarUrl(url: string) { diff --git a/packages/react-native-ui-lib/src/helpers/__tests__/AvatarHelper.spec.js b/packages/react-native-ui-lib/src/helpers/__tests__/AvatarHelper.spec.js index 317d2d54cf..bccea7ebb4 100644 --- a/packages/react-native-ui-lib/src/helpers/__tests__/AvatarHelper.spec.js +++ b/packages/react-native-ui-lib/src/helpers/__tests__/AvatarHelper.spec.js @@ -114,6 +114,12 @@ describe('services/AvatarService', () => { expect(uut.isGravatarUrl('https://www.gravatars.com/avatar/00000000000000000000000000000000')).toEqual(false); expect(uut.isGravatarUrl('https://www.grava.tar/avatar/00000000000000000000000000000000')).toEqual(false); }); + + it('should return false for an invalid url', () => { + expect(uut.isGravatarUrl('fakeUrl')).toEqual(false); + expect(uut.isGravatarUrl('fakeUri1')).toEqual(false); + expect(uut.isGravatarUrl('')).toEqual(false); + }); }); describe('isBlankGravatarUrl', () => {