1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-11-25 05:23:13 +03:00
Files
matrix-js-sdk/spec/unit/room-member.spec.js

72 lines
2.0 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 = utils.mkEvent({
type: "m.room.power_levels",
room: roomId,
user: userA,
content: {
users_default: 20,
users: {
"@bertha:bar": 200,
"@invalid:user": 10 // shouldn't barf on this.
}
},
event: true
});
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 = utils.mkEvent({
type: "m.typing",
user: userA,
room: roomId,
content: {
user_ids: [
userA, userC
]
},
event: true
});
member.setTypingEvent(event);
memberB.setTypingEvent(event);
memberC.setTypingEvent(event);
expect(member.typing).toEqual(true);
expect(memberB.typing).toEqual(false);
expect(memberC.typing).toEqual(true);
});
});