element-web/test/unit-tests/components/views/auth/RegistrationToken-test.tsx

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

95 lines
3.3 KiB
TypeScript
Raw Normal View History

Support registration tokens (#7275) * Support token authenticated registration https://spec.matrix.org/v1.2/client-server-api/#token-authenticated-registration Signed-off-by: Callum Brown <callum@calcuode.com> * Backwards compatibility with unstable auth type Some server installs are not updated to use the stable version of the registration token authentication type, so also handle the unstable version defined in MSC3231. Signed-off-by: Callum Brown <callum@calcuode.com> * Make LOGIN_TYPE public and readonly Co-authored-by: Travis Ralston <travpc@gmail.com> * Remove line related to skinning Signed-off-by: Callum Brown <callum@calcuode.com> * Change empty string to null Signed-off-by: Callum Brown <callum@calcuode.com> * Use "public"s for new code style Signed-off-by: Callum Brown <callum@calcuode.com> * Change input to AccessibleButton Signed-off-by: Callum Brown <callum@calcuode.com> * Add more detail regarding source of token Signed-off-by: Callum Brown <callum@calcuode.com> * Fix lint error The text and button type will be the same every time for registration tokens, unlike (possibly) for SSO. Signed-off-by: Callum Brown <callum@calcuode.com> * Change null back to "" Due to the following warning when attempting to test: > Warning: `value` prop on `input` should not be null. > Consider using an empty string to clear the component or > `undefined` for uncontrolled components. Signed-off-by: Callum Brown <callum@calcuode.com> * Disable submit button when no token entered Signed-off-by: Callum Brown <callum@calcuode.com> * Add test for registration tokens Adapted from test/components/views/dialogs/InteractiveAuthDialog-test.tsx Signed-off-by: Callum Brown <callum@calcuode.com> * Fix linting errors Signed-off-by: Callum Brown <callum@calcuode.com> * Fix test for registration tokens Signed-off-by: Callum Brown <callum@calcuode.com> Signed-off-by: Callum Brown <callum@calcuode.com> Co-authored-by: Travis Ralston <travpc@gmail.com> Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2023-01-24 15:02:07 +03:00
/*
Copyright 2024 New Vector Ltd.
Support registration tokens (#7275) * Support token authenticated registration https://spec.matrix.org/v1.2/client-server-api/#token-authenticated-registration Signed-off-by: Callum Brown <callum@calcuode.com> * Backwards compatibility with unstable auth type Some server installs are not updated to use the stable version of the registration token authentication type, so also handle the unstable version defined in MSC3231. Signed-off-by: Callum Brown <callum@calcuode.com> * Make LOGIN_TYPE public and readonly Co-authored-by: Travis Ralston <travpc@gmail.com> * Remove line related to skinning Signed-off-by: Callum Brown <callum@calcuode.com> * Change empty string to null Signed-off-by: Callum Brown <callum@calcuode.com> * Use "public"s for new code style Signed-off-by: Callum Brown <callum@calcuode.com> * Change input to AccessibleButton Signed-off-by: Callum Brown <callum@calcuode.com> * Add more detail regarding source of token Signed-off-by: Callum Brown <callum@calcuode.com> * Fix lint error The text and button type will be the same every time for registration tokens, unlike (possibly) for SSO. Signed-off-by: Callum Brown <callum@calcuode.com> * Change null back to "" Due to the following warning when attempting to test: > Warning: `value` prop on `input` should not be null. > Consider using an empty string to clear the component or > `undefined` for uncontrolled components. Signed-off-by: Callum Brown <callum@calcuode.com> * Disable submit button when no token entered Signed-off-by: Callum Brown <callum@calcuode.com> * Add test for registration tokens Adapted from test/components/views/dialogs/InteractiveAuthDialog-test.tsx Signed-off-by: Callum Brown <callum@calcuode.com> * Fix linting errors Signed-off-by: Callum Brown <callum@calcuode.com> * Fix test for registration tokens Signed-off-by: Callum Brown <callum@calcuode.com> Signed-off-by: Callum Brown <callum@calcuode.com> Co-authored-by: Travis Ralston <travpc@gmail.com> Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2023-01-24 15:02:07 +03:00
Copyright 2022 The Matrix.org Foundation C.I.C.
Copyright 2022 Callum Brown
Copyright 2016 OpenMarket Ltd
Support registration tokens (#7275) * Support token authenticated registration https://spec.matrix.org/v1.2/client-server-api/#token-authenticated-registration Signed-off-by: Callum Brown <callum@calcuode.com> * Backwards compatibility with unstable auth type Some server installs are not updated to use the stable version of the registration token authentication type, so also handle the unstable version defined in MSC3231. Signed-off-by: Callum Brown <callum@calcuode.com> * Make LOGIN_TYPE public and readonly Co-authored-by: Travis Ralston <travpc@gmail.com> * Remove line related to skinning Signed-off-by: Callum Brown <callum@calcuode.com> * Change empty string to null Signed-off-by: Callum Brown <callum@calcuode.com> * Use "public"s for new code style Signed-off-by: Callum Brown <callum@calcuode.com> * Change input to AccessibleButton Signed-off-by: Callum Brown <callum@calcuode.com> * Add more detail regarding source of token Signed-off-by: Callum Brown <callum@calcuode.com> * Fix lint error The text and button type will be the same every time for registration tokens, unlike (possibly) for SSO. Signed-off-by: Callum Brown <callum@calcuode.com> * Change null back to "" Due to the following warning when attempting to test: > Warning: `value` prop on `input` should not be null. > Consider using an empty string to clear the component or > `undefined` for uncontrolled components. Signed-off-by: Callum Brown <callum@calcuode.com> * Disable submit button when no token entered Signed-off-by: Callum Brown <callum@calcuode.com> * Add test for registration tokens Adapted from test/components/views/dialogs/InteractiveAuthDialog-test.tsx Signed-off-by: Callum Brown <callum@calcuode.com> * Fix linting errors Signed-off-by: Callum Brown <callum@calcuode.com> * Fix test for registration tokens Signed-off-by: Callum Brown <callum@calcuode.com> Signed-off-by: Callum Brown <callum@calcuode.com> Co-authored-by: Travis Ralston <travpc@gmail.com> Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2023-01-24 15:02:07 +03:00
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
Support registration tokens (#7275) * Support token authenticated registration https://spec.matrix.org/v1.2/client-server-api/#token-authenticated-registration Signed-off-by: Callum Brown <callum@calcuode.com> * Backwards compatibility with unstable auth type Some server installs are not updated to use the stable version of the registration token authentication type, so also handle the unstable version defined in MSC3231. Signed-off-by: Callum Brown <callum@calcuode.com> * Make LOGIN_TYPE public and readonly Co-authored-by: Travis Ralston <travpc@gmail.com> * Remove line related to skinning Signed-off-by: Callum Brown <callum@calcuode.com> * Change empty string to null Signed-off-by: Callum Brown <callum@calcuode.com> * Use "public"s for new code style Signed-off-by: Callum Brown <callum@calcuode.com> * Change input to AccessibleButton Signed-off-by: Callum Brown <callum@calcuode.com> * Add more detail regarding source of token Signed-off-by: Callum Brown <callum@calcuode.com> * Fix lint error The text and button type will be the same every time for registration tokens, unlike (possibly) for SSO. Signed-off-by: Callum Brown <callum@calcuode.com> * Change null back to "" Due to the following warning when attempting to test: > Warning: `value` prop on `input` should not be null. > Consider using an empty string to clear the component or > `undefined` for uncontrolled components. Signed-off-by: Callum Brown <callum@calcuode.com> * Disable submit button when no token entered Signed-off-by: Callum Brown <callum@calcuode.com> * Add test for registration tokens Adapted from test/components/views/dialogs/InteractiveAuthDialog-test.tsx Signed-off-by: Callum Brown <callum@calcuode.com> * Fix linting errors Signed-off-by: Callum Brown <callum@calcuode.com> * Fix test for registration tokens Signed-off-by: Callum Brown <callum@calcuode.com> Signed-off-by: Callum Brown <callum@calcuode.com> Co-authored-by: Travis Ralston <travpc@gmail.com> Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2023-01-24 15:02:07 +03:00
*/
import React from "react";
import { fireEvent, render, RenderResult } from "jest-matrix-react";
Support registration tokens (#7275) * Support token authenticated registration https://spec.matrix.org/v1.2/client-server-api/#token-authenticated-registration Signed-off-by: Callum Brown <callum@calcuode.com> * Backwards compatibility with unstable auth type Some server installs are not updated to use the stable version of the registration token authentication type, so also handle the unstable version defined in MSC3231. Signed-off-by: Callum Brown <callum@calcuode.com> * Make LOGIN_TYPE public and readonly Co-authored-by: Travis Ralston <travpc@gmail.com> * Remove line related to skinning Signed-off-by: Callum Brown <callum@calcuode.com> * Change empty string to null Signed-off-by: Callum Brown <callum@calcuode.com> * Use "public"s for new code style Signed-off-by: Callum Brown <callum@calcuode.com> * Change input to AccessibleButton Signed-off-by: Callum Brown <callum@calcuode.com> * Add more detail regarding source of token Signed-off-by: Callum Brown <callum@calcuode.com> * Fix lint error The text and button type will be the same every time for registration tokens, unlike (possibly) for SSO. Signed-off-by: Callum Brown <callum@calcuode.com> * Change null back to "" Due to the following warning when attempting to test: > Warning: `value` prop on `input` should not be null. > Consider using an empty string to clear the component or > `undefined` for uncontrolled components. Signed-off-by: Callum Brown <callum@calcuode.com> * Disable submit button when no token entered Signed-off-by: Callum Brown <callum@calcuode.com> * Add test for registration tokens Adapted from test/components/views/dialogs/InteractiveAuthDialog-test.tsx Signed-off-by: Callum Brown <callum@calcuode.com> * Fix linting errors Signed-off-by: Callum Brown <callum@calcuode.com> * Fix test for registration tokens Signed-off-by: Callum Brown <callum@calcuode.com> Signed-off-by: Callum Brown <callum@calcuode.com> Co-authored-by: Travis Ralston <travpc@gmail.com> Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2023-01-24 15:02:07 +03:00
import InteractiveAuthComponent from "../../../../../src/components/structures/InteractiveAuth";
import { flushPromises, getMockClientWithEventEmitter, unmockClientPeg } from "../../../../test-utils";
Support registration tokens (#7275) * Support token authenticated registration https://spec.matrix.org/v1.2/client-server-api/#token-authenticated-registration Signed-off-by: Callum Brown <callum@calcuode.com> * Backwards compatibility with unstable auth type Some server installs are not updated to use the stable version of the registration token authentication type, so also handle the unstable version defined in MSC3231. Signed-off-by: Callum Brown <callum@calcuode.com> * Make LOGIN_TYPE public and readonly Co-authored-by: Travis Ralston <travpc@gmail.com> * Remove line related to skinning Signed-off-by: Callum Brown <callum@calcuode.com> * Change empty string to null Signed-off-by: Callum Brown <callum@calcuode.com> * Use "public"s for new code style Signed-off-by: Callum Brown <callum@calcuode.com> * Change input to AccessibleButton Signed-off-by: Callum Brown <callum@calcuode.com> * Add more detail regarding source of token Signed-off-by: Callum Brown <callum@calcuode.com> * Fix lint error The text and button type will be the same every time for registration tokens, unlike (possibly) for SSO. Signed-off-by: Callum Brown <callum@calcuode.com> * Change null back to "" Due to the following warning when attempting to test: > Warning: `value` prop on `input` should not be null. > Consider using an empty string to clear the component or > `undefined` for uncontrolled components. Signed-off-by: Callum Brown <callum@calcuode.com> * Disable submit button when no token entered Signed-off-by: Callum Brown <callum@calcuode.com> * Add test for registration tokens Adapted from test/components/views/dialogs/InteractiveAuthDialog-test.tsx Signed-off-by: Callum Brown <callum@calcuode.com> * Fix linting errors Signed-off-by: Callum Brown <callum@calcuode.com> * Fix test for registration tokens Signed-off-by: Callum Brown <callum@calcuode.com> Signed-off-by: Callum Brown <callum@calcuode.com> Co-authored-by: Travis Ralston <travpc@gmail.com> Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2023-01-24 15:02:07 +03:00
describe("InteractiveAuthComponent", function () {
const mockClient = getMockClientWithEventEmitter({
generateClientSecret: jest.fn().mockReturnValue("t35tcl1Ent5ECr3T"),
});
const defaultProps = {
matrixClient: mockClient,
makeRequest: jest.fn().mockResolvedValue(undefined),
onAuthFinished: jest.fn(),
};
const getComponent = (props = {}) => render(<InteractiveAuthComponent {...defaultProps} {...props} />);
Support registration tokens (#7275) * Support token authenticated registration https://spec.matrix.org/v1.2/client-server-api/#token-authenticated-registration Signed-off-by: Callum Brown <callum@calcuode.com> * Backwards compatibility with unstable auth type Some server installs are not updated to use the stable version of the registration token authentication type, so also handle the unstable version defined in MSC3231. Signed-off-by: Callum Brown <callum@calcuode.com> * Make LOGIN_TYPE public and readonly Co-authored-by: Travis Ralston <travpc@gmail.com> * Remove line related to skinning Signed-off-by: Callum Brown <callum@calcuode.com> * Change empty string to null Signed-off-by: Callum Brown <callum@calcuode.com> * Use "public"s for new code style Signed-off-by: Callum Brown <callum@calcuode.com> * Change input to AccessibleButton Signed-off-by: Callum Brown <callum@calcuode.com> * Add more detail regarding source of token Signed-off-by: Callum Brown <callum@calcuode.com> * Fix lint error The text and button type will be the same every time for registration tokens, unlike (possibly) for SSO. Signed-off-by: Callum Brown <callum@calcuode.com> * Change null back to "" Due to the following warning when attempting to test: > Warning: `value` prop on `input` should not be null. > Consider using an empty string to clear the component or > `undefined` for uncontrolled components. Signed-off-by: Callum Brown <callum@calcuode.com> * Disable submit button when no token entered Signed-off-by: Callum Brown <callum@calcuode.com> * Add test for registration tokens Adapted from test/components/views/dialogs/InteractiveAuthDialog-test.tsx Signed-off-by: Callum Brown <callum@calcuode.com> * Fix linting errors Signed-off-by: Callum Brown <callum@calcuode.com> * Fix test for registration tokens Signed-off-by: Callum Brown <callum@calcuode.com> Signed-off-by: Callum Brown <callum@calcuode.com> Co-authored-by: Travis Ralston <travpc@gmail.com> Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2023-01-24 15:02:07 +03:00
beforeEach(function () {
jest.clearAllMocks();
});
afterAll(() => {
unmockClientPeg();
});
const getSubmitButton = ({ container }: RenderResult) =>
container.querySelector(".mx_AccessibleButton_kind_primary");
const getRegistrationTokenInput = ({ container }: RenderResult) =>
container.querySelector('input[name="registrationTokenField"]');
Support registration tokens (#7275) * Support token authenticated registration https://spec.matrix.org/v1.2/client-server-api/#token-authenticated-registration Signed-off-by: Callum Brown <callum@calcuode.com> * Backwards compatibility with unstable auth type Some server installs are not updated to use the stable version of the registration token authentication type, so also handle the unstable version defined in MSC3231. Signed-off-by: Callum Brown <callum@calcuode.com> * Make LOGIN_TYPE public and readonly Co-authored-by: Travis Ralston <travpc@gmail.com> * Remove line related to skinning Signed-off-by: Callum Brown <callum@calcuode.com> * Change empty string to null Signed-off-by: Callum Brown <callum@calcuode.com> * Use "public"s for new code style Signed-off-by: Callum Brown <callum@calcuode.com> * Change input to AccessibleButton Signed-off-by: Callum Brown <callum@calcuode.com> * Add more detail regarding source of token Signed-off-by: Callum Brown <callum@calcuode.com> * Fix lint error The text and button type will be the same every time for registration tokens, unlike (possibly) for SSO. Signed-off-by: Callum Brown <callum@calcuode.com> * Change null back to "" Due to the following warning when attempting to test: > Warning: `value` prop on `input` should not be null. > Consider using an empty string to clear the component or > `undefined` for uncontrolled components. Signed-off-by: Callum Brown <callum@calcuode.com> * Disable submit button when no token entered Signed-off-by: Callum Brown <callum@calcuode.com> * Add test for registration tokens Adapted from test/components/views/dialogs/InteractiveAuthDialog-test.tsx Signed-off-by: Callum Brown <callum@calcuode.com> * Fix linting errors Signed-off-by: Callum Brown <callum@calcuode.com> * Fix test for registration tokens Signed-off-by: Callum Brown <callum@calcuode.com> Signed-off-by: Callum Brown <callum@calcuode.com> Co-authored-by: Travis Ralston <travpc@gmail.com> Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2023-01-24 15:02:07 +03:00
it("Should successfully complete a registration token flow", async () => {
const onAuthFinished = jest.fn();
const makeRequest = jest.fn().mockResolvedValue({ a: 1 });
const authData = {
session: "sess",
flows: [{ stages: ["m.login.registration_token"] }],
};
const wrapper = getComponent({ makeRequest, onAuthFinished, authData });
const registrationTokenNode = getRegistrationTokenInput(wrapper);
const submitNode = getSubmitButton(wrapper);
const formNode = wrapper.container.querySelector("form");
Support registration tokens (#7275) * Support token authenticated registration https://spec.matrix.org/v1.2/client-server-api/#token-authenticated-registration Signed-off-by: Callum Brown <callum@calcuode.com> * Backwards compatibility with unstable auth type Some server installs are not updated to use the stable version of the registration token authentication type, so also handle the unstable version defined in MSC3231. Signed-off-by: Callum Brown <callum@calcuode.com> * Make LOGIN_TYPE public and readonly Co-authored-by: Travis Ralston <travpc@gmail.com> * Remove line related to skinning Signed-off-by: Callum Brown <callum@calcuode.com> * Change empty string to null Signed-off-by: Callum Brown <callum@calcuode.com> * Use "public"s for new code style Signed-off-by: Callum Brown <callum@calcuode.com> * Change input to AccessibleButton Signed-off-by: Callum Brown <callum@calcuode.com> * Add more detail regarding source of token Signed-off-by: Callum Brown <callum@calcuode.com> * Fix lint error The text and button type will be the same every time for registration tokens, unlike (possibly) for SSO. Signed-off-by: Callum Brown <callum@calcuode.com> * Change null back to "" Due to the following warning when attempting to test: > Warning: `value` prop on `input` should not be null. > Consider using an empty string to clear the component or > `undefined` for uncontrolled components. Signed-off-by: Callum Brown <callum@calcuode.com> * Disable submit button when no token entered Signed-off-by: Callum Brown <callum@calcuode.com> * Add test for registration tokens Adapted from test/components/views/dialogs/InteractiveAuthDialog-test.tsx Signed-off-by: Callum Brown <callum@calcuode.com> * Fix linting errors Signed-off-by: Callum Brown <callum@calcuode.com> * Fix test for registration tokens Signed-off-by: Callum Brown <callum@calcuode.com> Signed-off-by: Callum Brown <callum@calcuode.com> Co-authored-by: Travis Ralston <travpc@gmail.com> Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2023-01-24 15:02:07 +03:00
expect(registrationTokenNode).toBeTruthy();
expect(submitNode).toBeTruthy();
expect(formNode).toBeTruthy();
// submit should be disabled
expect(submitNode).toHaveAttribute("disabled");
expect(submitNode).toHaveAttribute("aria-disabled", "true");
Support registration tokens (#7275) * Support token authenticated registration https://spec.matrix.org/v1.2/client-server-api/#token-authenticated-registration Signed-off-by: Callum Brown <callum@calcuode.com> * Backwards compatibility with unstable auth type Some server installs are not updated to use the stable version of the registration token authentication type, so also handle the unstable version defined in MSC3231. Signed-off-by: Callum Brown <callum@calcuode.com> * Make LOGIN_TYPE public and readonly Co-authored-by: Travis Ralston <travpc@gmail.com> * Remove line related to skinning Signed-off-by: Callum Brown <callum@calcuode.com> * Change empty string to null Signed-off-by: Callum Brown <callum@calcuode.com> * Use "public"s for new code style Signed-off-by: Callum Brown <callum@calcuode.com> * Change input to AccessibleButton Signed-off-by: Callum Brown <callum@calcuode.com> * Add more detail regarding source of token Signed-off-by: Callum Brown <callum@calcuode.com> * Fix lint error The text and button type will be the same every time for registration tokens, unlike (possibly) for SSO. Signed-off-by: Callum Brown <callum@calcuode.com> * Change null back to "" Due to the following warning when attempting to test: > Warning: `value` prop on `input` should not be null. > Consider using an empty string to clear the component or > `undefined` for uncontrolled components. Signed-off-by: Callum Brown <callum@calcuode.com> * Disable submit button when no token entered Signed-off-by: Callum Brown <callum@calcuode.com> * Add test for registration tokens Adapted from test/components/views/dialogs/InteractiveAuthDialog-test.tsx Signed-off-by: Callum Brown <callum@calcuode.com> * Fix linting errors Signed-off-by: Callum Brown <callum@calcuode.com> * Fix test for registration tokens Signed-off-by: Callum Brown <callum@calcuode.com> Signed-off-by: Callum Brown <callum@calcuode.com> Co-authored-by: Travis Ralston <travpc@gmail.com> Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2023-01-24 15:02:07 +03:00
// put something in the registration token box
fireEvent.change(registrationTokenNode!, { target: { value: "s3kr3t" } });
Support registration tokens (#7275) * Support token authenticated registration https://spec.matrix.org/v1.2/client-server-api/#token-authenticated-registration Signed-off-by: Callum Brown <callum@calcuode.com> * Backwards compatibility with unstable auth type Some server installs are not updated to use the stable version of the registration token authentication type, so also handle the unstable version defined in MSC3231. Signed-off-by: Callum Brown <callum@calcuode.com> * Make LOGIN_TYPE public and readonly Co-authored-by: Travis Ralston <travpc@gmail.com> * Remove line related to skinning Signed-off-by: Callum Brown <callum@calcuode.com> * Change empty string to null Signed-off-by: Callum Brown <callum@calcuode.com> * Use "public"s for new code style Signed-off-by: Callum Brown <callum@calcuode.com> * Change input to AccessibleButton Signed-off-by: Callum Brown <callum@calcuode.com> * Add more detail regarding source of token Signed-off-by: Callum Brown <callum@calcuode.com> * Fix lint error The text and button type will be the same every time for registration tokens, unlike (possibly) for SSO. Signed-off-by: Callum Brown <callum@calcuode.com> * Change null back to "" Due to the following warning when attempting to test: > Warning: `value` prop on `input` should not be null. > Consider using an empty string to clear the component or > `undefined` for uncontrolled components. Signed-off-by: Callum Brown <callum@calcuode.com> * Disable submit button when no token entered Signed-off-by: Callum Brown <callum@calcuode.com> * Add test for registration tokens Adapted from test/components/views/dialogs/InteractiveAuthDialog-test.tsx Signed-off-by: Callum Brown <callum@calcuode.com> * Fix linting errors Signed-off-by: Callum Brown <callum@calcuode.com> * Fix test for registration tokens Signed-off-by: Callum Brown <callum@calcuode.com> Signed-off-by: Callum Brown <callum@calcuode.com> Co-authored-by: Travis Ralston <travpc@gmail.com> Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2023-01-24 15:02:07 +03:00
expect(getRegistrationTokenInput(wrapper)).toHaveValue("s3kr3t");
expect(submitNode).not.toHaveAttribute("disabled");
expect(submitNode).not.toHaveAttribute("aria-disabled", "true");
Support registration tokens (#7275) * Support token authenticated registration https://spec.matrix.org/v1.2/client-server-api/#token-authenticated-registration Signed-off-by: Callum Brown <callum@calcuode.com> * Backwards compatibility with unstable auth type Some server installs are not updated to use the stable version of the registration token authentication type, so also handle the unstable version defined in MSC3231. Signed-off-by: Callum Brown <callum@calcuode.com> * Make LOGIN_TYPE public and readonly Co-authored-by: Travis Ralston <travpc@gmail.com> * Remove line related to skinning Signed-off-by: Callum Brown <callum@calcuode.com> * Change empty string to null Signed-off-by: Callum Brown <callum@calcuode.com> * Use "public"s for new code style Signed-off-by: Callum Brown <callum@calcuode.com> * Change input to AccessibleButton Signed-off-by: Callum Brown <callum@calcuode.com> * Add more detail regarding source of token Signed-off-by: Callum Brown <callum@calcuode.com> * Fix lint error The text and button type will be the same every time for registration tokens, unlike (possibly) for SSO. Signed-off-by: Callum Brown <callum@calcuode.com> * Change null back to "" Due to the following warning when attempting to test: > Warning: `value` prop on `input` should not be null. > Consider using an empty string to clear the component or > `undefined` for uncontrolled components. Signed-off-by: Callum Brown <callum@calcuode.com> * Disable submit button when no token entered Signed-off-by: Callum Brown <callum@calcuode.com> * Add test for registration tokens Adapted from test/components/views/dialogs/InteractiveAuthDialog-test.tsx Signed-off-by: Callum Brown <callum@calcuode.com> * Fix linting errors Signed-off-by: Callum Brown <callum@calcuode.com> * Fix test for registration tokens Signed-off-by: Callum Brown <callum@calcuode.com> Signed-off-by: Callum Brown <callum@calcuode.com> Co-authored-by: Travis Ralston <travpc@gmail.com> Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2023-01-24 15:02:07 +03:00
// hit enter; that should trigger a request
fireEvent.submit(formNode!);
Support registration tokens (#7275) * Support token authenticated registration https://spec.matrix.org/v1.2/client-server-api/#token-authenticated-registration Signed-off-by: Callum Brown <callum@calcuode.com> * Backwards compatibility with unstable auth type Some server installs are not updated to use the stable version of the registration token authentication type, so also handle the unstable version defined in MSC3231. Signed-off-by: Callum Brown <callum@calcuode.com> * Make LOGIN_TYPE public and readonly Co-authored-by: Travis Ralston <travpc@gmail.com> * Remove line related to skinning Signed-off-by: Callum Brown <callum@calcuode.com> * Change empty string to null Signed-off-by: Callum Brown <callum@calcuode.com> * Use "public"s for new code style Signed-off-by: Callum Brown <callum@calcuode.com> * Change input to AccessibleButton Signed-off-by: Callum Brown <callum@calcuode.com> * Add more detail regarding source of token Signed-off-by: Callum Brown <callum@calcuode.com> * Fix lint error The text and button type will be the same every time for registration tokens, unlike (possibly) for SSO. Signed-off-by: Callum Brown <callum@calcuode.com> * Change null back to "" Due to the following warning when attempting to test: > Warning: `value` prop on `input` should not be null. > Consider using an empty string to clear the component or > `undefined` for uncontrolled components. Signed-off-by: Callum Brown <callum@calcuode.com> * Disable submit button when no token entered Signed-off-by: Callum Brown <callum@calcuode.com> * Add test for registration tokens Adapted from test/components/views/dialogs/InteractiveAuthDialog-test.tsx Signed-off-by: Callum Brown <callum@calcuode.com> * Fix linting errors Signed-off-by: Callum Brown <callum@calcuode.com> * Fix test for registration tokens Signed-off-by: Callum Brown <callum@calcuode.com> Signed-off-by: Callum Brown <callum@calcuode.com> Co-authored-by: Travis Ralston <travpc@gmail.com> Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2023-01-24 15:02:07 +03:00
// wait for auth request to resolve
await flushPromises();
expect(makeRequest).toHaveBeenCalledTimes(1);
2023-03-01 18:23:35 +03:00
expect(makeRequest).toHaveBeenCalledWith(
Support registration tokens (#7275) * Support token authenticated registration https://spec.matrix.org/v1.2/client-server-api/#token-authenticated-registration Signed-off-by: Callum Brown <callum@calcuode.com> * Backwards compatibility with unstable auth type Some server installs are not updated to use the stable version of the registration token authentication type, so also handle the unstable version defined in MSC3231. Signed-off-by: Callum Brown <callum@calcuode.com> * Make LOGIN_TYPE public and readonly Co-authored-by: Travis Ralston <travpc@gmail.com> * Remove line related to skinning Signed-off-by: Callum Brown <callum@calcuode.com> * Change empty string to null Signed-off-by: Callum Brown <callum@calcuode.com> * Use "public"s for new code style Signed-off-by: Callum Brown <callum@calcuode.com> * Change input to AccessibleButton Signed-off-by: Callum Brown <callum@calcuode.com> * Add more detail regarding source of token Signed-off-by: Callum Brown <callum@calcuode.com> * Fix lint error The text and button type will be the same every time for registration tokens, unlike (possibly) for SSO. Signed-off-by: Callum Brown <callum@calcuode.com> * Change null back to "" Due to the following warning when attempting to test: > Warning: `value` prop on `input` should not be null. > Consider using an empty string to clear the component or > `undefined` for uncontrolled components. Signed-off-by: Callum Brown <callum@calcuode.com> * Disable submit button when no token entered Signed-off-by: Callum Brown <callum@calcuode.com> * Add test for registration tokens Adapted from test/components/views/dialogs/InteractiveAuthDialog-test.tsx Signed-off-by: Callum Brown <callum@calcuode.com> * Fix linting errors Signed-off-by: Callum Brown <callum@calcuode.com> * Fix test for registration tokens Signed-off-by: Callum Brown <callum@calcuode.com> Signed-off-by: Callum Brown <callum@calcuode.com> Co-authored-by: Travis Ralston <travpc@gmail.com> Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2023-01-24 15:02:07 +03:00
expect.objectContaining({
session: "sess",
type: "m.login.registration_token",
token: "s3kr3t",
}),
);
2023-03-01 18:23:35 +03:00
expect(onAuthFinished).toHaveBeenCalledTimes(1);
expect(onAuthFinished).toHaveBeenCalledWith(
Support registration tokens (#7275) * Support token authenticated registration https://spec.matrix.org/v1.2/client-server-api/#token-authenticated-registration Signed-off-by: Callum Brown <callum@calcuode.com> * Backwards compatibility with unstable auth type Some server installs are not updated to use the stable version of the registration token authentication type, so also handle the unstable version defined in MSC3231. Signed-off-by: Callum Brown <callum@calcuode.com> * Make LOGIN_TYPE public and readonly Co-authored-by: Travis Ralston <travpc@gmail.com> * Remove line related to skinning Signed-off-by: Callum Brown <callum@calcuode.com> * Change empty string to null Signed-off-by: Callum Brown <callum@calcuode.com> * Use "public"s for new code style Signed-off-by: Callum Brown <callum@calcuode.com> * Change input to AccessibleButton Signed-off-by: Callum Brown <callum@calcuode.com> * Add more detail regarding source of token Signed-off-by: Callum Brown <callum@calcuode.com> * Fix lint error The text and button type will be the same every time for registration tokens, unlike (possibly) for SSO. Signed-off-by: Callum Brown <callum@calcuode.com> * Change null back to "" Due to the following warning when attempting to test: > Warning: `value` prop on `input` should not be null. > Consider using an empty string to clear the component or > `undefined` for uncontrolled components. Signed-off-by: Callum Brown <callum@calcuode.com> * Disable submit button when no token entered Signed-off-by: Callum Brown <callum@calcuode.com> * Add test for registration tokens Adapted from test/components/views/dialogs/InteractiveAuthDialog-test.tsx Signed-off-by: Callum Brown <callum@calcuode.com> * Fix linting errors Signed-off-by: Callum Brown <callum@calcuode.com> * Fix test for registration tokens Signed-off-by: Callum Brown <callum@calcuode.com> Signed-off-by: Callum Brown <callum@calcuode.com> Co-authored-by: Travis Ralston <travpc@gmail.com> Co-authored-by: Andy Balaam <andy.balaam@matrix.org>
2023-01-24 15:02:07 +03:00
true,
{ a: 1 },
{ clientSecret: "t35tcl1Ent5ECr3T", emailSid: undefined },
);
});
});