refactor(realtime): solve circle dependencies in realtime-user-status-adapter.ts

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
This commit is contained in:
Tilman Vatteroth 2023-05-14 13:16:39 +02:00
parent 8cd93918e2
commit e3a3690b58
5 changed files with 259 additions and 191 deletions

View file

@ -82,8 +82,21 @@ export class MockConnectionBuilder {
const displayName = this.deriveDisplayName();
const transporter = new MockedBackendMessageTransporter('');
let realtimeUserStateAdapter: RealtimeUserStatusAdapter =
Mock.of<RealtimeUserStatusAdapter>({});
const realtimeUserStateAdapter: RealtimeUserStatusAdapter =
this.includeRealtimeUserStatus === RealtimeUserState.WITHOUT
? Mock.of<RealtimeUserStatusAdapter>({})
: new RealtimeUserStatusAdapter(
this.username ?? null,
displayName,
() =>
this.realtimeNote
.getConnections()
.map((connection) => connection.getRealtimeUserStateAdapter()),
transporter,
() =>
this.includeRealtimeUserStatus ===
RealtimeUserState.WITH_READWRITE,
);
const mockUser =
this.username === null
@ -107,16 +120,6 @@ export class MockConnectionBuilder {
this.realtimeNote.removeClient(connection),
);
if (this.includeRealtimeUserStatus !== RealtimeUserState.WITHOUT) {
realtimeUserStateAdapter = new RealtimeUserStatusAdapter(
this.username ?? null,
displayName,
connection,
() =>
this.includeRealtimeUserStatus === RealtimeUserState.WITH_READWRITE,
);
}
this.realtimeNote.addClient(connection);
return connection;