mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-16 18:43:10 -06:00
Add RecentEvents tests
This commit is contained in:
parent
6e5ac7d3fe
commit
b9f5164e64
|
|
@ -926,3 +926,61 @@ func TestRoomSummary(t *testing.T) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestRecentEvents(t *testing.T) {
|
||||||
|
alice := test.NewUser(t)
|
||||||
|
room1 := test.NewRoom(t, alice)
|
||||||
|
room2 := test.NewRoom(t, alice)
|
||||||
|
roomIDs := []string{room1.ID, room2.ID}
|
||||||
|
rooms := map[string]*test.Room{
|
||||||
|
room1.ID: room1,
|
||||||
|
room2.ID: room2,
|
||||||
|
}
|
||||||
|
|
||||||
|
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
|
||||||
|
filter := gomatrixserverlib.DefaultRoomEventFilter()
|
||||||
|
db, close, closeBase := MustCreateDatabase(t, dbType)
|
||||||
|
t.Cleanup(func() {
|
||||||
|
close()
|
||||||
|
closeBase()
|
||||||
|
})
|
||||||
|
|
||||||
|
MustWriteEvents(t, db, room1.Events())
|
||||||
|
MustWriteEvents(t, db, room2.Events())
|
||||||
|
|
||||||
|
transaction, err := db.NewDatabaseTransaction(ctx)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
defer transaction.Rollback()
|
||||||
|
|
||||||
|
// get all recent events from 0 to 100 (we only created 5 events, so we should get 5 back)
|
||||||
|
roomEvs, err := transaction.RecentEvents(ctx, roomIDs, types.Range{From: 0, To: 100}, &filter, true, true)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, len(roomEvs), 2, "unexpected recent events response")
|
||||||
|
for _, recentEvents := range roomEvs {
|
||||||
|
assert.Equal(t, 5, len(recentEvents.Events), "unexpected recent events for room")
|
||||||
|
}
|
||||||
|
|
||||||
|
// update the filter to only return one event
|
||||||
|
filter.Limit = 1
|
||||||
|
roomEvs, err = transaction.RecentEvents(ctx, roomIDs, types.Range{From: 0, To: 100}, &filter, true, true)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, len(roomEvs), 2, "unexpected recent events response")
|
||||||
|
for roomID, recentEvents := range roomEvs {
|
||||||
|
origEvents := rooms[roomID].Events()
|
||||||
|
assert.Equal(t, true, recentEvents.Limited, "expected events to be limited")
|
||||||
|
assert.Equal(t, 1, len(recentEvents.Events), "unexpected recent events for room")
|
||||||
|
assert.Equal(t, origEvents[len(origEvents)-1].EventID(), recentEvents.Events[0].EventID())
|
||||||
|
}
|
||||||
|
|
||||||
|
// not chronologically ordered still returns the events in order (given ORDER BY id DESC)
|
||||||
|
roomEvs, err = transaction.RecentEvents(ctx, roomIDs, types.Range{From: 0, To: 100}, &filter, false, true)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, len(roomEvs), 2, "unexpected recent events response")
|
||||||
|
for roomID, recentEvents := range roomEvs {
|
||||||
|
origEvents := rooms[roomID].Events()
|
||||||
|
assert.Equal(t, true, recentEvents.Limited, "expected events to be limited")
|
||||||
|
assert.Equal(t, 1, len(recentEvents.Events), "unexpected recent events for room")
|
||||||
|
assert.Equal(t, origEvents[len(origEvents)-1].EventID(), recentEvents.Events[0].EventID())
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -449,6 +449,7 @@ func testHistoryVisibility(t *testing.T, dbType test.DBType) {
|
||||||
base.PublicClientAPIMux.ServeHTTP(w, test.NewRequest(t, "GET", fmt.Sprintf("/_matrix/client/v3/rooms/%s/messages", room.ID), test.WithQueryParams(map[string]string{
|
base.PublicClientAPIMux.ServeHTTP(w, test.NewRequest(t, "GET", fmt.Sprintf("/_matrix/client/v3/rooms/%s/messages", room.ID), test.WithQueryParams(map[string]string{
|
||||||
"access_token": bobDev.AccessToken,
|
"access_token": bobDev.AccessToken,
|
||||||
"dir": "b",
|
"dir": "b",
|
||||||
|
"filter": `{"lazy_load_members":true}`, // check that lazy loading doesn't break history visibility
|
||||||
})))
|
})))
|
||||||
if w.Code != 200 {
|
if w.Code != 200 {
|
||||||
t.Logf("%s", w.Body.String())
|
t.Logf("%s", w.Body.String())
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue