Expand iOS messaging shell actions
This commit is contained in:
@@ -7,6 +7,7 @@ struct TeleTuiIOSSmokeTests {
|
||||
try await authFlowMatchesAllInteractiveStates()
|
||||
try await chatListLoadsDeterministicFakeDataAndFilters()
|
||||
try await chatDetailLoadsAndSendsMessage()
|
||||
try await messageActionsCoverEditReplyForwardReactDeleteSearchAndCopy()
|
||||
try await profileLoadsFromSelectedChat()
|
||||
appStorageUsesApplicationSupportStyleAccountPaths()
|
||||
print("TeleTuiIOS smoke tests passed")
|
||||
@@ -61,6 +62,44 @@ struct TeleTuiIOSSmokeTests {
|
||||
precondition(viewModel.composeText.isEmpty)
|
||||
}
|
||||
|
||||
@MainActor
|
||||
private static func messageActionsCoverEditReplyForwardReactDeleteSearchAndCopy() async throws {
|
||||
let bridge = FakeSessionBridge(auth: .ready)
|
||||
let chat = try await bridge.loadChats(folderId: nil)[0]
|
||||
let viewModel = ChatViewModel(chat: chat, bridge: bridge)
|
||||
|
||||
await viewModel.load()
|
||||
guard let first = viewModel.messages.first else {
|
||||
preconditionFailure("fake chat should contain a message")
|
||||
}
|
||||
|
||||
await viewModel.edit(message: first, text: "Edited text")
|
||||
precondition(viewModel.messages.first?.text == "Edited text")
|
||||
precondition(viewModel.messages.first?.editDate != nil)
|
||||
|
||||
viewModel.beginReply(to: viewModel.messages[0])
|
||||
viewModel.composeText = "Reply text"
|
||||
await viewModel.send()
|
||||
precondition(viewModel.messages.last?.replyText == "Reply to #1")
|
||||
|
||||
await viewModel.react(message: viewModel.messages[0], reaction: "👍")
|
||||
precondition(viewModel.messages[0].reactions.first?.emoji == "👍")
|
||||
|
||||
viewModel.searchText = "reply"
|
||||
await viewModel.search()
|
||||
precondition(viewModel.searchResults.count == 1)
|
||||
|
||||
await viewModel.copyPayload(for: viewModel.messages[0])
|
||||
precondition(viewModel.copiedPayload == "Edited text")
|
||||
|
||||
await viewModel.forward(message: viewModel.messages[0], to: 2)
|
||||
let forwarded = try await bridge.loadHistory(chatId: 2)
|
||||
precondition(forwarded.contains { $0.forwardSenderName == "Alice" && $0.text == "Edited text" })
|
||||
|
||||
await viewModel.delete(message: viewModel.messages[0])
|
||||
precondition(!viewModel.messages.contains { $0.id == 1 })
|
||||
}
|
||||
|
||||
@MainActor
|
||||
private static func profileLoadsFromSelectedChat() async throws {
|
||||
let bridge = FakeSessionBridge(auth: .ready)
|
||||
|
||||
Reference in New Issue
Block a user