Beam/UnitTests/Sources/TimelineItemFactoryTests.swift
Stefan Ceriu 0651314e3e
Adopt various rust side Timeline API additions (#3423)
* Adopt new reaction toggling API introduced in matrix-org/matrix-rust-sdk/pull/4127

* Adopt the changes introduced in matrix-org/matrix-rust-sdk/pull/4111: use the new `TimelineUniqueId` type instead of `String` for unique timeline identifiers.

* Bump the RustSDK to v1.0.58.

* Fix unit tests
2024-10-16 19:08:34 +03:00

43 lines
1.5 KiB
Swift

//
// Copyright 2024 New Vector Ltd.
//
// SPDX-License-Identifier: AGPL-3.0-only
// Please see LICENSE in the repository root for full details.
//
@testable import ElementX
import MatrixRustSDK
import XCTest
@MainActor
class TimelineItemFactoryTests: XCTestCase {
func testCallInvite() async {
let ownUserID = "@alice:matrix.org"
let senderUserID = "@bob:matrix.org"
let factory = RoomTimelineItemFactory(userID: ownUserID,
attributedStringBuilder: AttributedStringBuilder(mentionBuilder: MentionBuilder()),
stateEventStringBuilder: RoomStateEventStringBuilder(userID: ownUserID))
let eventTimelineItem = EventTimelineItem.mockCallInvite(sender: senderUserID)
let eventTimelineItemProxy = EventTimelineItemProxy(item: eventTimelineItem, uniqueID: .init(id: "0"))
let item = factory.buildTimelineItem(for: eventTimelineItemProxy, isDM: false)
guard let item = item as? CallInviteRoomTimelineItem else {
XCTFail("Incorrect item type")
return
}
XCTAssertEqual(item.isReactable, false)
XCTAssertEqual(item.canBeRepliedTo, false)
XCTAssertEqual(item.isEditable, false)
XCTAssertEqual(item.sender, TimelineItemSender(id: senderUserID))
XCTAssertEqual(item.properties.isEdited, false)
XCTAssertEqual(item.properties.reactions, [])
XCTAssertEqual(item.properties.deliveryStatus, nil)
}
}