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 _, eventID := range req.EventIDs {
for _, r := range s.rooms { for _, r := range s.rooms {
for _, ev := range r.Events() { for _, ev := range r.Events() {
fmt.Println(ev.EventID())
if ev.EventID() == eventID { if ev.EventID() == eventID {
res.Events = append(res.Events, ev) res.Events = append(res.Events, ev)
continue NextEvent continue NextEvent
@ -82,11 +81,9 @@ type syncKeyAPI struct {
} }
func TestSyncAPI(t *testing.T) { 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) { 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{}) AddPublicRoutes(base, &syncUserAPI{accounts: []userapi.Device{alice}}, &syncRoomserverAPI{rooms: []*test.Room{room}}, &syncKeyAPI{})
test.MustPublishMsgs(t, jsctx, msgs...)
testCases := []struct { testCases := []struct {
name string name string
@ -155,7 +151,7 @@ func testSync(t *testing.T, dbType test.DBType) {
}, },
} }
// TODO: find a better way // TODO: find a better way
time.Sleep(1000 * time.Millisecond) time.Sleep(500 * time.Millisecond)
for _, tc := range testCases { for _, tc := range testCases {
w := httptest.NewRecorder() w := httptest.NewRecorder()
@ -171,6 +167,13 @@ func testSync(t *testing.T, dbType test.DBType) {
if len(res.Rooms.Join) != len(tc.wantJoinedRooms) { 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.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 var cfg config.Dendrite
cfg.Defaults(false) cfg.Defaults(false)
cfg.Global.JetStream.InMemory = true 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 { switch dbType {
case DBTypePostgres: case DBTypePostgres:
cfg.Global.Defaults(true) // autogen a signing key cfg.Global.Defaults(true) // autogen a signing key
cfg.MediaAPI.Defaults(true) // autogen a media path 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) connStr, close := PrepareDBConnectionString(t, dbType)
cfg.Global.DatabaseOptions = config.DatabaseOptions{ cfg.Global.DatabaseOptions = config.DatabaseOptions{
ConnectionString: config.DataSource(connStr), 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 return base.NewBaseDendrite(&cfg, "Test", base.DisableMetrics), close
case DBTypeSQLite: case DBTypeSQLite:
cfg.Defaults(true) // sets a sqlite db per component 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() { return base.NewBaseDendrite(&cfg, "Test", base.DisableMetrics), func() {
// cleanup db files. This risks getting out of sync as we add more database strings :( // cleanup db files. This risks getting out of sync as we add more database strings :(
dbFiles := []config.DataSource{ dbFiles := []config.DataSource{