From 85f92308f993917f0ab1e9b0648a0c4d4f13ae99 Mon Sep 17 00:00:00 2001 From: Kerry Date: Mon, 5 Sep 2022 11:10:12 +0200 Subject: [PATCH] Device manager - hide unverified security recommendation when only current session is unverified (PSG-639) (#9228) * scroll to filtered list from security recommendations * test sessionmanager scroll to * stable snapshot * fix strict errors * prtidy * dont show security rec section when only curent session is unverified --- .../settings/devices/SecurityRecommendations.tsx | 9 ++++++++- .../views/settings/tabs/user/SessionManagerTab.tsx | 6 +++++- .../settings/devices/SecurityRecommendations-test.tsx | 11 +++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/components/views/settings/devices/SecurityRecommendations.tsx b/src/components/views/settings/devices/SecurityRecommendations.tsx index 82eb49fd47..3132eba38a 100644 --- a/src/components/views/settings/devices/SecurityRecommendations.tsx +++ b/src/components/views/settings/devices/SecurityRecommendations.tsx @@ -29,11 +29,13 @@ import { interface Props { devices: DevicesDictionary; + currentDeviceId: DeviceWithVerification['device_id']; goToFilteredList: (filter: DeviceSecurityVariation) => void; } const SecurityRecommendations: React.FC = ({ devices, + currentDeviceId, goToFilteredList, }) => { const devicesArray = Object.values(devices); @@ -41,7 +43,12 @@ const SecurityRecommendations: React.FC = ({ const unverifiedDevicesCount = filterDevicesBySecurityRecommendation( devicesArray, [DeviceSecurityVariation.Unverified], - ).length; + ) + // filter out the current device + // as unverfied warning and actions + // will be shown in current session section + .filter((device) => device.device_id !== currentDeviceId) + .length; const inactiveDevicesCount = filterDevicesBySecurityRecommendation( devicesArray, [DeviceSecurityVariation.Inactive], diff --git a/src/components/views/settings/tabs/user/SessionManagerTab.tsx b/src/components/views/settings/tabs/user/SessionManagerTab.tsx index 607549ec4d..07f60e2725 100644 --- a/src/components/views/settings/tabs/user/SessionManagerTab.tsx +++ b/src/components/views/settings/tabs/user/SessionManagerTab.tsx @@ -62,7 +62,11 @@ const SessionManagerTab: React.FC = () => { }, [scrollIntoViewTimeoutRef]); return - + ', () => { const defaultProps = { devices: {}, goToFilteredList: jest.fn(), + currentDeviceId: 'abc123', }; const getComponent = (props = {}) => (); @@ -53,6 +54,16 @@ describe('', () => { expect(container).toMatchSnapshot(); }); + it('does not render unverified devices section when only the current device is unverified', () => { + const devices = { + [unverifiedNoMetadata.device_id]: unverifiedNoMetadata, + [verifiedNoMetadata.device_id]: verifiedNoMetadata, + }; + const { container } = render(getComponent({ devices, currentDeviceId: unverifiedNoMetadata.device_id })); + // nothing to render + expect(container.firstChild).toBeFalsy(); + }); + it('renders inactive devices section when user has inactive devices', () => { const devices = { [verifiedNoMetadata.device_id]: verifiedNoMetadata,