Live location sharing - set replaces relation when stopping beacon (#8266)

* set replaces relation on stopping beacon

Signed-off-by: Kerry Archibald <kerrya@element.io>

* update tests for stopBeacon

Signed-off-by: Kerry Archibald <kerrya@element.io>
pull/21833/head
Kerry 2022-04-11 10:28:43 +02:00 committed by GitHub
parent 61076c3331
commit 44d446be89
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 37 additions and 2 deletions

View File

@ -20,6 +20,7 @@ import {
BeaconIdentifier,
BeaconEvent,
MatrixEvent,
RelationType,
Room,
RoomMember,
RoomState,
@ -447,11 +448,20 @@ export class OwnBeaconStore extends AsyncStoreWithClient<OwnBeaconStoreState> {
...update,
};
const updateContent = makeBeaconInfoContent(timeout,
const newContent = makeBeaconInfoContent(timeout,
live,
description,
assetType,
timestamp);
timestamp,
);
const updateContent = {
...newContent,
"m.new_content": newContent,
"m.relates_to": {
"rel_type": RelationType.Replace,
"event_id": beacon.beaconInfoId,
},
};
await this.matrixClient.unstable_setLiveBeacon(beacon.roomId, updateContent);
};

View File

@ -20,6 +20,7 @@ import {
BeaconEvent,
getBeaconInfoIdentifier,
MatrixEvent,
RelationType,
RoomStateEvent,
RoomMember,
} from "matrix-js-sdk/src/matrix";
@ -472,6 +473,14 @@ describe('OwnBeaconStore', () => {
const expectedUpdateContent = {
...prevEventContent,
live: false,
["m.new_content"]: {
...prevEventContent,
live: false,
},
["m.relates_to"]: {
event_id: alicesRoom1BeaconInfo.getId(),
rel_type: RelationType.Replace,
},
};
expect(mockClient.unstable_setLiveBeacon).toHaveBeenCalledWith(
room1Id,
@ -641,6 +650,14 @@ describe('OwnBeaconStore', () => {
const expectedUpdateContent = {
...prevEventContent,
live: false,
["m.new_content"]: {
...prevEventContent,
live: false,
},
["m.relates_to"]: {
event_id: alicesRoom1BeaconInfo.getId(),
rel_type: RelationType.Replace,
},
};
expect(mockClient.unstable_setLiveBeacon).toHaveBeenCalledWith(
room1Id,
@ -666,6 +683,14 @@ describe('OwnBeaconStore', () => {
const expectedUpdateContent = {
...prevEventContent,
live: false,
["m.new_content"]: {
...prevEventContent,
live: false,
},
["m.relates_to"]: {
event_id: alicesRoom1BeaconInfo.getId(),
rel_type: RelationType.Replace,
},
};
expect(mockClient.unstable_setLiveBeacon).toHaveBeenCalledWith(
room1Id,