Remove access to homeserver.config.baseUrl field in favour of homeserver.baseUrl

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
pull/28880/head
Michael Telatynski 2025-01-06 15:29:52 +00:00
parent 69ee8fd96a
commit 8e1372b0b4
No known key found for this signature in database
GPG Key ID: A2B008A5F49F5D0D
15 changed files with 30 additions and 25 deletions

View File

@ -17,7 +17,7 @@ test.use({
config: async ({ homeserver }, use) => {
await use({
default_server_config: {
"m.homeserver": { base_url: homeserver.config.baseUrl },
"m.homeserver": { base_url: homeserver.baseUrl },
},
});
},

View File

@ -20,7 +20,7 @@ const test = base.extend<Fixtures>({
config: async ({ homeserver, context }, use) => {
const wellKnown = {
"m.homeserver": {
base_url: homeserver.config.baseUrl,
base_url: homeserver.baseUrl,
},
"org.matrix.msc3814": true,
};

View File

@ -148,7 +148,7 @@ export async function logIntoElement(
// select homeserver
await page.getByRole("button", { name: "Edit" }).click();
await page.getByRole("textbox", { name: "Other homeserver" }).fill(homeserver.config.baseUrl);
await page.getByRole("textbox", { name: "Other homeserver" }).fill(homeserver.baseUrl);
await page.getByRole("button", { name: "Continue", exact: true }).click();
// wait for the dialog to go away

View File

@ -32,7 +32,7 @@ test.describe("Forgot Password", () => {
await page.getByRole("link", { name: "Sign in" }).click();
// need to select a homeserver at this stage, before entering the forgot password flow
await selectHomeserver(page, homeserver.config.baseUrl);
await selectHomeserver(page, homeserver.baseUrl);
await page.getByRole("button", { name: "Forgot password?" }).click();
@ -47,7 +47,7 @@ test.describe("Forgot Password", () => {
await page.goto("/");
await page.getByRole("link", { name: "Sign in" }).click();
await selectHomeserver(page, homeserver.config.baseUrl);
await selectHomeserver(page, homeserver.baseUrl);
await page.getByRole("button", { name: "Forgot password?" }).click();

View File

@ -70,7 +70,7 @@ const DEVICE_SIGNING_KEYS_BODY = {
async function login(page: Page, homeserver: HomeserverInstance) {
await page.getByRole("link", { name: "Sign in" }).click();
await selectHomeserver(page, homeserver.config.baseUrl);
await selectHomeserver(page, homeserver.baseUrl);
await page.getByRole("textbox", { name: "Username" }).fill(username);
await page.getByPlaceholder("Password").fill(password);
@ -101,7 +101,7 @@ test.describe("Login", () => {
await page.getByRole("link", { name: "Sign in" }).click();
// first pick the homeserver, as otherwise the user picker won't be visible
await selectHomeserver(page, homeserver.config.baseUrl);
await selectHomeserver(page, homeserver.baseUrl);
await page.getByRole("button", { name: "Edit" }).click();
@ -114,7 +114,7 @@ test.describe("Login", () => {
await expect(page.locator(".mx_ServerPicker_server")).toHaveText("server.invalid");
// switch back to the custom homeserver
await selectHomeserver(page, homeserver.config.baseUrl);
await selectHomeserver(page, homeserver.baseUrl);
await expect(page.getByRole("textbox", { name: "Username" })).toBeVisible();
// Disabled because flaky - see https://github.com/vector-im/element-web/issues/24688
@ -142,10 +142,10 @@ test.describe("Login", () => {
homeserver,
request,
}) => {
const res = await request.post(
`${homeserver.config.baseUrl}/_matrix/client/v3/keys/device_signing/upload`,
{ headers: { Authorization: `Bearer ${creds.accessToken}` }, data: DEVICE_SIGNING_KEYS_BODY },
);
const res = await request.post(`${homeserver.baseUrl}/_matrix/client/v3/keys/device_signing/upload`, {
headers: { Authorization: `Bearer ${creds.accessToken}` },
data: DEVICE_SIGNING_KEYS_BODY,
});
if (res.status() / 100 !== 2) {
console.log("Uploading dummy keys failed", await res.json());
}
@ -172,7 +172,7 @@ test.describe("Login", () => {
request,
}) => {
const res = await request.post(
`${homeserver.config.baseUrl}/_matrix/client/v3/keys/device_signing/upload`,
`${homeserver.baseUrl}/_matrix/client/v3/keys/device_signing/upload`,
{ headers: { Authorization: `Bearer ${creds.accessToken}` }, data: DEVICE_SIGNING_KEYS_BODY },
);
if (res.status() / 100 !== 2) {
@ -203,7 +203,7 @@ test.describe("Login", () => {
}) => {
console.log(`uid ${creds.userId} body`, DEVICE_SIGNING_KEYS_BODY);
const res = await request.post(
`${homeserver.config.baseUrl}/_matrix/client/v3/keys/device_signing/upload`,
`${homeserver.baseUrl}/_matrix/client/v3/keys/device_signing/upload`,
{ headers: { Authorization: `Bearer ${creds.accessToken}` }, data: DEVICE_SIGNING_KEYS_BODY },
);
if (res.status() / 100 !== 2) {

View File

@ -24,7 +24,7 @@ test.describe("Overwrite login action", () => {
expect(credentials.userId).not.toBe(bobRegister.userId);
const clientCredentials /* IMatrixClientCreds */ = {
homeserverUrl: homeserver.config.baseUrl,
homeserverUrl: homeserver.baseUrl,
...bobRegister,
};

View File

@ -19,7 +19,7 @@ export async function doTokenRegistration(
await page.goto("/#/login");
await page.getByRole("button", { name: "Edit" }).click();
await page.getByRole("textbox", { name: "Other homeserver" }).fill(homeserver.config.baseUrl);
await page.getByRole("textbox", { name: "Other homeserver" }).fill(homeserver.baseUrl);
await page.getByRole("button", { name: "Continue" }).click();
// wait for the dialog to go away
await expect(page.locator(".mx_ServerPickerDialog")).toHaveCount(0);

View File

@ -44,7 +44,7 @@ export const test = base.extend<{
const issuer = `http://localhost:${(startHomeserverOpts as StartHomeserverOpts).variables["MAS_PORT"]}/`;
const wellKnown = {
"m.homeserver": {
base_url: homeserver.config.baseUrl,
base_url: homeserver.baseUrl,
},
"org.matrix.msc2965.authentication": {
issuer,

View File

@ -25,7 +25,7 @@ test.describe("Email Registration", async () => {
use({
default_server_config: {
"m.homeserver": {
base_url: homeserver.config.baseUrl,
base_url: homeserver.baseUrl,
},
"m.identity_server": {
base_url: "https://server.invalid",

View File

@ -27,7 +27,7 @@ test.describe("Registration", () => {
await expect(page.locator(".mx_Dialog")).toMatchScreenshot("server-picker.png");
await checkA11y();
await page.getByRole("textbox", { name: "Other homeserver" }).fill(homeserver.config.baseUrl);
await page.getByRole("textbox", { name: "Other homeserver" }).fill(homeserver.baseUrl);
await page.getByRole("button", { name: "Continue", exact: true }).click();
// wait for the dialog to go away
await expect(page.getByRole("dialog")).not.toBeVisible();
@ -88,7 +88,7 @@ test.describe("Registration", () => {
test("should require username to fulfil requirements and be available", async ({ homeserver, page }) => {
await page.getByRole("button", { name: "Edit", exact: true }).click();
await expect(page.getByRole("button", { name: "Continue", exact: true })).toBeVisible();
await page.getByRole("textbox", { name: "Other homeserver" }).fill(homeserver.config.baseUrl);
await page.getByRole("textbox", { name: "Other homeserver" }).fill(homeserver.baseUrl);
await page.getByRole("button", { name: "Continue", exact: true }).click();
// wait for the dialog to go away
await expect(page.getByRole("dialog")).not.toBeVisible();

View File

@ -220,7 +220,7 @@ export const test = base.extend<Fixtures>({
// Ensure the language is set to a consistent value
window.localStorage.setItem("mx_local_settings", '{"language":"en"}');
},
{ baseUrl: homeserver.config.baseUrl, credentials },
{ baseUrl: homeserver.baseUrl, credentials },
);
await use(page);
},

View File

@ -97,7 +97,7 @@ export class Bot extends Client {
private async buildClient(): Promise<JSHandle<ExtendedMatrixClient>> {
const credentials = await this.getCredentials();
const clientHandle = await this.page.evaluateHandle(
async ({ homeserver, credentials, opts }) => {
async ({ baseUrl, credentials, opts }) => {
function getLogger(loggerName: string): Logger {
const logger = {
getChild: (namespace: string) => getLogger(`${loggerName}:${namespace}`),
@ -157,7 +157,7 @@ export class Bot extends Client {
};
const cli = new window.matrixcs.MatrixClient({
baseUrl: homeserver.baseUrl,
baseUrl,
userId: credentials.userId,
deviceId: credentials.deviceId,
accessToken: credentials.accessToken,
@ -179,7 +179,7 @@ export class Bot extends Client {
return cli;
},
{
homeserver: this.homeserver.config,
baseUrl: this.homeserver.baseUrl,
credentials,
opts: this.opts,
},

View File

@ -27,7 +27,7 @@ export class Crypto {
accessToken: window.mxMatrixClientPeg.get().getAccessToken(),
}));
const res = await this.request.post(`${this.homeserver.config.baseUrl}/_matrix/client/v3/keys/query`, {
const res = await this.request.post(`${this.homeserver.baseUrl}/_matrix/client/v3/keys/query`, {
headers: { Authorization: `Bearer ${accessToken}` },
data: { device_keys: { [userId]: [] } },
});

View File

@ -16,6 +16,7 @@ export interface HomeserverConfig {
export interface HomeserverInstance {
readonly config: HomeserverConfig;
readonly baseUrl: string;
/**
* Register a user on the given Homeserver using the shared registration secret.

View File

@ -146,6 +146,10 @@ export class Synapse implements Homeserver, HomeserverInstance {
return [path.join(synapseLogsPath, "stdout.log"), path.join(synapseLogsPath, "stderr.log")];
}
public get baseUrl(): string {
return this.config.baseUrl;
}
private async registerUserInternal(
username: string,
password: string,