Add device notifications enabled switch (#9324)

This commit is contained in:
Germain 2022-09-28 18:13:09 +01:00 committed by GitHub
parent 1a0dbbf192
commit e15ef9f3de
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 251 additions and 31 deletions

View file

@ -15,7 +15,14 @@ limitations under the License.
import React from 'react';
// eslint-disable-next-line deprecate/import
import { mount, ReactWrapper } from 'enzyme';
import { IPushRule, IPushRules, RuleId, IPusher } from 'matrix-js-sdk/src/matrix';
import {
IPushRule,
IPushRules,
RuleId,
IPusher,
LOCAL_NOTIFICATION_SETTINGS_PREFIX,
MatrixEvent,
} from 'matrix-js-sdk/src/matrix';
import { IThreepid, ThreepidMedium } from 'matrix-js-sdk/src/@types/threepids';
import { act } from 'react-dom/test-utils';
@ -67,6 +74,17 @@ describe('<Notifications />', () => {
setPushRuleEnabled: jest.fn(),
setPushRuleActions: jest.fn(),
getRooms: jest.fn().mockReturnValue([]),
getAccountData: jest.fn().mockImplementation(eventType => {
if (eventType.startsWith(LOCAL_NOTIFICATION_SETTINGS_PREFIX.name)) {
return new MatrixEvent({
type: eventType,
content: {
is_silenced: false,
},
});
}
}),
setAccountData: jest.fn(),
});
mockClient.getPushRules.mockResolvedValue(pushRules);
@ -117,6 +135,7 @@ describe('<Notifications />', () => {
const component = await getComponentAndWait();
expect(findByTestId(component, 'notif-master-switch').length).toBeTruthy();
expect(findByTestId(component, 'notif-device-switch').length).toBeTruthy();
expect(findByTestId(component, 'notif-setting-notificationsEnabled').length).toBeTruthy();
expect(findByTestId(component, 'notif-setting-notificationBodyEnabled').length).toBeTruthy();
expect(findByTestId(component, 'notif-setting-audioNotificationsEnabled').length).toBeTruthy();

View file

@ -60,9 +60,10 @@ exports[`<Notifications /> main notification switches renders only enable notifi
className="mx_UserNotifSettings"
>
<LabelledToggleSwitch
caption="Turn off to disable notifications on all your devices and sessions"
data-test-id="notif-master-switch"
disabled={false}
label="Enable for this account"
label="Enable notifications for this account"
onChange={[Function]}
value={false}
>
@ -72,10 +73,18 @@ exports[`<Notifications /> main notification switches renders only enable notifi
<span
className="mx_SettingsFlag_label"
>
Enable for this account
Enable notifications for this account
<br />
<Caption>
<span
className="mx_Caption"
>
Turn off to disable notifications on all your devices and sessions
</span>
</Caption>
</span>
<_default
aria-label="Enable for this account"
aria-label="Enable notifications for this account"
checked={false}
disabled={false}
onChange={[Function]}
@ -83,7 +92,7 @@ exports[`<Notifications /> main notification switches renders only enable notifi
<AccessibleButton
aria-checked={false}
aria-disabled={false}
aria-label="Enable for this account"
aria-label="Enable notifications for this account"
className="mx_ToggleSwitch mx_ToggleSwitch_enabled"
element="div"
onClick={[Function]}
@ -93,7 +102,7 @@ exports[`<Notifications /> main notification switches renders only enable notifi
<div
aria-checked={false}
aria-disabled={false}
aria-label="Enable for this account"
aria-label="Enable notifications for this account"
className="mx_AccessibleButton mx_ToggleSwitch mx_ToggleSwitch_enabled"
onClick={[Function]}
onKeyDown={[Function]}