mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-15 15:44:45 -04:00
feat: submit own style index on realtime user state set
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
This commit is contained in:
parent
b538c2c2a3
commit
24b7514e25
8 changed files with 157 additions and 91 deletions
|
@ -77,28 +77,34 @@ describe('realtime user status adapter', () => {
|
|||
|
||||
const expectedMessage1: Message<MessageType.REALTIME_USER_STATE_SET> = {
|
||||
type: MessageType.REALTIME_USER_STATE_SET,
|
||||
payload: [
|
||||
{
|
||||
active: true,
|
||||
cursor: {
|
||||
from: 0,
|
||||
to: 0,
|
||||
},
|
||||
styleIndex: 1,
|
||||
username: username2,
|
||||
displayName: username2,
|
||||
payload: {
|
||||
ownUser: {
|
||||
styleIndex: 0,
|
||||
displayName: username1,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
cursor: {
|
||||
from: 0,
|
||||
to: 0,
|
||||
users: [
|
||||
{
|
||||
active: true,
|
||||
cursor: {
|
||||
from: 0,
|
||||
to: 0,
|
||||
},
|
||||
styleIndex: 1,
|
||||
username: username2,
|
||||
displayName: username2,
|
||||
},
|
||||
styleIndex: 2,
|
||||
username: username3,
|
||||
displayName: username3,
|
||||
},
|
||||
],
|
||||
{
|
||||
active: true,
|
||||
cursor: {
|
||||
from: 0,
|
||||
to: 0,
|
||||
},
|
||||
styleIndex: 2,
|
||||
username: username3,
|
||||
displayName: username3,
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
expect(sendMessage1Spy).toHaveBeenNthCalledWith(1, expectedMessage1);
|
||||
expect(sendMessage2Spy).toHaveBeenCalledTimes(0);
|
||||
|
@ -125,54 +131,66 @@ describe('realtime user status adapter', () => {
|
|||
|
||||
const expectedMessage2: Message<MessageType.REALTIME_USER_STATE_SET> = {
|
||||
type: MessageType.REALTIME_USER_STATE_SET,
|
||||
payload: [
|
||||
{
|
||||
active: true,
|
||||
cursor: {
|
||||
from: newFrom,
|
||||
to: newTo,
|
||||
},
|
||||
styleIndex: 0,
|
||||
username: username1,
|
||||
displayName: username1,
|
||||
payload: {
|
||||
ownUser: {
|
||||
styleIndex: 1,
|
||||
displayName: username2,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
cursor: {
|
||||
from: 0,
|
||||
to: 0,
|
||||
users: [
|
||||
{
|
||||
active: true,
|
||||
cursor: {
|
||||
from: newFrom,
|
||||
to: newTo,
|
||||
},
|
||||
styleIndex: 0,
|
||||
username: username1,
|
||||
displayName: username1,
|
||||
},
|
||||
styleIndex: 2,
|
||||
username: username3,
|
||||
displayName: username3,
|
||||
},
|
||||
],
|
||||
{
|
||||
active: true,
|
||||
cursor: {
|
||||
from: 0,
|
||||
to: 0,
|
||||
},
|
||||
styleIndex: 2,
|
||||
username: username3,
|
||||
displayName: username3,
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
const expectedMessage3: Message<MessageType.REALTIME_USER_STATE_SET> = {
|
||||
type: MessageType.REALTIME_USER_STATE_SET,
|
||||
payload: [
|
||||
{
|
||||
active: true,
|
||||
cursor: {
|
||||
from: newFrom,
|
||||
to: newTo,
|
||||
},
|
||||
styleIndex: 0,
|
||||
username: username1,
|
||||
displayName: username1,
|
||||
payload: {
|
||||
ownUser: {
|
||||
styleIndex: 2,
|
||||
displayName: username3,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
cursor: {
|
||||
from: 0,
|
||||
to: 0,
|
||||
users: [
|
||||
{
|
||||
active: true,
|
||||
cursor: {
|
||||
from: newFrom,
|
||||
to: newTo,
|
||||
},
|
||||
styleIndex: 0,
|
||||
username: username1,
|
||||
displayName: username1,
|
||||
},
|
||||
styleIndex: 1,
|
||||
username: username2,
|
||||
displayName: username2,
|
||||
},
|
||||
],
|
||||
{
|
||||
active: true,
|
||||
cursor: {
|
||||
from: 0,
|
||||
to: 0,
|
||||
},
|
||||
styleIndex: 1,
|
||||
username: username2,
|
||||
displayName: username2,
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
expect(sendMessage1Spy).toHaveBeenCalledTimes(0);
|
||||
|
@ -191,34 +209,46 @@ describe('realtime user status adapter', () => {
|
|||
|
||||
const expectedMessage1: Message<MessageType.REALTIME_USER_STATE_SET> = {
|
||||
type: MessageType.REALTIME_USER_STATE_SET,
|
||||
payload: [
|
||||
{
|
||||
active: true,
|
||||
cursor: {
|
||||
from: 0,
|
||||
to: 0,
|
||||
},
|
||||
styleIndex: 2,
|
||||
username: username3,
|
||||
displayName: username3,
|
||||
payload: {
|
||||
ownUser: {
|
||||
styleIndex: 0,
|
||||
displayName: username1,
|
||||
},
|
||||
],
|
||||
users: [
|
||||
{
|
||||
active: true,
|
||||
cursor: {
|
||||
from: 0,
|
||||
to: 0,
|
||||
},
|
||||
styleIndex: 2,
|
||||
username: username3,
|
||||
displayName: username3,
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
const expectedMessage3: Message<MessageType.REALTIME_USER_STATE_SET> = {
|
||||
type: MessageType.REALTIME_USER_STATE_SET,
|
||||
payload: [
|
||||
{
|
||||
active: true,
|
||||
cursor: {
|
||||
from: 0,
|
||||
to: 0,
|
||||
},
|
||||
styleIndex: 0,
|
||||
username: username1,
|
||||
displayName: username1,
|
||||
payload: {
|
||||
ownUser: {
|
||||
styleIndex: 2,
|
||||
displayName: username3,
|
||||
},
|
||||
],
|
||||
users: [
|
||||
{
|
||||
active: true,
|
||||
cursor: {
|
||||
from: 0,
|
||||
to: 0,
|
||||
},
|
||||
styleIndex: 0,
|
||||
username: username1,
|
||||
displayName: username1,
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
expect(sendMessage1Spy).toHaveBeenNthCalledWith(1, expectedMessage1);
|
||||
|
|
|
@ -94,13 +94,21 @@ export class RealtimeUserStatusAdapter {
|
|||
}
|
||||
|
||||
private sendCompleteStateToClient(client: RealtimeConnection): void {
|
||||
const payload = this.collectAllConnectionsExcept(client).map(
|
||||
const realtimeUsers = this.collectAllConnectionsExcept(client).map(
|
||||
(client) => client.getRealtimeUserStateAdapter().realtimeUser,
|
||||
);
|
||||
|
||||
client.getTransporter().sendMessage({
|
||||
type: MessageType.REALTIME_USER_STATE_SET,
|
||||
payload,
|
||||
payload: {
|
||||
users: realtimeUsers,
|
||||
ownUser: {
|
||||
displayName:
|
||||
client.getRealtimeUserStateAdapter().realtimeUser.displayName,
|
||||
styleIndex:
|
||||
client.getRealtimeUserStateAdapter().realtimeUser.styleIndex,
|
||||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue