fix: allow change of accept edits in realtime connection

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
This commit is contained in:
Tilman Vatteroth 2023-05-08 18:07:48 +02:00
parent eebbb79d08
commit 3c1ea7bda9
2 changed files with 20 additions and 14 deletions

View file

@ -84,21 +84,27 @@ describe('websocket connection', () => {
expect(sut.getRealtimeUserStateAdapter()).toBe(realtimeUserStatus); expect(sut.getRealtimeUserStateAdapter()).toBe(realtimeUserStatus);
}); });
it('returns the correct sync adapter', () => { it.each([true, false])(
'creates a sync adapter with acceptEdits %s',
(acceptEdits) => {
const yDocSyncServerAdapter = Mock.of<YDocSyncServerAdapter>({}); const yDocSyncServerAdapter = Mock.of<YDocSyncServerAdapter>({});
jest jest
.spyOn(HedgeDocCommonsModule, 'YDocSyncServerAdapter') .spyOn(HedgeDocCommonsModule, 'YDocSyncServerAdapter')
.mockImplementation(() => yDocSyncServerAdapter); .mockImplementation((messageTransporter, doc, acceptEditsProvider) => {
expect((acceptEditsProvider as () => boolean)()).toBe(acceptEdits);
return yDocSyncServerAdapter;
});
const sut = new RealtimeConnection( const sut = new RealtimeConnection(
mockedMessageTransporter, mockedMessageTransporter,
mockedUser, mockedUser,
mockedRealtimeNote, mockedRealtimeNote,
true, acceptEdits,
); );
expect(sut.getSyncAdapter()).toBe(yDocSyncServerAdapter); expect(sut.getSyncAdapter()).toBe(yDocSyncServerAdapter);
}); },
);
it('removes the client from the note on transporter disconnect', () => { it('removes the client from the note on transporter disconnect', () => {
const sut = new RealtimeConnection( const sut = new RealtimeConnection(

View file

@ -35,7 +35,7 @@ export class RealtimeConnection {
messageTransporter: MessageTransporter, messageTransporter: MessageTransporter,
private user: User | null, private user: User | null,
private realtimeNote: RealtimeNote, private realtimeNote: RealtimeNote,
private acceptEdits: boolean, public acceptEdits: boolean,
) { ) {
this.displayName = user?.displayName ?? generateRandomName(); this.displayName = user?.displayName ?? generateRandomName();
this.transporter = messageTransporter; this.transporter = messageTransporter;