added .read state
This commit is contained in:
1 parent
299f78de36
commit
16c9fab509
9 files changed
+513
-19
No files matched your search
@@ -0,0 +1,38 @@
|
||||
import XCTest
|
||||
@testable import Luma
|
||||
|
||||
final class ChatMessageDeliveryTests: XCTestCase {
|
||||
func testMergeKeepsTheStrongestState() {
|
||||
XCTAssertEqual(ChatMessage.Delivery.sent.merged(with: .sending), .sent)
|
||||
XCTAssertEqual(ChatMessage.Delivery.sending.merged(with: .sent), .sent)
|
||||
XCTAssertEqual(ChatMessage.Delivery.sent.merged(with: .delivered), .delivered)
|
||||
XCTAssertEqual(ChatMessage.Delivery.delivered.merged(with: .read), .read)
|
||||
XCTAssertEqual(ChatMessage.Delivery.read.merged(with: .sent), .read)
|
||||
XCTAssertEqual(ChatMessage.Delivery.read.merged(with: .delivered), .read)
|
||||
}
|
||||
|
||||
func testMAMReplayNeverDowngradesReadState() {
|
||||
// The archived copy of an outgoing message carries `.sent`; the local
|
||||
// copy that received the peer's displayed marker must stay `.read`.
|
||||
XCTAssertEqual(ChatMessage.Delivery.read.merged(with: .sent), .read)
|
||||
XCTAssertEqual(ChatMessage.Delivery.delivered.merged(with: .sent), .delivered)
|
||||
}
|
||||
|
||||
func testFailedIsSticky() {
|
||||
XCTAssertEqual(ChatMessage.Delivery.failed.merged(with: .sent), .failed)
|
||||
XCTAssertEqual(ChatMessage.Delivery.sent.merged(with: .failed), .failed)
|
||||
}
|
||||
|
||||
func testReadMessagesRemainEditableAndRetractable() {
|
||||
let message = ChatMessage(
|
||||
conversationID: "bob@example.org",
|
||||
senderJID: "alice@example.org",
|
||||
body: "привет",
|
||||
direction: .outgoing,
|
||||
delivery: .read,
|
||||
security: .plaintext
|
||||
)
|
||||
XCTAssertTrue(message.canBeEdited)
|
||||
XCTAssertTrue(message.canBeRetracted)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user