Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Commit

Permalink
Fix server picker not allowing you to switch from custom to default (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
t3chguy authored Jun 22, 2023
1 parent 0b77c06 commit d935da2
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/components/views/dialogs/ServerPickerDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ export default class ServerPickerDialog extends React.PureComponent<IProps, ISta

if (this.state.defaultChosen) {
this.props.onFinished(this.defaultServer);
return;
}

const valid = await this.fieldRef.current?.validate({ allowEmpty: false });
Expand All @@ -173,7 +174,7 @@ export default class ServerPickerDialog extends React.PureComponent<IProps, ISta
};

public render(): React.ReactNode {
let text;
let text: string | undefined;
if (this.defaultServer.hsName === "matrix.org") {
text = _t("Matrix.org is the biggest public homeserver in the world, so it's a good place for many.");
}
Expand Down
29 changes: 29 additions & 0 deletions test/components/views/dialogs/ServerPickerDialog-test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,35 @@ describe("<ServerPickerDialog />", () => {
expect(onFinished).toHaveBeenCalledWith(defaultServerConfig);
});

it("should allow user to revert from a custom server to the default", async () => {
fetchMock.get(`https://custom.org/_matrix/client/versions`, {
unstable_features: {},
versions: [],
});

const onFinished = jest.fn();
const serverConfig = {
hsUrl: "https://custom.org",
hsName: "custom.org",
hsNameIsDifferent: true,
isUrl: "https://is.org",
isDefault: false,
isNameResolvable: true,
warning: "",
};
getComponent({ onFinished, serverConfig });

fireEvent.click(screen.getByTestId("defaultHomeserver"));
expect(screen.getByTestId("defaultHomeserver")).toBeChecked();

fireEvent.click(screen.getByText("Continue"));
await flushPromises();

// closed dialog with default server and nothing else
expect(onFinished).toHaveBeenCalledWith(defaultServerConfig);
expect(onFinished).toHaveBeenCalledTimes(1);
});

it("should submit successfully with a valid custom homeserver", async () => {
const homeserver = "https://myhomeserver.site";
fetchMock.get(`${homeserver}/_matrix/client/versions`, {
Expand Down

0 comments on commit d935da2

Please sign in to comment.