diff --git a/src/script/page/MainContent/panels/preferences/DevicesPreferences/components/E2EICertificateDetails/E2EICertificateDetails.test.tsx b/src/script/page/MainContent/panels/preferences/DevicesPreferences/components/E2EICertificateDetails/E2EICertificateDetails.test.tsx index e14d5affc5c..69ab4b12ed2 100644 --- a/src/script/page/MainContent/panels/preferences/DevicesPreferences/components/E2EICertificateDetails/E2EICertificateDetails.test.tsx +++ b/src/script/page/MainContent/panels/preferences/DevicesPreferences/components/E2EICertificateDetails/E2EICertificateDetails.test.tsx @@ -26,7 +26,7 @@ import {MLSStatuses, WireIdentity} from 'src/script/E2EIdentity'; import {E2EICertificateDetails} from './E2EICertificateDetails'; describe('E2EICertificateDetails', () => { - const generateIdentity = (status: MLSStatuses): WireIdentity => ({ + const generateIdentity = (status: MLSStatuses, credentialType = CredentialType.X509): WireIdentity => ({ status, x509Identity: { certificate: 'certificate', @@ -37,7 +37,7 @@ describe('E2EICertificateDetails', () => { notAfter: BigInt(0), serialNumber: '', }, - credentialType: CredentialType.Basic, + credentialType, deviceId: '', clientId: '', thumbprint: '', @@ -54,6 +54,15 @@ describe('E2EICertificateDetails', () => { expect(E2EIdentityStatus.getAttribute('data-uie-value')).toEqual(MLSStatuses.NOT_ACTIVATED); }); + it('is e2ei identity not downloaded for basic MLS device', async () => { + const identity = generateIdentity(MLSStatuses.VALID, CredentialType.Basic); + + const {getByTestId} = render(withTheme()); + + const E2EIdentityStatus = getByTestId('e2ei-identity-status'); + expect(E2EIdentityStatus.getAttribute('data-uie-value')).toEqual(MLSStatuses.NOT_ACTIVATED); + }); + it('is e2ei identity expired', async () => { const identity = generateIdentity(MLSStatuses.EXPIRED); diff --git a/src/script/page/MainContent/panels/preferences/DevicesPreferences/components/E2EICertificateDetails/E2EICertificateDetails.tsx b/src/script/page/MainContent/panels/preferences/DevicesPreferences/components/E2EICertificateDetails/E2EICertificateDetails.tsx index 7217eb3b1cf..2389a5b1844 100644 --- a/src/script/page/MainContent/panels/preferences/DevicesPreferences/components/E2EICertificateDetails/E2EICertificateDetails.tsx +++ b/src/script/page/MainContent/panels/preferences/DevicesPreferences/components/E2EICertificateDetails/E2EICertificateDetails.tsx @@ -17,6 +17,7 @@ * */ +import {CredentialType} from '@wireapp/core/lib/messagingProtocols/mls'; import {TabIndex} from '@wireapp/react-ui-kit/lib/types/enums'; import {Button, ButtonVariant} from '@wireapp/react-ui-kit'; @@ -36,11 +37,19 @@ interface E2EICertificateDetailsProps { isCurrentDevice?: boolean; } +const getCertificateState = (identity?: WireIdentity) => { + if (!identity || identity.credentialType === CredentialType.Basic) { + return MLSStatuses.NOT_ACTIVATED; + } + + return identity.status; +}; + export const E2EICertificateDetails = ({identity, isCurrentDevice}: E2EICertificateDetailsProps) => { const certificate = identity?.x509Identity?.certificate; const showModal = useCertificateDetailsModal(certificate ?? ''); - const certificateState = identity?.status ?? MLSStatuses.NOT_ACTIVATED; + const certificateState = getCertificateState(identity); const isNotActivated = certificateState === MLSStatuses.NOT_ACTIVATED; const isValid = certificateState === MLSStatuses.VALID; const hasCertificate = !!certificate && Boolean(certificate.length);