1
0
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:
Kegan Dougal
2015-06-08 17:27:10 +01:00
parent 2d00998b61
commit a43447b00e
7 changed files with 202 additions and 14 deletions

View File

@@ -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;
}
}
}
};