Clean up federation test
This commit is contained in:
parent
0f493a241e
commit
40fa71df03
|
@ -21,60 +21,77 @@ async function getTestClientForHs(testMatrixServerUrl) {
|
|||
return client;
|
||||
}
|
||||
|
||||
async function createMessagesInRoom(client, roomId, numMessages, prefix) {
|
||||
let eventIds = [];
|
||||
for (let i = 0; i < numMessages; i++) {
|
||||
const eventId = await client.sendMessage(roomId, {
|
||||
msgtype: 'm.text',
|
||||
body: `${prefix} - message${i}`,
|
||||
});
|
||||
eventIds.push(eventId);
|
||||
}
|
||||
|
||||
return eventIds;
|
||||
}
|
||||
|
||||
async function createTestRoom(client) {
|
||||
const roomId = await client.createRoom({
|
||||
preset: 'public_chat',
|
||||
name: 'the hangout spot',
|
||||
});
|
||||
|
||||
let eventIds = [];
|
||||
for (let i = 0; i < 100; i++) {
|
||||
const eventId = await client.sendMessage(roomId, {
|
||||
msgtype: 'm.text',
|
||||
body: `${client.homeserverUrl} - message${i}`,
|
||||
});
|
||||
eventIds.push(eventId);
|
||||
}
|
||||
|
||||
return {
|
||||
roomId,
|
||||
eventIds,
|
||||
};
|
||||
return roomId;
|
||||
}
|
||||
|
||||
describe('matrix-public-archive', () => {
|
||||
it('asdf', async () => {
|
||||
it('Test federation between fixture homeservers', async () => {
|
||||
const hs1Client = await getTestClientForHs(config.testMatrixServerUrl1);
|
||||
const hs2Client = await getTestClientForHs(config.testMatrixServerUrl2);
|
||||
|
||||
const { roomId: hs1RoomId, eventIds: room1EventIds } = await createTestRoom(hs1Client);
|
||||
const { roomId: hs2RoomId, eventIds: room2EventIds } = await createTestRoom(hs2Client);
|
||||
|
||||
console.log('hs1RoomId', hs1RoomId, room1EventIds);
|
||||
console.log('hs2RoomId', hs2RoomId, room2EventIds);
|
||||
|
||||
try {
|
||||
await hs1Client.joinRoom(hs2RoomId, 'hs2');
|
||||
} catch (err) {
|
||||
throw new Error(
|
||||
`Stub error to stop matrix-bot-sdk from logging the response statusCode=${
|
||||
err.statusCode
|
||||
} body=${JSON.stringify(err.body)}`
|
||||
// Create a room on hs2
|
||||
const hs2RoomId = await createTestRoom(hs2Client);
|
||||
const room2EventIds = await createMessagesInRoom(
|
||||
hs2Client,
|
||||
hs2RoomId,
|
||||
10,
|
||||
hs2Client.homeserverUrl
|
||||
);
|
||||
}
|
||||
|
||||
// Join hs1 to a room on hs2 (federation)
|
||||
await hs1Client.joinRoom(hs2RoomId, 'hs2');
|
||||
|
||||
// From, hs1, make sure we can fetch messages from hs2
|
||||
const messagesEndpoint = urlJoin(
|
||||
hs1Client.homeserverUrl,
|
||||
`_matrix/client/r0/rooms/${hs2RoomId}/messages?limit=5&dir=b`
|
||||
`_matrix/client/r0/rooms/${hs2RoomId}/messages?limit=5&dir=b&filter={"types":["m.room.message"]}`
|
||||
);
|
||||
const messageResData = await fetchEndpoint(messagesEndpoint, {
|
||||
accessToken: hs1Client.accessToken,
|
||||
});
|
||||
console.log(messageResData);
|
||||
console.log(
|
||||
|
||||
// Make sure it returned some messages
|
||||
assert.strictEqual(messageResData.chunk.length, 5);
|
||||
|
||||
// Make sure all of the messages belong to the room
|
||||
messageResData.chunk.map((event) => {
|
||||
return `${event.event_id} (${event.type}) - ${event.content.body}`;
|
||||
})
|
||||
const isEventInRoomFromHs2 = room2EventIds.some((room2EventId) => {
|
||||
return room2EventId === event.event_id;
|
||||
});
|
||||
|
||||
// Make sure the message belongs to the room on hs2
|
||||
assert.strictEqual(
|
||||
isEventInRoomFromHs2,
|
||||
true,
|
||||
`Expected ${event.event_id} (${event.type}: "${
|
||||
event.content.body
|
||||
}") to be in room on hs2=${JSON.stringify(room2EventIds)}`
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
it('can render diverse messages');
|
||||
|
||||
it(`can render day back in time from room on remote homeserver we haven't backfilled from`);
|
||||
|
||||
it(`will redirect to hour pagination when there are too many messages`);
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue