You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-09-01 21:21:58 +03:00
Add tests to exercise room name / timeline logic; fix some bugs as a result.
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
* @module models/room-state
|
||||
*/
|
||||
var utils = require("../utils");
|
||||
var RoomMember = require("./room-member");
|
||||
|
||||
/**
|
||||
* Construct room state.
|
||||
@@ -45,9 +46,9 @@ RoomState.prototype = {
|
||||
getStateEvents: function(eventType, stateKey) {
|
||||
if (!this.stateEvents[eventType]) {
|
||||
// no match
|
||||
return stateKey ? null : [];
|
||||
return stateKey === undefined ? [] : null;
|
||||
}
|
||||
if (!stateKey) { // return all values
|
||||
if (stateKey === undefined) { // return all values
|
||||
return utils.values(this.stateEvents[eventType]);
|
||||
}
|
||||
var event = this.stateEvents[eventType][stateKey];
|
||||
@@ -61,14 +62,20 @@ RoomState.prototype = {
|
||||
*/
|
||||
setStateEvents: function(stateEvents) {
|
||||
for (var i = 0; i < stateEvents.length; i++) {
|
||||
var event = stateEvents[i].event;
|
||||
var event = stateEvents[i];
|
||||
if (event.getRoomId() !== this.roomId) { continue; }
|
||||
if (!event.isState()) { continue; }
|
||||
|
||||
if (this.stateEvents[event.getType()] === undefined) {
|
||||
this.stateEvents[event.getType()] = {};
|
||||
}
|
||||
this.stateEvents[event.getType()][event.getStateKey()] = stateEvents[i];
|
||||
this.stateEvents[event.getType()][event.getStateKey()] = event;
|
||||
|
||||
if (event.getType() === "m.room.member") {
|
||||
var member = new RoomMember(event);
|
||||
member.calculateDisplayName(this);
|
||||
this.members[event.getStateKey()] = member;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
Reference in New Issue
Block a user