Persist the federated invite event so we have a NID,

fix test
This commit is contained in:
Neil Alexander 2022-07-22 15:01:59 +01:00
parent 8d0818b233
commit fde0c3a2c7
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
2 changed files with 11 additions and 2 deletions

View file

@ -107,13 +107,19 @@ func (r *Inviter) PerformInvite(
}
updateMembershipTableManually := func() ([]api.OutputEvent, error) {
event := event.Unwrap()
var eventNID types.EventNID
eventNID, _, _, _, _, err = r.DB.StoreEvent(ctx, event, nil, false)
if err != nil {
return nil, fmt.Errorf("r.DB.StoreEvent: %w", err)
}
var updater *shared.MembershipUpdater
if updater, err = r.DB.MembershipUpdater(ctx, roomID, targetUserID, isTargetLocal, req.RoomVersion); err != nil {
return nil, fmt.Errorf("r.DB.MembershipUpdater: %w", err)
}
outputUpdates, err = helpers.UpdateToInviteMembership(updater, &types.Event{
EventNID: 0,
Event: event.Unwrap(),
EventNID: eventNID,
Event: event,
}, outputUpdates, req.Event.RoomVersion)
if err != nil {
return nil, fmt.Errorf("updateToInviteMembership: %w", err)

View file

@ -60,6 +60,9 @@ func TestMembershipTable(t *testing.T) {
// This inserts a left user to the room
err = tab.InsertMembership(ctx, nil, 1, stateKeyNID, true)
assert.NoError(t, err)
// We must update the membership with a non-zero event NID or it will get filtered out in later queries
_, err = tab.UpdateMembership(ctx, nil, 1, stateKeyNID, userNIDs[0], tables.MembershipStateLeaveOrBan, 1, false)
assert.NoError(t, err)
}
// ... so this should be false