From 0c0be8a8628c3b0d66f4c0a5df419d333ab4de4b Mon Sep 17 00:00:00 2001 From: Robin Date: Fri, 6 Sep 2024 13:15:34 -0400 Subject: [PATCH] Test InviteModal --- src/Header.test.tsx | 8 +------ src/Modal.tsx | 3 ++- src/room/InviteModal.test.tsx | 44 +++++++++++++++++++++++++++++++++++ src/vitest.setup.ts | 8 +++++++ 4 files changed, 55 insertions(+), 8 deletions(-) create mode 100644 src/room/InviteModal.test.tsx diff --git a/src/Header.test.tsx b/src/Header.test.tsx index aff15a45..57a9d240 100644 --- a/src/Header.test.tsx +++ b/src/Header.test.tsx @@ -14,19 +14,13 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { expect, test, vi } from "vitest"; +import { expect, test } from "vitest"; import { render, screen } from "@testing-library/react"; import { axe } from "vitest-axe"; import { TooltipProvider } from "@vector-im/compound-web"; import { RoomHeaderInfo } from "./Header"; -global.matchMedia = vi.fn().mockReturnValue({ - matches: true, - addEventListener: () => {}, - removeEventListener: () => {}, -}); - test("RoomHeaderInfo is accessible", async () => { const { container } = render( diff --git a/src/Modal.tsx b/src/Modal.tsx index e2d0ba14..6f5c7e6c 100644 --- a/src/Modal.tsx +++ b/src/Modal.tsx @@ -98,6 +98,7 @@ export const Modal: FC = ({ styles.drawer, { [styles.tabbed]: tabbed }, )} + aria-describedby={undefined} {...rest} >
@@ -120,7 +121,7 @@ export const Modal: FC = ({ - + null; + +test("InviteModal is accessible", async () => { + const user = userEvent.setup(); + const room = { + roomId: "!a:example.org", + name: "Mission Control", + } as unknown as Room; + const onDismiss = vi.fn(); + const { container } = render( + , + { wrapper: BrowserRouter }, + ); + + expect(await axe(container)).toHaveNoViolations(); + await user.click(screen.getByRole("button", { name: "action.copy_link" })); + expect(onDismiss).toBeCalled(); +}); diff --git a/src/vitest.setup.ts b/src/vitest.setup.ts index 80b704cc..aabe4e46 100644 --- a/src/vitest.setup.ts +++ b/src/vitest.setup.ts @@ -37,3 +37,11 @@ Config.initDefault(); posthog.opt_out_capturing(); afterEach(cleanup); + +// Used by a lot of components +window.matchMedia = global.matchMedia = (): MediaQueryList => + ({ + matches: false, + addEventListener: () => {}, + removeEventListener: () => {}, + }) as Partial as MediaQueryList;