This commit is contained in:
Kegan Dougal 2022-05-09 14:59:34 +01:00
parent 71e400b8cf
commit 03e2d66100
2 changed files with 18 additions and 12 deletions

View file

@ -29,7 +29,6 @@ NextEvent:
for _, eventID := range req.EventIDs {
for _, r := range s.rooms {
for _, ev := range r.Events() {
fmt.Println(ev.EventID())
if ev.EventID() == eventID {
res.Events = append(res.Events, ev)
continue NextEvent
@ -82,11 +81,9 @@ type syncKeyAPI struct {
}
func TestSyncAPI(t *testing.T) {
testSync(t, test.DBTypePostgres)
/*
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
testSync(t, dbType)
}) */
test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
testSync(t, dbType)
})
}
func testSync(t *testing.T, dbType test.DBType) {
@ -119,9 +116,8 @@ func testSync(t *testing.T, dbType test.DBType) {
},
}))
}
test.MustPublishMsgs(t, jsctx, msgs...)
AddPublicRoutes(base, &syncUserAPI{accounts: []userapi.Device{alice}}, &syncRoomserverAPI{rooms: []*test.Room{room}}, &syncKeyAPI{})
test.MustPublishMsgs(t, jsctx, msgs...)
testCases := []struct {
name string
@ -155,7 +151,7 @@ func testSync(t *testing.T, dbType test.DBType) {
},
}
// TODO: find a better way
time.Sleep(1000 * time.Millisecond)
time.Sleep(500 * time.Millisecond)
for _, tc := range testCases {
w := httptest.NewRecorder()
@ -171,6 +167,13 @@ func testSync(t *testing.T, dbType test.DBType) {
if len(res.Rooms.Join) != len(tc.wantJoinedRooms) {
t.Errorf("%s: got %v joined rooms, want %v.\nResponse: %+v", tc.name, len(res.Rooms.Join), len(tc.wantJoinedRooms), res)
}
t.Logf("res: %+v", res.Rooms.Join[room.ID])
gotEventIDs := make([]string, len(res.Rooms.Join[room.ID].Timeline.Events))
for i, ev := range res.Rooms.Join[room.ID].Timeline.Events {
gotEventIDs[i] = ev.EventID
}
test.AssertEventIDsEqual(t, gotEventIDs, room.Events())
}
}
}

View file

@ -30,14 +30,14 @@ func CreateBaseDendrite(t *testing.T, dbType DBType) (*base.BaseDendrite, func()
var cfg config.Dendrite
cfg.Defaults(false)
cfg.Global.JetStream.InMemory = true
// use a distinct prefix else concurrent postgres/sqlite runs will clash since NATS will use
// the file system event with InMemory=true :(
cfg.Global.JetStream.TopicPrefix = fmt.Sprintf("Test_%d_", dbType)
switch dbType {
case DBTypePostgres:
cfg.Global.Defaults(true) // autogen a signing key
cfg.MediaAPI.Defaults(true) // autogen a media path
// use a distinct prefix else concurrent postgres/sqlite runs will clash since NATS will use
// the file system event with InMemory=true :(
cfg.Global.JetStream.TopicPrefix = fmt.Sprintf("Test_%d_", dbType)
connStr, close := PrepareDBConnectionString(t, dbType)
cfg.Global.DatabaseOptions = config.DatabaseOptions{
ConnectionString: config.DataSource(connStr),
@ -48,6 +48,9 @@ func CreateBaseDendrite(t *testing.T, dbType DBType) (*base.BaseDendrite, func()
return base.NewBaseDendrite(&cfg, "Test", base.DisableMetrics), close
case DBTypeSQLite:
cfg.Defaults(true) // sets a sqlite db per component
// use a distinct prefix else concurrent postgres/sqlite runs will clash since NATS will use
// the file system event with InMemory=true :(
cfg.Global.JetStream.TopicPrefix = fmt.Sprintf("Test_%d_", dbType)
return base.NewBaseDendrite(&cfg, "Test", base.DisableMetrics), func() {
// cleanup db files. This risks getting out of sync as we add more database strings :(
dbFiles := []config.DataSource{