@@ -224,6 +224,61 @@ defmodule MockMatrixClient do
224224 { :reply , { :ok , reply } , state }
225225 end
226226
227+ @ impl true
228+ def handle_call ( { :get_latest_events , _channel , limit } , _from , state ) do
229+ events =
230+ [
231+ % {
232+ "content" => % { "body" => "first message" , "msgtype" => "m.text" } ,
233+ "event_id" => "$event1" ,
234+ "origin_server_ts" => 1_632_946_233_579 ,
235+ "sender" => "@nick:example.org" ,
236+ "type" => "m.room.message" ,
237+ "unsigned" => % { }
238+ } ,
239+ % {
240+ "content" => % { "body" => "second message" , "msgtype" => "m.text" } ,
241+ "event_id" => "$event2" ,
242+ "origin_server_ts" => 1_632_946_233_579 ,
243+ "sender" => "@nick:example.org" ,
244+ "type" => "m.room.message" ,
245+ "unsigned" => % { }
246+ } ,
247+ % {
248+ "content" => % { "body" => "third message" , "msgtype" => "m.text" } ,
249+ "event_id" => "$event3" ,
250+ "origin_server_ts" => 1_632_946_233_579 ,
251+ "sender" => "@nick:example.org" ,
252+ "type" => "m.room.message" ,
253+ "unsigned" => % { }
254+ } ,
255+ % {
256+ "content" => % { "body" => "fourth message" , "msgtype" => "m.text" } ,
257+ "event_id" => "$event4" ,
258+ "origin_server_ts" => 1_632_946_233_579 ,
259+ "sender" => "@nick:example.org" ,
260+ "type" => "m.room.message" ,
261+ "unsigned" => % { }
262+ } ,
263+ % {
264+ "content" => % { "body" => "fifth message" , "msgtype" => "m.text" } ,
265+ "event_id" => "$event5" ,
266+ "origin_server_ts" => 1_632_946_233_579 ,
267+ "sender" => "@nick:example.org" ,
268+ "type" => "m.room.message" ,
269+ "unsigned" => % { }
270+ }
271+ ]
272+ # Keep the last ones
273+ |> Enum . slice ( - limit .. - 1 )
274+ # "For dir=b events will be in reverse-chronological order"
275+ |> Enum . reverse ( )
276+
277+ { :reply , { :ok , % { "state" => [ ] , "chunk" => events } } , state }
278+ end
279+
280+ :w
281+
227282 @ impl true
228283 def handle_call ( { :is_valid_alias , _room_id , "#invalidalias:example.org" } , _from , state ) do
229284 { :reply , false , state }
0 commit comments