mirror of
https://github.com/element-hq/element-web
synced 2024-11-23 09:46:09 +03:00
Do not create account data event for guests (#9407)
* Do not create account data event for guests * fix test
This commit is contained in:
parent
7a1c47a23e
commit
714ba6db94
2 changed files with 24 additions and 12 deletions
|
@ -31,6 +31,9 @@ export function getLocalNotificationAccountDataEventType(deviceId: string): stri
|
|||
}
|
||||
|
||||
export async function createLocalNotificationSettingsIfNeeded(cli: MatrixClient): Promise<void> {
|
||||
if (cli.isGuest()) {
|
||||
return;
|
||||
}
|
||||
const eventType = getLocalNotificationAccountDataEventType(cli.deviceId);
|
||||
const event = cli.getAccountData(eventType);
|
||||
// New sessions will create an account data event to signify they support
|
||||
|
|
|
@ -30,21 +30,23 @@ jest.mock("../../src/settings/SettingsStore");
|
|||
|
||||
describe('notifications', () => {
|
||||
let accountDataStore = {};
|
||||
const mockClient = getMockClientWithEventEmitter({
|
||||
isGuest: jest.fn().mockReturnValue(false),
|
||||
getAccountData: jest.fn().mockImplementation(eventType => accountDataStore[eventType]),
|
||||
setAccountData: jest.fn().mockImplementation((eventType, content) => {
|
||||
accountDataStore[eventType] = new MatrixEvent({
|
||||
type: eventType,
|
||||
content,
|
||||
});
|
||||
}),
|
||||
});
|
||||
|
||||
const accountDataEventKey = getLocalNotificationAccountDataEventType(mockClient.deviceId);
|
||||
let mockClient;
|
||||
let accountDataEventKey;
|
||||
|
||||
beforeEach(() => {
|
||||
jest.clearAllMocks();
|
||||
mockClient = getMockClientWithEventEmitter({
|
||||
isGuest: jest.fn().mockReturnValue(false),
|
||||
getAccountData: jest.fn().mockImplementation(eventType => accountDataStore[eventType]),
|
||||
setAccountData: jest.fn().mockImplementation((eventType, content) => {
|
||||
accountDataStore[eventType] = new MatrixEvent({
|
||||
type: eventType,
|
||||
content,
|
||||
});
|
||||
}),
|
||||
});
|
||||
accountDataStore = {};
|
||||
accountDataEventKey = getLocalNotificationAccountDataEventType(mockClient.deviceId);
|
||||
mocked(SettingsStore).getValue.mockReturnValue(false);
|
||||
});
|
||||
|
||||
|
@ -55,6 +57,13 @@ describe('notifications', () => {
|
|||
expect(event?.getContent().is_silenced).toBe(true);
|
||||
});
|
||||
|
||||
it('does not do anything for guests', async () => {
|
||||
mockClient.isGuest.mockReset().mockReturnValue(true);
|
||||
await createLocalNotificationSettingsIfNeeded(mockClient);
|
||||
const event = mockClient.getAccountData(accountDataEventKey);
|
||||
expect(event).toBeFalsy();
|
||||
});
|
||||
|
||||
it.each(deviceNotificationSettingsKeys)(
|
||||
'unsilenced for existing sessions when %s setting is truthy',
|
||||
async (settingKey) => {
|
||||
|
|
Loading…
Reference in a new issue