From a4cff6825e89479cd7dcd20c2ab42bd894d2b77a Mon Sep 17 00:00:00 2001 From: Alfonso Grillo Date: Tue, 6 Jun 2023 16:14:34 +0200 Subject: [PATCH] Update the "remove avatar" logic in edit room details (#1032) * Refactor remove avatar logic * Add test --- .../RoomDetailsEditScreenViewModel.swift | 7 ++----- .../Sources/RoomDetailsEditScreenViewModelTests.swift | 8 ++++++++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ElementX/Sources/Screens/RoomDetailsEditScreen/RoomDetailsEditScreenViewModel.swift b/ElementX/Sources/Screens/RoomDetailsEditScreen/RoomDetailsEditScreenViewModel.swift index bac9f249b..4e71a17e4 100644 --- a/ElementX/Sources/Screens/RoomDetailsEditScreen/RoomDetailsEditScreenViewModel.swift +++ b/ElementX/Sources/Screens/RoomDetailsEditScreen/RoomDetailsEditScreenViewModel.swift @@ -66,11 +66,8 @@ class RoomDetailsEditScreenViewModel: RoomDetailsEditScreenViewModelType, RoomDe case .displayMediaPicker: actionsSubject.send(.displayMediaPicker) case .removeImage: - if state.localMedia != nil { - state.localMedia = nil - } else { - state.avatarURL = nil - } + state.avatarURL = nil + state.localMedia = nil } } diff --git a/UnitTests/Sources/RoomDetailsEditScreenViewModelTests.swift b/UnitTests/Sources/RoomDetailsEditScreenViewModelTests.swift index 36e1e71e8..331222af3 100644 --- a/UnitTests/Sources/RoomDetailsEditScreenViewModelTests.swift +++ b/UnitTests/Sources/RoomDetailsEditScreenViewModelTests.swift @@ -108,6 +108,14 @@ class RoomDetailsEditScreenViewModelTests: XCTestCase { XCTAssertNotNil(userIndicatorController.alertInfo) } + func testDeleteAvatar() { + setupViewModel(accountOwner: .mockOwner(allowedStateEvents: [.roomAvatar, .roomName, .roomTopic]), + roomProxyConfiguration: .init(name: "Some room", displayName: "Some room", avatarURL: .picturesDirectory)) + XCTAssertNotNil(context.viewState.avatarURL) + context.send(viewAction: .removeImage) + XCTAssertNil(context.viewState.avatarURL) + } + // MARK: - Private private func setupViewModel(accountOwner: RoomMemberProxyMock, roomProxyConfiguration: RoomProxyMockConfiguration) {