1
0
Fork 0
mirror of https://github.com/hedgedoc/hedgedoc.git synced 2025-04-23 05:46:57 +00:00

test: add tests for methods in RealtimeNote

Signed-off-by: Philip Molares <philip.molares@udo.edu>
This commit is contained in:
Philip Molares 2022-09-21 22:47:02 +02:00
parent 331747f61b
commit d75095bce4

View file

@ -3,6 +3,10 @@
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
import {
encodeDocumentDeletedMessage,
encodeMetadataUpdatedMessage,
} from '@hedgedoc/realtime';
import { Mock } from 'ts-mockery';
import { Note } from '../../notes/note.entity';
@ -87,4 +91,36 @@ describe('realtime note', () => {
sut.destroy();
expect(() => sut.destroy()).toThrow();
});
it('announcePermissionChange to all clients', () => {
const sut = new RealtimeNote(mockedNote, 'nothing');
const client1 = mockConnection(true);
sut.addClient(client1);
const client2 = mockConnection(true);
sut.addClient(client2);
const metadataMessage = encodeMetadataUpdatedMessage();
sut.announcePermissionChange();
expect(client1.send).toHaveBeenCalledWith(metadataMessage);
expect(client2.send).toHaveBeenCalledWith(metadataMessage);
sut.removeClient(client2);
sut.announcePermissionChange();
expect(client1.send).toHaveBeenCalledTimes(2);
expect(client2.send).toHaveBeenCalledTimes(1);
});
it('announceNoteDeletion to all clients', () => {
const sut = new RealtimeNote(mockedNote, 'nothing');
const client1 = mockConnection(true);
sut.addClient(client1);
const client2 = mockConnection(true);
sut.addClient(client2);
const deletedMessage = encodeDocumentDeletedMessage();
sut.announceNoteDeletion();
expect(client1.send).toHaveBeenCalledWith(deletedMessage);
expect(client2.send).toHaveBeenCalledWith(deletedMessage);
sut.removeClient(client2);
sut.announceNoteDeletion();
expect(client1.send).toHaveBeenCalledTimes(2);
expect(client2.send).toHaveBeenCalledTimes(1);
});
});