From 69ea34e7e45f87d03966d4cca389d679af7d3a48 Mon Sep 17 00:00:00 2001 From: hanadi92 Date: Sat, 12 Nov 2022 10:21:50 +0100 Subject: [PATCH] test: check for roomprops --- .../room/NotificationSettingsTab-test.tsx | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/test/components/views/settings/tabs/room/NotificationSettingsTab-test.tsx b/test/components/views/settings/tabs/room/NotificationSettingsTab-test.tsx index 3200c18d044c..a48a7fc135e4 100644 --- a/test/components/views/settings/tabs/room/NotificationSettingsTab-test.tsx +++ b/test/components/views/settings/tabs/room/NotificationSettingsTab-test.tsx @@ -15,16 +15,20 @@ limitations under the License. */ import React from "react"; -import { fireEvent, render, RenderResult } from "@testing-library/react"; +import { render, RenderResult } from "@testing-library/react"; import { MatrixClient } from "matrix-js-sdk/src/client"; +import userEvent from "@testing-library/user-event"; import NotificationSettingsTab from "../../../../../../src/components/views/settings/tabs/room/NotificationSettingsTab"; import { mkStubRoom, stubClient } from "../../../../../test-utils"; import { MatrixClientPeg } from "../../../../../../src/MatrixClientPeg"; +import { EchoChamber } from "../../../../../../src/stores/local-echo/EchoChamber"; +import { RoomEchoChamber } from "../../../../../../src/stores/local-echo/RoomEchoChamber"; describe("NotificatinSettingsTab", () => { const roomId = "!room:example.com"; let cli: MatrixClient; + let roomProps: RoomEchoChamber; const renderTab = (): RenderResult => { return render( { }} />); @@ -33,20 +37,22 @@ describe("NotificatinSettingsTab", () => { beforeEach(() => { stubClient(); cli = MatrixClientPeg.get(); - mkStubRoom(roomId, "test room", cli); + const room = mkStubRoom(roomId, "test room", cli); + roomProps = EchoChamber.forRoom(room); NotificationSettingsTab.contextType = React.createContext(cli); }); - it("should prevent »Settings« link click from bubbling up to radio buttons", () => { + it("should prevent »Settings« link click from bubbling up to radio buttons", async () => { const tab = renderTab(); - const event = new MouseEvent("click", { bubbles: true }); - Object.assign(event, { preventDefault: jest.fn() }); - const settingsLink = tab.container.querySelector("div.mx_AccessibleButton"); + // settings link of mentions_only volume + const settingsLink = tab.container.querySelector( + "label.mx_NotificationSettingsTab_mentionsKeywordsEntry div.mx_AccessibleButton"); if (!settingsLink) throw new Error("settings link does not exist."); - fireEvent(settingsLink, event); - expect(event.preventDefault).toHaveBeenCalledTimes(1); + await userEvent.click(settingsLink); + + expect(roomProps.notificationVolume).not.toBe("mentions_only"); }); });