Deflakey threads cypress test (#10632)

`inviteUser` is asynchronous so you can't just call it and plough straight on.

Also some logging improvements which helped debug this
This commit is contained in:
Richard van der Hoff 2023-04-18 11:17:46 +01:00 committed by GitHub
parent ac2855789f
commit e350b4c2c2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 15 deletions

View file

@ -31,7 +31,6 @@ describe("Threads", () => {
}); });
cy.startHomeserver("default").then((data) => { cy.startHomeserver("default").then((data) => {
homeserver = data; homeserver = data;
cy.initTestUser(homeserver, "Tom"); cy.initTestUser(homeserver, "Tom");
}); });
}); });
@ -50,12 +49,15 @@ describe("Threads", () => {
}); });
let roomId: string; let roomId: string;
cy.createRoom({}).then((_roomId) => { cy.createRoom({})
roomId = _roomId; .then((_roomId) => {
cy.inviteUser(roomId, bot.getUserId()); roomId = _roomId;
bot.joinRoom(roomId); return cy.inviteUser(roomId, bot.getUserId());
cy.visit("/#/room/" + roomId); })
}); .then(async () => {
await bot.joinRoom(roomId);
cy.visit("/#/room/" + roomId);
});
// Around 200 characters // Around 200 characters
const MessageLong = const MessageLong =
@ -407,12 +409,15 @@ describe("Threads", () => {
}); });
let roomId: string; let roomId: string;
cy.createRoom({}).then((_roomId) => { cy.createRoom({})
roomId = _roomId; .then((_roomId) => {
cy.inviteUser(roomId, bot.getUserId()); roomId = _roomId;
bot.joinRoom(roomId); return cy.inviteUser(roomId, bot.getUserId());
cy.visit("/#/room/" + roomId); })
}); .then(async () => {
await bot.joinRoom(roomId);
cy.visit("/#/room/" + roomId);
});
// Exclude timestamp, read marker, and mapboxgl-map from snapshots // Exclude timestamp, read marker, and mapboxgl-map from snapshots
const percyCSS = const percyCSS =

View file

@ -174,7 +174,9 @@ Cypress.Commands.add("createSpace", (options: ICreateRoomOpts): Chainable<string
Cypress.Commands.add("inviteUser", (roomId: string, userId: string): Chainable<{}> => { Cypress.Commands.add("inviteUser", (roomId: string, userId: string): Chainable<{}> => {
return cy.getClient().then(async (cli: MatrixClient) => { return cy.getClient().then(async (cli: MatrixClient) => {
return cli.invite(roomId, userId); const res = await cli.invite(roomId, userId);
Cypress.log({ name: "inviteUser", message: `sent invite in ${roomId} for ${userId}` });
return res;
}); });
}); });

View file

@ -58,7 +58,9 @@ declare global {
function startHomeserver(template: string): Chainable<HomeserverInstance> { function startHomeserver(template: string): Chainable<HomeserverInstance> {
const homeserverName = Cypress.env("HOMESERVER"); const homeserverName = Cypress.env("HOMESERVER");
return cy.task<HomeserverInstance>(homeserverName + "Start", template); return cy.task<HomeserverInstance>(homeserverName + "Start", template, { log: false }).then((x) => {
Cypress.log({ name: "startHomeserver", message: `Started homeserver instance ${x.serverId}` });
});
} }
function stopHomeserver(homeserver?: HomeserverInstance): Chainable<AUTWindow> { function stopHomeserver(homeserver?: HomeserverInstance): Chainable<AUTWindow> {