1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-08-22 15:12:49 +03:00
Files
matrix-js-sdk/spec/unit/room-member.spec.js
2015-06-10 17:19:56 +01:00

64 lines
1.9 KiB
JavaScript

"use strict";
var sdk = require("../..");
var RoomMember = sdk.RoomMember;
var MatrixEvent = sdk.MatrixEvent;
var utils = require("../test-utils");
describe("RoomMember", function() {
var roomId = "!foo:bar";
var userA = "@alice:bar";
var userB = "@bertha:bar";
var userC = "@clarissa:bar";
var member;
beforeEach(function() {
utils.beforeEach(this);
member = new RoomMember(roomId, userA);
});
it("setPowerLevelEvent should set 'powerLevel' and 'powerLevelNorm'.",
function() {
var event = new MatrixEvent(
utils.mkEvent("m.room.power_levels", roomId, userA, {
users_default: 20,
users: {
"@bertha:bar": 200,
"@invalid:user": 10 // shouldn't barf on this.
}
})
);
member.setPowerLevelEvent(event);
expect(member.powerLevel).toEqual(20);
expect(member.powerLevelNorm).toEqual(10);
var memberB = new RoomMember(roomId, userB);
memberB.setPowerLevelEvent(event);
expect(memberB.powerLevel).toEqual(200);
expect(memberB.powerLevelNorm).toEqual(100);
});
it("setTypingEvent should set 'typing'", function() {
member.typing = false;
var memberB = new RoomMember(roomId, userB);
memberB.typing = true;
var memberC = new RoomMember(roomId, userC);
memberC.typing = true;
var event = new MatrixEvent(
utils.mkEvent("m.typing", roomId, userA, {
user_ids: [
userA, userC
]
})
);
member.setTypingEvent(event);
memberB.setTypingEvent(event);
memberC.setTypingEvent(event);
expect(member.typing).toEqual(true);
expect(memberB.typing).toEqual(false);
expect(memberC.typing).toEqual(true);
});
});