mirror of
https://github.com/vector-im/element-web.git
synced 2024-11-16 05:04:57 +08:00
Stub out calls to vector.im and matrix.org in Cypress (#9652)
This commit is contained in:
parent
d0fd0cfea0
commit
7136c23aa7
@ -21,6 +21,10 @@ import { SynapseInstance } from "../../plugins/synapsedocker";
|
|||||||
describe("Login", () => {
|
describe("Login", () => {
|
||||||
let synapse: SynapseInstance;
|
let synapse: SynapseInstance;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
cy.stubDefaultServer();
|
||||||
|
});
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
cy.stopSynapse(synapse);
|
cy.stopSynapse(synapse);
|
||||||
});
|
});
|
||||||
|
@ -22,6 +22,7 @@ describe("Registration", () => {
|
|||||||
let synapse: SynapseInstance;
|
let synapse: SynapseInstance;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
cy.stubDefaultServer();
|
||||||
cy.visit("/#/register");
|
cy.visit("/#/register");
|
||||||
cy.startSynapse("consent").then(data => {
|
cy.startSynapse("consent").then(data => {
|
||||||
synapse = data;
|
synapse = data;
|
||||||
|
48
cypress/fixtures/matrix-org-client-login.json
Normal file
48
cypress/fixtures/matrix-org-client-login.json
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
"flows": [
|
||||||
|
{
|
||||||
|
"type": "m.login.sso",
|
||||||
|
"identity_providers": [
|
||||||
|
{
|
||||||
|
"id": "oidc-github",
|
||||||
|
"name": "GitHub",
|
||||||
|
"icon": "mxc://matrix.org/sVesTtrFDTpXRbYfpahuJsKP",
|
||||||
|
"brand": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "oidc-google",
|
||||||
|
"name": "Google",
|
||||||
|
"icon": "mxc://matrix.org/ZlnaaZNPxtUuQemvgQzlOlkz",
|
||||||
|
"brand": "google"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "oidc-gitlab",
|
||||||
|
"name": "GitLab",
|
||||||
|
"icon": "mxc://matrix.org/MCVOEmFgVieKFshPxmnejWOq",
|
||||||
|
"brand": "gitlab"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "oidc-facebook",
|
||||||
|
"name": "Facebook",
|
||||||
|
"icon": "mxc://matrix.org/nsyeLIgzxazZmJadflMAsAWG",
|
||||||
|
"brand": "facebook"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "oidc-apple",
|
||||||
|
"name": "Apple",
|
||||||
|
"icon": "mxc://matrix.org/QQKNSOdLiMHtJhzeAObmkFiU",
|
||||||
|
"brand": "apple"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "m.login.token"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "m.login.password"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "m.login.application_service"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
39
cypress/fixtures/matrix-org-client-versions.json
Normal file
39
cypress/fixtures/matrix-org-client-versions.json
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"versions": [
|
||||||
|
"r0.0.1",
|
||||||
|
"r0.1.0",
|
||||||
|
"r0.2.0",
|
||||||
|
"r0.3.0",
|
||||||
|
"r0.4.0",
|
||||||
|
"r0.5.0",
|
||||||
|
"r0.6.0",
|
||||||
|
"r0.6.1",
|
||||||
|
"v1.1",
|
||||||
|
"v1.2",
|
||||||
|
"v1.3",
|
||||||
|
"v1.4"
|
||||||
|
],
|
||||||
|
"unstable_features": {
|
||||||
|
"org.matrix.label_based_filtering": true,
|
||||||
|
"org.matrix.e2e_cross_signing": true,
|
||||||
|
"org.matrix.msc2432": true,
|
||||||
|
"uk.half-shot.msc2666.mutual_rooms": true,
|
||||||
|
"io.element.e2ee_forced.public": false,
|
||||||
|
"io.element.e2ee_forced.private": false,
|
||||||
|
"io.element.e2ee_forced.trusted_private": false,
|
||||||
|
"org.matrix.msc3026.busy_presence": false,
|
||||||
|
"org.matrix.msc2285.stable": true,
|
||||||
|
"org.matrix.msc3827.stable": true,
|
||||||
|
"org.matrix.msc2716": false,
|
||||||
|
"org.matrix.msc3030": false,
|
||||||
|
"org.matrix.msc3440.stable": true,
|
||||||
|
"org.matrix.msc3771": true,
|
||||||
|
"org.matrix.msc3773": false,
|
||||||
|
"fi.mau.msc2815": false,
|
||||||
|
"org.matrix.msc3882": false,
|
||||||
|
"org.matrix.msc3881": false,
|
||||||
|
"org.matrix.msc3874": false,
|
||||||
|
"org.matrix.msc3886": false,
|
||||||
|
"org.matrix.msc3912": false
|
||||||
|
}
|
||||||
|
}
|
8
cypress/fixtures/matrix-org-client-well-known.json
Normal file
8
cypress/fixtures/matrix-org-client-well-known.json
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"m.homeserver": {
|
||||||
|
"base_url": "https://matrix-client.matrix.org"
|
||||||
|
},
|
||||||
|
"m.identity_server": {
|
||||||
|
"base_url": "https://vector.im"
|
||||||
|
}
|
||||||
|
}
|
1
cypress/fixtures/vector-im-identity-v1.json
Normal file
1
cypress/fixtures/vector-im-identity-v1.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
@ -20,10 +20,12 @@ declare global {
|
|||||||
// eslint-disable-next-line @typescript-eslint/no-namespace
|
// eslint-disable-next-line @typescript-eslint/no-namespace
|
||||||
namespace Cypress {
|
namespace Cypress {
|
||||||
interface Chainable {
|
interface Chainable {
|
||||||
// Intercept all /_matrix/ networking requests for the logged in user and fail them
|
// Intercept all /_matrix/ networking requests for the logged-in user and fail them
|
||||||
goOffline(): void;
|
goOffline(): void;
|
||||||
// Remove intercept on all /_matrix/ networking requests
|
// Remove intercept on all /_matrix/ networking requests
|
||||||
goOnline(): void;
|
goOnline(): void;
|
||||||
|
// Intercept calls to vector.im/matrix.org so a login page can be shown offline
|
||||||
|
stubDefaultServer(): void;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -58,5 +60,29 @@ Cypress.Commands.add("goOnline", (): void => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Cypress.Commands.add("stubDefaultServer", (): void => {
|
||||||
|
cy.log("Stubbing vector.im and matrix.org network calls");
|
||||||
|
// We intercept vector.im & matrix.org calls so that tests don't fail when it has issues
|
||||||
|
cy.intercept("GET", "https://vector.im/_matrix/identity/api/v1", {
|
||||||
|
fixture: "vector-im-identity-v1.json",
|
||||||
|
});
|
||||||
|
cy.intercept("GET", "https://matrix.org/.well-known/matrix/client", {
|
||||||
|
fixture: "matrix-org-client-well-known.json",
|
||||||
|
});
|
||||||
|
cy.intercept("GET", "https://matrix-client.matrix.org/_matrix/client/versions", {
|
||||||
|
fixture: "matrix-org-client-versions.json",
|
||||||
|
});
|
||||||
|
cy.intercept("GET", "https://matrix-client.matrix.org/_matrix/client/r0/login", {
|
||||||
|
fixture: "matrix-org-client-login.json",
|
||||||
|
});
|
||||||
|
cy.intercept("POST", "https://matrix-client.matrix.org/_matrix/client/r0/register?kind=guest", {
|
||||||
|
statusCode: 403,
|
||||||
|
body: {
|
||||||
|
errcode: "M_FORBIDDEN",
|
||||||
|
error: "Registration is not enabled on this homeserver.",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
// Needed to make this file a module
|
// Needed to make this file a module
|
||||||
export { };
|
export { };
|
||||||
|
Loading…
Reference in New Issue
Block a user