short circuit automatic switch to related space behaviour and fix tests

This commit is contained in:
Michael Telatynski 2021-05-07 11:08:18 +01:00
parent 9d9dce7a91
commit f0e61e6286
2 changed files with 10 additions and 3 deletions

View file

@ -535,7 +535,7 @@ export class SpaceStoreClass extends AsyncStoreWithClient<IState> {
// Don't context switch when navigating to the space room // Don't context switch when navigating to the space room
// as it will cause you to end up in the wrong room // as it will cause you to end up in the wrong room
this.setActiveSpace(room, false); this.setActiveSpace(room, false);
} else if (!this.getSpaceFilteredRoomIds(this.activeSpace).has(roomId)) { } else if (this.activeSpace && !this.getSpaceFilteredRoomIds(this.activeSpace).has(roomId)) {
this.switchToRelatedSpace(roomId); this.switchToRelatedSpace(roomId);
} }

View file

@ -641,14 +641,14 @@ describe("SpaceStore", () => {
it("switch to canonical parent space for room", async () => { it("switch to canonical parent space for room", async () => {
viewRoom(room1); viewRoom(room1);
await store.setActiveSpace(null, false); await store.setActiveSpace(client.getRoom(space2), false);
viewRoom(room2); viewRoom(room2);
expect(store.activeSpace).toBe(client.getRoom(space2)); expect(store.activeSpace).toBe(client.getRoom(space2));
}); });
it("switch to first containing space for room", async () => { it("switch to first containing space for room", async () => {
viewRoom(room2); viewRoom(room2);
await store.setActiveSpace(null, false); await store.setActiveSpace(client.getRoom(space2), false);
viewRoom(room1); viewRoom(room1);
expect(store.activeSpace).toBe(client.getRoom(space1)); expect(store.activeSpace).toBe(client.getRoom(space1));
}); });
@ -659,6 +659,13 @@ describe("SpaceStore", () => {
viewRoom(orphan1); viewRoom(orphan1);
expect(store.activeSpace).toBeNull(); expect(store.activeSpace).toBeNull();
}); });
it("when switching rooms in the all rooms home space don't switch to related space", async () => {
viewRoom(room2);
await store.setActiveSpace(null, false);
viewRoom(room1);
expect(store.activeSpace).toBeNull();
});
}); });
describe("traverseSpace", () => { describe("traverseSpace", () => {