diff --git a/ElementX/Sources/Screens/CreateRoom/CreateRoomViewModel.swift b/ElementX/Sources/Screens/CreateRoom/CreateRoomViewModel.swift index a157d53a0..152d78f0b 100644 --- a/ElementX/Sources/Screens/CreateRoom/CreateRoomViewModel.swift +++ b/ElementX/Sources/Screens/CreateRoom/CreateRoomViewModel.swift @@ -256,7 +256,7 @@ class CreateRoomViewModel: CreateRoomViewModelType, CreateRoomViewModelProtocol } switch await userSession.clientProxy.createRoom(name: createRoomParameters.name, - topic: createRoomParameters.topic, + topic: createRoomParameters.topic.isBlank ? nil : createRoomParameters.topic, isRoomPrivate: createRoomParameters.isRoomPrivate, // As of right now we don't want to make private rooms with the knock rule isKnockingOnly: createRoomParameters.isRoomPrivate ? false : createRoomParameters.isKnockingOnly, diff --git a/ElementX/Sources/Screens/CreateRoom/View/CreateRoomScreen.swift b/ElementX/Sources/Screens/CreateRoom/View/CreateRoomScreen.swift index f75160940..325441976 100644 --- a/ElementX/Sources/Screens/CreateRoom/View/CreateRoomScreen.swift +++ b/ElementX/Sources/Screens/CreateRoom/View/CreateRoomScreen.swift @@ -70,6 +70,9 @@ struct CreateRoomScreen: View { text: roomNameBinding, prompt: Text(L10n.commonRoomNamePlaceholder).foregroundColor(.compound.textSecondary), axis: .horizontal) + .font(.compound.bodyLG) + .foregroundStyle(.compound.textPrimary) + .tint(.compound.iconAccentTertiary) .focused($focus, equals: .name) .accessibilityIdentifier(A11yIdentifiers.createRoomScreen.roomName) .padding(.horizontal, ListRowPadding.horizontal) diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Public-Room-existing-alias.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Public-Room-existing-alias.png index 638b6da4f..e5a53fab4 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Public-Room-existing-alias.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Public-Room-existing-alias.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:43b54cc80fa66318f51aab25bf1da468d5fb80bd1a3e3e421a09976a099b5f2b -size 130312 +oid sha256:dcc8dd510bf4aa95d2fd10cc7eb946754068582f8f0563e3ad90ddab6b236bf3 +size 130451 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Public-Room-invalid-alias.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Public-Room-invalid-alias.png index 3e731c7a7..5e78eeb64 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Public-Room-invalid-alias.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Public-Room-invalid-alias.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:243f03c80c7b5cfb73a8e7dd974b95b20b97e08dc0c39bfb452f874a12f4d7a7 -size 128866 +oid sha256:ea006d0e1b476d2a9b96d044967c1882a85cfef15145b25dc828742fe97e513e +size 128922 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Public-Room.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Public-Room.png index 14cb64516..f1b27fac0 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Public-Room.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Public-Room.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0860ca1766635147002c8f3253cd96342fd5db0da8a0e8507d8f1bb6da81a7ea -size 127199 +oid sha256:84d44465e097c95930f466da5c1512925ac89a6906f2fd5390ad390b7aeba05a +size 127261 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Room-without-users.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Room-without-users.png index 9c40d3172..c9000be63 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Room-without-users.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Room-without-users.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:87798e15e4929dd518b4733e89ed88576a775ac395137094d26fc799ebd6ca7d -size 96316 +oid sha256:f716c24e26af4a6eed2f576952b01b7cc179f086ed368fa6a1226b521149453e +size 96300 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Room.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Room.png index 6be6f42c3..b878ed558 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Room.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-en-GB.Create-Room.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1d046772ea3846acbe9ef68f573171d28fbc83188fbed21430e1d21528f0d895 -size 96665 +oid sha256:d05af6448a4513f425f276cf66427ad1073d3a23f95e16a31a3783351267d5bc +size 96642 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Public-Room-existing-alias.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Public-Room-existing-alias.png index bd9864db0..adde4313d 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Public-Room-existing-alias.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Public-Room-existing-alias.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9eef46ce00dd0109951470ae8b12423e9f6675d3e6ed12d28635febb157aec5a -size 164509 +oid sha256:101a6816e238f388da0e85028f694bd45394a10cb883e1855a5e3715acdfb191 +size 164757 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Public-Room-invalid-alias.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Public-Room-invalid-alias.png index bd9864db0..adde4313d 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Public-Room-invalid-alias.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Public-Room-invalid-alias.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9eef46ce00dd0109951470ae8b12423e9f6675d3e6ed12d28635febb157aec5a -size 164509 +oid sha256:101a6816e238f388da0e85028f694bd45394a10cb883e1855a5e3715acdfb191 +size 164757 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Public-Room.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Public-Room.png index bd9864db0..adde4313d 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Public-Room.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Public-Room.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9eef46ce00dd0109951470ae8b12423e9f6675d3e6ed12d28635febb157aec5a -size 164509 +oid sha256:101a6816e238f388da0e85028f694bd45394a10cb883e1855a5e3715acdfb191 +size 164757 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Room-without-users.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Room-without-users.png index 64177d2ba..6ca1f72aa 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Room-without-users.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Room-without-users.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:600ce81a26eb906ab40462af4c73badf5a5c12fe8e84376f43eb58a66068561a -size 127069 +oid sha256:9a5221eb946a4d7613adc5d1ffc92c8ab56723f3c9339720f6e74be03514871f +size 127295 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Room.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Room.png index 90de44a1d..7fc703296 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Room.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/test_createRoom-iPhone-16-pseudo.Create-Room.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8ed123ad17a24c3d49629ff7fe006095e55a7e11b00d9223410cbd5cc26ced45 -size 127639 +oid sha256:a94efa2a1ce5958a0573054fee0249921a592cf4c638b87ba467aaea1b42d2b0 +size 127861 diff --git a/UnitTests/Sources/CreateRoomViewModelTests.swift b/UnitTests/Sources/CreateRoomViewModelTests.swift index 37097bbd1..a26ad55c9 100644 --- a/UnitTests/Sources/CreateRoomViewModelTests.swift +++ b/UnitTests/Sources/CreateRoomViewModelTests.swift @@ -62,7 +62,7 @@ class CreateRoomScreenViewModelTests: XCTestCase { XCTAssertNotEqual(context.viewState.selectedUsers.first?.userID, UserProfileProxy.mockAlice.userID) } - func testDefaulSecurity() { + func testDefaultSecurity() { XCTAssertTrue(context.viewState.bindings.isRoomPrivate) } @@ -72,6 +72,29 @@ class CreateRoomScreenViewModelTests: XCTestCase { XCTAssertTrue(context.viewState.canCreateRoom) } + func testCreateRoom() async throws { + // Given a form with a blank topic. + context.send(viewAction: .updateRoomName("A")) + context.roomTopic = "" + context.isRoomPrivate = false + XCTAssertTrue(context.viewState.canCreateRoom) + + // When creating the room. + clientProxy.createRoomNameTopicIsRoomPrivateIsKnockingOnlyUserIDsAvatarURLAliasLocalPartReturnValue = .success("1") + let deferred = deferFulfillment(viewModel.actions) { action in + guard case .openRoom("1") = action else { return false } + return true + } + context.send(viewAction: .createRoom) + try await deferred.fulfill() + + // Then the room should be created and a topic should not be set. + XCTAssertTrue(clientProxy.createRoomNameTopicIsRoomPrivateIsKnockingOnlyUserIDsAvatarURLAliasLocalPartCalled) + XCTAssertEqual(clientProxy.createRoomNameTopicIsRoomPrivateIsKnockingOnlyUserIDsAvatarURLAliasLocalPartReceivedArguments?.name, "A") + XCTAssertNil(clientProxy.createRoomNameTopicIsRoomPrivateIsKnockingOnlyUserIDsAvatarURLAliasLocalPartReceivedArguments?.topic, + "The topic should be sent as nil when it is empty.") + } + func testCreateKnockingRoom() async { context.send(viewAction: .updateRoomName("A")) context.roomTopic = "B"