Expose pinned messages through iOS FFI
This commit is contained in:
@@ -218,6 +218,13 @@ impl<C: TdClientTrait> CoreSession<C> {
|
||||
.collect())
|
||||
}
|
||||
|
||||
pub async fn pinned_messages(&mut self, chat_id: ChatId) -> Result<Vec<CoreMessage>, String> {
|
||||
self.client
|
||||
.get_pinned_messages(chat_id)
|
||||
.await
|
||||
.map(|messages| messages.iter().map(CoreMessage::from).collect())
|
||||
}
|
||||
|
||||
pub async fn copy_payload(
|
||||
&mut self,
|
||||
chat_id: ChatId,
|
||||
@@ -907,6 +914,24 @@ mod tests {
|
||||
);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn pinned_messages_are_mapped_for_native_clients() {
|
||||
let chat_id = ChatId::new(42);
|
||||
let pinned = MessageBuilder::new(MessageId::new(10))
|
||||
.sender_name("Alice")
|
||||
.text("Pinned")
|
||||
.build();
|
||||
let mut client = FakeTdClient::new();
|
||||
client.set_current_pinned_message(Some(pinned));
|
||||
let mut session = CoreSession::new(client);
|
||||
|
||||
let pinned = session.pinned_messages(chat_id).await.unwrap();
|
||||
|
||||
assert_eq!(pinned.len(), 1);
|
||||
assert_eq!(pinned[0].id, MessageId::new(10));
|
||||
assert_eq!(pinned[0].text, "Pinned");
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn facade_delegates_auth_forward_reactions_and_downloads() {
|
||||
let chat_id = ChatId::new(42);
|
||||
|
||||
Reference in New Issue
Block a user