add test case for room creation

This commit is contained in:
Flavio Alescio
2023-05-10 10:18:28 +02:00
committed by Flescio
parent c8df835a9d
commit 8e5d9407f7

View File

@@ -22,14 +22,18 @@ import XCTest
class CreateRoomScreenViewModelTests: XCTestCase {
var viewModel: CreateRoomViewModelProtocol!
var clientProxy: MockClientProxy!
var userSession: MockUserSession!
var context: CreateRoomViewModel.Context {
viewModel.context
}
override func setUpWithError() throws {
clientProxy = .init(userID: "")
let viewModel = CreateRoomViewModel(selectedUsers: [.mockAlice, .mockBob, .mockCharlie])
clientProxy = MockClientProxy(userID: "@a:b.com")
userSession = MockUserSession(clientProxy: clientProxy, mediaProvider: MockMediaProvider())
let parameters = CreateRoomVolatileParameters()
parameters.selectedUsers = [.mockAlice, .mockBob, .mockCharlie]
let viewModel = CreateRoomViewModel(userSession: userSession, createRoomParameters: parameters)
self.viewModel = viewModel
}
@@ -40,4 +44,21 @@ class CreateRoomScreenViewModelTests: XCTestCase {
context.send(viewAction: .deselectUser(.mockAlice))
XCTAssertNotEqual(context.viewState.selectedUsers.first?.userID, UserProfile.mockAlice.userID)
}
func testDefaulSecurity() {
XCTAssertTrue(context.viewState.bindings.isRoomPrivate)
}
func testChangeSecurity() {
context.send(viewAction: .selectPublicRoom)
XCTAssertFalse(context.viewState.bindings.isRoomPrivate)
context.send(viewAction: .selectPrivateRoom)
XCTAssertTrue(context.viewState.bindings.isRoomPrivate)
}
func testCreateRoomRequirements() {
XCTAssertFalse(context.viewState.canCreateRoom)
context.roomName = "A"
XCTAssertTrue(context.viewState.canCreateRoom)
}
}