diff --git a/test/components/views/rooms/EventTile/EventTileThreadToolbar-test.tsx b/test/components/views/rooms/EventTile/EventTileThreadToolbar-test.tsx new file mode 100644 index 0000000000..8c9bff2f1c --- /dev/null +++ b/test/components/views/rooms/EventTile/EventTileThreadToolbar-test.tsx @@ -0,0 +1,53 @@ +/* +Copyright 2023 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import { getByLabelText, render, RenderResult } from "@testing-library/react"; +import userEvent from "@testing-library/user-event"; +import React from "react"; +import { ComponentProps } from "react"; + +import { EventTileThreadToolbar } from "../../../../../src/components/views/rooms/EventTile/EventTileThreadToolbar"; + +describe("EventTileThreadToolbar", () => { + const viewInRoom = jest.fn(); + const copyLink = jest.fn(); + + function renderComponent(props: Partial> = {}): RenderResult { + return render(); + } + + afterEach(() => { + jest.resetAllMocks(); + }); + + it("renders", () => { + const { asFragment } = renderComponent(); + expect(asFragment()).toMatchSnapshot(); + }); + + it("calls the right callbacks", async () => { + const { container } = renderComponent(); + + const copyBtn = getByLabelText(container, "Copy link to thread"); + const viewInRoomBtn = getByLabelText(container, "View in room"); + + await userEvent.click(copyBtn); + expect(copyLink).toHaveBeenCalledTimes(1); + + await userEvent.click(viewInRoomBtn); + expect(viewInRoom).toHaveBeenCalledTimes(1); + }); +}); diff --git a/test/components/views/rooms/EventTile/__snapshots__/EventTileThreadToolbar-test.tsx.snap b/test/components/views/rooms/EventTile/__snapshots__/EventTileThreadToolbar-test.tsx.snap new file mode 100644 index 0000000000..133531b447 --- /dev/null +++ b/test/components/views/rooms/EventTile/__snapshots__/EventTileThreadToolbar-test.tsx.snap @@ -0,0 +1,29 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`EventTileThreadToolbar renders 1`] = ` + +