diff --git a/src/i18n/en-US.json b/src/i18n/en-US.json index 1c1f30f8f63..7001dfe6946 100644 --- a/src/i18n/en-US.json +++ b/src/i18n/en-US.json @@ -1044,6 +1044,7 @@ "userProfileButtonConnect": "Connect", "userProfileButtonIgnore": "Ignore", "userProfileButtonUnblock": "Unblock", + "userProfileDomain": "Domain", "userProfileEmail": "Email", "userRemainingTimeHours": "{{time}}h left", "userRemainingTimeMinutes": "Less than {{time}}m left", diff --git a/src/script/components/panel/EnrichedFields.test.ts b/src/script/components/panel/EnrichedFields.test.ts index 4ab6251e68c..5f992edf900 100644 --- a/src/script/components/panel/EnrichedFields.test.ts +++ b/src/script/components/panel/EnrichedFields.test.ts @@ -25,6 +25,8 @@ import {RichProfileRepository} from 'src/script/user/RichProfileRepository'; import TestPage from 'Util/test/TestPage'; import {createRandomUuid} from 'Util/util'; import EnrichedFields, {EnrichedFieldsProps} from './EnrichedFields'; +import {Config, Configuration} from '../../Config'; +import type {TypeUtil} from '@wireapp/commons'; class EnrichedFieldsPage extends TestPage { constructor(props?: EnrichedFieldsProps) { @@ -32,6 +34,8 @@ class EnrichedFieldsPage extends TestPage { } getEntries = () => this.get('[data-uie-name="item-enriched-key"]'); + findByValue = (expectedValue: string) => + this.get(`[data-uie-name="item-enriched-value"][data-uie-value="${expectedValue}"]`); } const richInfo: Partial = { @@ -79,6 +83,46 @@ describe('EnrichedFields', () => { expect(enrichedFields.getEntries().length).toEqual(3); }); + it('displays the domain of a user when the federation feature flag is turned on', async () => { + spyOn<{getConfig: () => TypeUtil.RecursivePartial}>(Config, 'getConfig').and.returnValue({ + FEATURE: { + ENABLE_FEDERATION: true, + }, + }); + + const richProfileRepository = createRichProfileRepository(); + const domain = 'wire.com'; + const user = new User(createRandomUuid(), domain); + const enrichedFields = new EnrichedFieldsPage({richProfileRepository, user}); + await act(() => + waitFor(() => { + expect(richProfileRepository.getUserRichProfile).toHaveBeenCalled(); + }), + ); + enrichedFields.update(); + expect(enrichedFields.findByValue(domain).length).toBe(1); + }); + + it('does NOT display the domain of a user when the federation feature flag is turned off', async () => { + spyOn<{getConfig: () => TypeUtil.RecursivePartial}>(Config, 'getConfig').and.returnValue({ + FEATURE: { + ENABLE_FEDERATION: false, + }, + }); + + const richProfileRepository = createRichProfileRepository(); + const domain = 'wire.com'; + const user = new User(createRandomUuid(), domain); + const enrichedFields = new EnrichedFieldsPage({richProfileRepository, user}); + await act(() => + waitFor(() => { + expect(richProfileRepository.getUserRichProfile).toHaveBeenCalled(); + }), + ); + enrichedFields.update(); + expect(enrichedFields.findByValue(domain).length).toBe(0); + }); + it('calls the `onFieldsLoaded` function when fields are loaded', async () => { const richProfileRepository = createRichProfileRepository(); const user = new User(createRandomUuid(), null); diff --git a/src/script/components/panel/EnrichedFields.tsx b/src/script/components/panel/EnrichedFields.tsx index 3db1a3ef23d..9475711e466 100644 --- a/src/script/components/panel/EnrichedFields.tsx +++ b/src/script/components/panel/EnrichedFields.tsx @@ -28,6 +28,7 @@ import {noop} from 'Util/util'; import type {User} from '../../entity/User'; import {RichProfileRepository} from '../../user/RichProfileRepository'; +import {Config} from '../../Config'; export interface EnrichedFieldsProps { onFieldsLoaded?: (richFields: RichInfoField[]) => void; @@ -47,6 +48,15 @@ const EnrichedFields: React.FC = ({ let cancel = false; const returnFields: RichInfoField[] = email ? [{type: t('userProfileEmail'), value: email}] : []; + if (Config.getConfig().FEATURE.ENABLE_FEDERATION) { + if (user.domain) { + returnFields.push({ + type: t('userProfileDomain'), + value: user.domain, + }); + } + } + const loadRichFields = async () => { try { const richProfile = await richProfileRepository.getUserRichProfile(user.id); @@ -74,7 +84,7 @@ const EnrichedFields: React.FC = ({
{type}
-
+
{value}