diff --git a/apps/web/src/components/views/spaces/SpaceCreateMenu.tsx b/apps/web/src/components/views/spaces/SpaceCreateMenu.tsx index 52831d1ee1c..3fd76c49a07 100644 --- a/apps/web/src/components/views/spaces/SpaceCreateMenu.tsx +++ b/apps/web/src/components/views/spaces/SpaceCreateMenu.tsx @@ -60,8 +60,9 @@ export const createSpace = async ( otherOpts: Partial> = {}, ): Promise => { return createRoom(client, { + name, + topic, createOpts: { - name, preset: isPublic ? Preset.PublicChat : Preset.PrivateChat, visibility: isPublic && (await client.doesServerSupportUnstableFeature("org.matrix.msc3827.stable")) @@ -73,7 +74,6 @@ export const createSpace = async ( invite: isPublic ? 0 : 50, }, room_alias_name: isPublic && alias ? alias.substring(1, alias.indexOf(":")) : undefined, - topic, ...createOpts, }, avatar, diff --git a/apps/web/test/unit-tests/components/views/spaces/SpaceCreateMenu-test.tsx b/apps/web/test/unit-tests/components/views/spaces/SpaceCreateMenu-test.tsx index ad8c3ad86ee..1293fe690b8 100644 --- a/apps/web/test/unit-tests/components/views/spaces/SpaceCreateMenu-test.tsx +++ b/apps/web/test/unit-tests/components/views/spaces/SpaceCreateMenu-test.tsx @@ -8,12 +8,19 @@ Please see LICENSE files in the repository root for full details. import React from "react"; import { render, cleanup } from "jest-matrix-react"; -import { type MatrixClient } from "matrix-js-sdk/src/matrix"; +import { + HistoryVisibility, + MatrixError, + type MatrixClient, + Preset, + RoomType, + Visibility, +} from "matrix-js-sdk/src/matrix"; import userEvent from "@testing-library/user-event"; -import { MatrixError } from "matrix-js-sdk/src/matrix"; import { type MockedObject } from "jest-mock"; -import SpaceCreateMenu from "../../../../../src/components/views/spaces/SpaceCreateMenu"; +import * as createRoomModule from "../../../../../src/createRoom"; +import SpaceCreateMenu, { createSpace } from "../../../../../src/components/views/spaces/SpaceCreateMenu"; import { getMockClientWithEventEmitter, mockClientMethodsRooms, @@ -118,4 +125,35 @@ describe("", () => { visibility: "private", }); }); + + it("should pass name and topic at the top level when creating a space", async () => { + const createRoomSpy = jest.spyOn(createRoomModule, "default").mockResolvedValue("!room:id"); + client.doesServerSupportUnstableFeature.mockResolvedValue(false); + + await createSpace(client, "My Name", true, "#my-namefoobar:server", "A description"); + + expect(createRoomSpy).toHaveBeenCalledWith(client, { + name: "My Name", + topic: "A description", + createOpts: { + preset: Preset.PublicChat, + visibility: Visibility.Private, + power_level_content_override: { + events_default: 100, + invite: 0, + }, + room_alias_name: "my-namefoobar", + }, + avatar: undefined, + roomType: RoomType.Space, + historyVisibility: HistoryVisibility.WorldReadable, + spinner: false, + encryption: false, + andView: true, + inlineErrors: true, + }); + + expect(createRoomSpy.mock.calls[0][1]?.createOpts).not.toHaveProperty("name"); + expect(createRoomSpy.mock.calls[0][1]?.createOpts).not.toHaveProperty("topic"); + }); });