Modify RVS test to wait until room loaded
This allows for the alias resolution to occur before a join is attempted. In theory, join_room could in future do an optional view_room-esque thing before attemping a join which would be less fragile than dispatching things in the right order. Also, make sure the store indicates that it is not loading when a room ID has been used - no alias resolution need take place.pull/21833/head
parent
16c4c14a16
commit
7808994b71
|
@ -87,10 +87,10 @@ class RoomViewStore extends Store {
|
||||||
if (payload.room_id) {
|
if (payload.room_id) {
|
||||||
this._setState({
|
this._setState({
|
||||||
roomId: payload.room_id,
|
roomId: payload.room_id,
|
||||||
|
roomLoading: false,
|
||||||
|
roomLoadError: null,
|
||||||
});
|
});
|
||||||
}
|
} else if (payload.room_alias) {
|
||||||
|
|
||||||
if (payload.room_alias && !payload.room_id) {
|
|
||||||
this._setState({
|
this._setState({
|
||||||
roomId: null,
|
roomId: null,
|
||||||
roomAlias: payload.room_alias,
|
roomAlias: payload.room_alias,
|
||||||
|
|
|
@ -45,12 +45,15 @@ describe('RoomViewStore', function() {
|
||||||
done();
|
done();
|
||||||
};
|
};
|
||||||
|
|
||||||
dispatch({ action: 'view_room', room_alias: '#somealias2:aser.ver' });
|
RoomViewStore.addListener(() => {
|
||||||
|
// Wait until the room alias has resolved and the room ID is
|
||||||
|
if (!RoomViewStore.isRoomLoading()) {
|
||||||
|
expect(RoomViewStore.getRoomId()).toBe("!randomcharacters:aser.ver");
|
||||||
|
dispatch({ action: 'join_room' });
|
||||||
|
expect(RoomViewStore.isJoining()).toBe(true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Wait for the next event loop to allow for room alias resolution
|
dispatch({ action: 'view_room', room_alias: '#somealias2:aser.ver' });
|
||||||
setTimeout(() => {
|
|
||||||
dispatch({ action: 'join_room' });
|
|
||||||
expect(RoomViewStore.isJoining()).toBe(true);
|
|
||||||
}, 0);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue