mirror of
https://github.com/hoernschen/dendrite.git
synced 2024-12-27 23:48:27 +00:00
Fix oops, add simple UT
This commit is contained in:
parent
72ce6acf71
commit
e177e0ae73
2 changed files with 57 additions and 1 deletions
56
roomserver/internal/helpers/helpers_test.go
Normal file
56
roomserver/internal/helpers/helpers_test.go
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
package helpers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/matrix-org/dendrite/roomserver/types"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
|
"github.com/matrix-org/dendrite/setup/base"
|
||||||
|
|
||||||
|
"github.com/matrix-org/dendrite/test"
|
||||||
|
"github.com/matrix-org/dendrite/test/testrig"
|
||||||
|
|
||||||
|
"github.com/matrix-org/dendrite/roomserver/storage"
|
||||||
|
)
|
||||||
|
|
||||||
|
func mustCreateDatabase(t *testing.T, dbType test.DBType) (*base.BaseDendrite, storage.Database, func()) {
|
||||||
|
base, close := testrig.CreateBaseDendrite(t, dbType)
|
||||||
|
db, err := storage.Open(base, &base.Cfg.RoomServer.Database, base.Caches)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("failed to create Database: %v", err)
|
||||||
|
}
|
||||||
|
return base, db, close
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestIsInvitePendingWithoutNID(t *testing.T) {
|
||||||
|
|
||||||
|
alice := test.NewUser(t)
|
||||||
|
bob := test.NewUser(t)
|
||||||
|
room := test.NewRoom(t, alice, test.RoomPreset(test.PresetPublicChat))
|
||||||
|
_ = bob
|
||||||
|
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
|
||||||
|
_, db, close := mustCreateDatabase(t, dbType)
|
||||||
|
defer close()
|
||||||
|
|
||||||
|
// store all events
|
||||||
|
var authNIDs []types.EventNID
|
||||||
|
for _, x := range room.Events() {
|
||||||
|
|
||||||
|
evNID, _, _, _, _, err := db.StoreEvent(context.Background(), x.Event, authNIDs, false)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
authNIDs = append(authNIDs, evNID)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Alice should have no pending invites and should have a NID
|
||||||
|
pendingInvite, _, _, _, err := IsInvitePending(context.Background(), db, room.ID, alice.ID)
|
||||||
|
assert.NoError(t, err, "failed to get pending invites")
|
||||||
|
assert.False(t, pendingInvite, "unexpected pending invite")
|
||||||
|
|
||||||
|
// Bob should have no pending invites and receive a new NID
|
||||||
|
pendingInvite, _, _, _, err = IsInvitePending(context.Background(), db, room.ID, bob.ID)
|
||||||
|
assert.NoError(t, err, "failed to get pending invites")
|
||||||
|
assert.False(t, pendingInvite, "unexpected pending invite")
|
||||||
|
})
|
||||||
|
}
|
|
@ -111,7 +111,7 @@ func (d *Database) eventStateKeyNIDs(
|
||||||
result[eventStateKey] = nid
|
result[eventStateKey] = nid
|
||||||
}
|
}
|
||||||
// We received some nids, but are still missing some, work out which and create them
|
// We received some nids, but are still missing some, work out which and create them
|
||||||
if len(eventStateKeys) < len(result) {
|
if len(eventStateKeys) > len(result) {
|
||||||
for _, eventStateKey := range eventStateKeys {
|
for _, eventStateKey := range eventStateKeys {
|
||||||
if _, ok := result[eventStateKey]; ok {
|
if _, ok := result[eventStateKey]; ok {
|
||||||
continue
|
continue
|
||||||
|
|
Loading…
Reference in a new issue