diff --git a/cypress/e2e/settings/general-room-settings-tab.spec.ts b/cypress/e2e/settings/general-room-settings-tab.spec.ts new file mode 100644 index 0000000000..fce294e791 --- /dev/null +++ b/cypress/e2e/settings/general-room-settings-tab.spec.ts @@ -0,0 +1,71 @@ +/* +Copyright 2023 Suguru Hirahara + +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 { HomeserverInstance } from "../../plugins/utils/homeserver"; + +describe("General room settings tab", () => { + let homeserver: HomeserverInstance; + const roomName = "Test Room"; + + beforeEach(() => { + cy.startHomeserver("default").then((data) => { + homeserver = data; + cy.initTestUser(homeserver, "Hanako"); + + cy.createRoom({ name: roomName }).viewRoomByName(roomName); + }); + }); + + afterEach(() => { + cy.stopHomeserver(homeserver); + }); + + it("should be rendered properly", () => { + cy.openRoomSettings("General"); + + // Assert that "Show less" details element is rendered + cy.findByText("Show less").should("exist"); + + cy.findByTestId("General").percySnapshotElement( + "Room settings tab - General (Local addresses details area expanded)", + { + // Emulate TabbedView's actual min and max widths + // 580: '.mx_UserSettingsDialog .mx_TabbedView' min-width + // 796: 1036 (mx_TabbedView_tabsOnLeft actual width) - 240 (mx_TabbedView_tabPanel margin-right) + widths: [580, 796], + }, + ); + + // Click the "Show less" details element + cy.findByText("Show less").click(); + + // Assert that "Show more" details element is rendered instead of "Show more" + cy.findByText("Show less").should("not.exist"); + cy.findByText("Show more").should("exist"); + + cy.findByTestId("General").percySnapshotElement( + "Room settings tab - General (Local addresses details area collapsed)", + { + // Emulate TabbedView's actual min and max widths + // 580: '.mx_UserSettingsDialog .mx_TabbedView' min-width + // 796: 1036 (mx_TabbedView_tabsOnLeft actual width) - 240 (mx_TabbedView_tabPanel margin-right) + widths: [580, 796], + }, + ); + }); +}); diff --git a/src/components/views/settings/tabs/room/GeneralRoomSettingsTab.tsx b/src/components/views/settings/tabs/room/GeneralRoomSettingsTab.tsx index fa5c65ab89..a79a3fea56 100644 --- a/src/components/views/settings/tabs/room/GeneralRoomSettingsTab.tsx +++ b/src/components/views/settings/tabs/room/GeneralRoomSettingsTab.tsx @@ -84,7 +84,7 @@ export default class GeneralRoomSettingsTab extends React.Component +