You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-08-05 00:42:10 +03:00
Finish timline integration tests.
This commit is contained in:
@@ -107,7 +107,7 @@ Room.prototype.addEventsToTimeline = function(events, toStartOfTimeline) {
|
|||||||
else {
|
else {
|
||||||
this.timeline.push(events[i]);
|
this.timeline.push(events[i]);
|
||||||
}
|
}
|
||||||
this.emit("Room.timeline", events[i], this, toStartOfTimeline);
|
this.emit("Room.timeline", events[i], this, Boolean(toStartOfTimeline));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -8,6 +8,7 @@ describe("MatrixClient room timelines", function() {
|
|||||||
var baseUrl = "http://localhost.or.something";
|
var baseUrl = "http://localhost.or.something";
|
||||||
var client, httpBackend;
|
var client, httpBackend;
|
||||||
var userId = "@alice:localhost";
|
var userId = "@alice:localhost";
|
||||||
|
var userName = "Alice";
|
||||||
var accessToken = "aseukfgwef";
|
var accessToken = "aseukfgwef";
|
||||||
var roomId = "!foo:bar";
|
var roomId = "!foo:bar";
|
||||||
var otherUserId = "@bob:localhost";
|
var otherUserId = "@bob:localhost";
|
||||||
@@ -38,7 +39,7 @@ describe("MatrixClient room timelines", function() {
|
|||||||
room: roomId, mship: "join", user: otherUserId, name: "Bob"
|
room: roomId, mship: "join", user: otherUserId, name: "Bob"
|
||||||
}),
|
}),
|
||||||
utils.mkMembership({
|
utils.mkMembership({
|
||||||
room: roomId, mship: "join", user: userId, name: "Alice"
|
room: roomId, mship: "join", user: userId, name: userName
|
||||||
}),
|
}),
|
||||||
utils.mkEvent({
|
utils.mkEvent({
|
||||||
type: "m.room.create", room: roomId, user: userId,
|
type: "m.room.create", room: roomId, user: userId,
|
||||||
@@ -65,7 +66,9 @@ describe("MatrixClient room timelines", function() {
|
|||||||
start: "start_"
|
start: "start_"
|
||||||
};
|
};
|
||||||
httpBackend.when("GET", "/initialSync").respond(200, initialSync);
|
httpBackend.when("GET", "/initialSync").respond(200, initialSync);
|
||||||
httpBackend.when("GET", "/events").respond(200, eventData);
|
httpBackend.when("GET", "/events").respond(200, function() {
|
||||||
|
return eventData;
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(function() {
|
afterEach(function() {
|
||||||
@@ -88,7 +91,7 @@ describe("MatrixClient room timelines", function() {
|
|||||||
// check member
|
// check member
|
||||||
var member = room.timeline[1].sender;
|
var member = room.timeline[1].sender;
|
||||||
expect(member.userId).toEqual(userId);
|
expect(member.userId).toEqual(userId);
|
||||||
expect(member.name).toEqual("Alice");
|
expect(member.name).toEqual(userName);
|
||||||
|
|
||||||
httpBackend.flush("/events", 1).done(function() {
|
httpBackend.flush("/events", 1).done(function() {
|
||||||
done();
|
done();
|
||||||
@@ -197,7 +200,7 @@ describe("MatrixClient room timelines", function() {
|
|||||||
it("should set the right event.sender values", function(done) {
|
it("should set the right event.sender values", function(done) {
|
||||||
// make an m.room.member event with prev_content
|
// make an m.room.member event with prev_content
|
||||||
var oldMshipEvent = utils.mkMembership({
|
var oldMshipEvent = utils.mkMembership({
|
||||||
mship: "join", user: userId, room: roomId, name: "Alice",
|
mship: "join", user: userId, room: roomId, name: userName,
|
||||||
url: "mxc://some/url"
|
url: "mxc://some/url"
|
||||||
});
|
});
|
||||||
oldMshipEvent.prev_content = {
|
oldMshipEvent.prev_content = {
|
||||||
@@ -226,7 +229,7 @@ describe("MatrixClient room timelines", function() {
|
|||||||
var oldMsg = room.timeline[0];
|
var oldMsg = room.timeline[0];
|
||||||
expect(oldMsg.sender.name).toEqual("Old Alice");
|
expect(oldMsg.sender.name).toEqual("Old Alice");
|
||||||
var newMsg = room.timeline[2];
|
var newMsg = room.timeline[2];
|
||||||
expect(newMsg.sender.name).toEqual("Alice");
|
expect(newMsg.sender.name).toEqual(userName);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -292,20 +295,126 @@ describe("MatrixClient room timelines", function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe("new events", function() {
|
describe("new events", function() {
|
||||||
xit("should be added to the right place in the timeline", function() {
|
it("should be added to the right place in the timeline", function(done) {
|
||||||
|
eventData.chunk = [
|
||||||
|
utils.mkMessage({user: userId, room: roomId}),
|
||||||
|
utils.mkMessage({user: userId, room: roomId})
|
||||||
|
];
|
||||||
|
client.on("syncComplete", function() {
|
||||||
|
var room = client.getRoom(roomId);
|
||||||
|
|
||||||
|
var index = 0;
|
||||||
|
client.on("Room.timeline", function(event, rm, toStart) {
|
||||||
|
expect(toStart).toBe(false);
|
||||||
|
expect(rm).toEqual(room);
|
||||||
|
expect(event.event).toEqual(eventData.chunk[index]);
|
||||||
|
index += 1;
|
||||||
|
});
|
||||||
|
|
||||||
|
httpBackend.flush("/messages", 1);
|
||||||
|
httpBackend.flush("/events", 1).done(function() {
|
||||||
|
expect(index).toEqual(2);
|
||||||
|
expect(room.timeline[room.timeline.length - 1].event).toEqual(
|
||||||
|
eventData.chunk[1]
|
||||||
|
);
|
||||||
|
expect(room.timeline[room.timeline.length - 2].event).toEqual(
|
||||||
|
eventData.chunk[0]
|
||||||
|
);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
client.startClient();
|
||||||
|
httpBackend.flush("/initialSync", 1);
|
||||||
});
|
});
|
||||||
|
|
||||||
xit("should set the right event.sender values", function() {
|
it("should set the right event.sender values", function(done) {
|
||||||
|
eventData.chunk = [
|
||||||
|
utils.mkMessage({user: userId, room: roomId}),
|
||||||
|
utils.mkMembership({
|
||||||
|
user: userId, room: roomId, mship: "join", name: "New Name"
|
||||||
|
}),
|
||||||
|
utils.mkMessage({user: userId, room: roomId})
|
||||||
|
];
|
||||||
|
client.on("syncComplete", function() {
|
||||||
|
var room = client.getRoom(roomId);
|
||||||
|
httpBackend.flush("/events", 1).done(function() {
|
||||||
|
var preNameEvent = room.timeline[room.timeline.length - 3];
|
||||||
|
var postNameEvent = room.timeline[room.timeline.length - 1];
|
||||||
|
expect(preNameEvent.sender.name).toEqual(userName);
|
||||||
|
expect(postNameEvent.sender.name).toEqual("New Name");
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
client.startClient();
|
||||||
|
httpBackend.flush("/initialSync", 1);
|
||||||
});
|
});
|
||||||
|
|
||||||
xit("should set the right room.name", function() {
|
it("should set the right room.name", function(done) {
|
||||||
|
eventData.chunk = [
|
||||||
|
utils.mkEvent({
|
||||||
|
user: userId, room: roomId, type: "m.room.name", content: {
|
||||||
|
name: "Room 2"
|
||||||
|
}
|
||||||
|
})
|
||||||
|
];
|
||||||
|
client.on("syncComplete", function() {
|
||||||
|
var room = client.getRoom(roomId);
|
||||||
|
var nameEmitCount = 0;
|
||||||
|
client.on("Room.name", function(rm) {
|
||||||
|
nameEmitCount += 1;
|
||||||
|
});
|
||||||
|
|
||||||
|
httpBackend.flush("/events", 1).done(function() {
|
||||||
|
expect(nameEmitCount).toEqual(1);
|
||||||
|
expect(room.name).toEqual("Room 2");
|
||||||
|
// do another round
|
||||||
|
eventData.chunk = [
|
||||||
|
utils.mkEvent({
|
||||||
|
user: userId, room: roomId, type: "m.room.name", content: {
|
||||||
|
name: "Room 3"
|
||||||
|
}
|
||||||
|
})
|
||||||
|
];
|
||||||
|
httpBackend.when("GET", "/events").respond(200, eventData);
|
||||||
|
httpBackend.flush("/events", 1).done(function() {
|
||||||
|
expect(nameEmitCount).toEqual(2);
|
||||||
|
expect(room.name).toEqual("Room 3");
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
client.startClient();
|
||||||
|
httpBackend.flush("/initialSync", 1);
|
||||||
});
|
});
|
||||||
|
|
||||||
xit("should set the right room members", function() {
|
it("should set the right room members", function(done) {
|
||||||
|
var userC = "@cee:bar";
|
||||||
|
var userD = "@dee:bar";
|
||||||
|
eventData.chunk = [
|
||||||
|
utils.mkMembership({
|
||||||
|
user: userC, room: roomId, mship: "join", name: "C"
|
||||||
|
}),
|
||||||
|
utils.mkMembership({
|
||||||
|
user: userC, room: roomId, mship: "invite", skey: userD
|
||||||
|
})
|
||||||
|
];
|
||||||
|
client.on("syncComplete", function() {
|
||||||
|
var room = client.getRoom(roomId);
|
||||||
|
httpBackend.flush("/events", 1).done(function() {
|
||||||
|
expect(room.currentState.getMembers().length).toEqual(4);
|
||||||
|
expect(room.currentState.getMember(userC).name).toEqual("C");
|
||||||
|
expect(room.currentState.getMember(userC).membership).toEqual(
|
||||||
|
"join"
|
||||||
|
);
|
||||||
|
expect(room.currentState.getMember(userD).name).toEqual(userD);
|
||||||
|
expect(room.currentState.getMember(userD).membership).toEqual(
|
||||||
|
"invite"
|
||||||
|
);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
client.startClient();
|
||||||
|
httpBackend.flush("/initialSync", 1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user